RTGL1 هي مكتبة تهدف إلى تبسيط عملية نقل التطبيقات ثلاثية الأبعاد إلى تتبع المسار في الوقت الفعلي ، عبر تتبع الشعاع المسرع للأجهزة، وخوارزميات تقليل الضوضاء (A-SVGF) وخوارزميات أخذ العينات (ReSTIR، وReSTIR GI) لتحسين جودة الصورة عن طريق إعادة الاستخدام البيانات المكانية والزمانية.
متطلبات:
استنساخ المستودع
git clone https://github.com/sultim-t/RayTracedGL1.git
تكوين مع CMake
RG_WITH_SURFACE_WIN32
RG_WITH_SURFACE_METAL
RG_WITH_SURFACE_WAYLAND
RG_WITH_SURFACE_XCB
RG_WITH_SURFACE_XLIB
mkdir Build
cd Build
cmake ..
Build/x64-Debug
أو Build/x64-Release
يبني
cmake --build .
بناء تظليل
Source/Shaders/GenerateShaders.py
باستخدام Python3، وسيقوم بإنشاء ملفات SPIR-V Build
المجلدRgInstanceCreateInfo::pBlueNoiseFilePath
. يمكن العثور على مورد جاهز للاستخدام هنا: Tools/BlueNoise_LDR_RGBA_128.ktx2
يدعم RTGL1 إعادة تحميل التظليل السريع (يقوم التطبيق المستهدف بتعيين RgStartFrameInfo::requestShaderReload=true
في وقت التشغيل).
ولكن لتسهيل عملية إنشاء التظليل، بدلاً من تشغيل GenerateShaders.py
من محطة يدويًا، يمكنك تثبيت Visual Studio Code وملحق Script Runner عليه. افتح مجلد Sources/Shaders
، وأضف هذا التكوين إلى ملف إعدادات .json
الخاص بـ VS Code (TODO: مساحة عمل VS Code).
"script-runner.definitions": { "commands": [ { "identifier": "shaderBuild", "description": "Build shaders", "command": "cls; python .\GenerateShaders.py -ps", "working_directory": "${workspaceFolder}", }, { "identifier": "shaderGenAndBuild", "description": "Build shaders with generating common files", "command": "cls; python .\GenerateShaders.py -ps -g", "working_directory": "${workspaceFolder}", } ], },
ثم قم بتعيين مفاتيح التشغيل السريع لأوامر shaderBuild
و shaderGenAndBuild
في File->Preferences->Keyboard Shortcuts
.
لا تحتوي بعض الألعاب على مواد PBR، ولكن لإضافتها، يوفر RTGL1 وظيفة "تجاوز النسيج": يطلب التطبيق تحميل نسيج أصلي وتحديد اسمه، ثم يحاول RTGL1 العثور على الملفات التي تحمل هذا الاسم (إلحاق بعض اللواحق، على سبيل المثال _n
للخرائط العادية، أو لا شيء لخرائط البياض) وتحميلها بدلاً من الخرائط الأصلية. تكون هذه الملفات بتنسيق .ktx2
مع ضغط محدد وتحتوي على بيانات الصورة.
لإنشاء مثل هذه القوام:
Python3
Tools/CreateKTX2.py
، وقم بإنشاء مجلد باسم Raw
and Compressed
.INPUT_EXTENSIONS
) في المجلد Raw
.ktx2
المطابق للمجلد Compressed
، مع الحفاظ على التسلسل الهرمي عند تهيئة RTGL1، يجب أن يحتوي RgInstanceCreateInfo::pOverridenTexturesFolderPath
على مسار إلى المجلد Compressed
.