RTGL1 เป็นไลบรารีที่มีจุดมุ่งหมายเพื่อลดความซับซ้อนของกระบวนการโอนแอปพลิเคชัน 3D ไปยัง การติดตามเส้นทางแบบเรียลไทม์ ผ่านทางการ ติดตามรังสีแบบเร่งความเร็วด้วยฮาร์ดแวร์ อัลกอริธึมการลดสัญญาณรบกวน (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 ได้ โฟลเดอร์ Open Sources/Shaders
เพิ่มการกำหนดค่าดังกล่าวลงในไฟล์การตั้งค่า .json
ของ VS Code (สิ่งที่ต้องทำ: พื้นที่ทำงาน 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
และ Compressed
INPUT_EXTENSIONS
) ในโฟลเดอร์ Raw
.ktx2
ที่เกี่ยวข้องไปยังโฟลเดอร์ Compressed
โดยรักษาลำดับชั้นไว้ ในการเริ่มต้น RTGL1 RgInstanceCreateInfo::pOverridenTexturesFolderPath
ควรมีเส้นทางไปยังโฟลเดอร์ Compressed