RTGL1 es una biblioteca que tiene como objetivo simplificar el proceso de migración de aplicaciones 3D al trazado de ruta en tiempo real , mediante trazado de rayos acelerado por hardware, algoritmos de eliminación de ruido (A-SVGF) y algoritmos de muestreo (ReSTIR, ReSTIR GI) para mejorar la calidad de la imagen mediante la reutilización. datos espacio-temporales.
Requisitos:
Clonar el repositorio
git clone https://github.com/sultim-t/RayTracedGL1.git
Configurar con 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
o Build/x64-Release
Construir
cmake --build .
Construir sombreadores
Source/Shaders/GenerateShaders.py
con Python3, generará archivos SPIR-V en la carpeta Build
RgInstanceCreateInfo::pBlueNoiseFilePath
. Puede encontrar un recurso listo para usar aquí: Tools/BlueNoise_LDR_RGBA_128.ktx2
RTGL1 admite la recarga en caliente del sombreador (una aplicación de destino establece RgStartFrameInfo::requestShaderReload=true
en tiempo de ejecución).
Pero para facilitar el proceso de creación de sombreadores, en lugar de ejecutar GenerateShaders.py
desde una terminal manualmente, puede instalarle Visual Studio Code y la extensión Script Runner. Abra la carpeta Sources/Shaders
, agregue dicha configuración al archivo de configuración .json
de VS Code (TODO: espacio de trabajo de 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}", } ], },
Luego asigne teclas de acceso rápido a los comandos shaderBuild
y shaderGenAndBuild
en File->Preferences->Keyboard Shortcuts
.
Algunos juegos no tienen materiales PBR, pero para agregarlos, RTGL1 proporciona la funcionalidad de 'anulación de textura': la aplicación solicita cargar una textura original y especifica su nombre, luego RTGL1 intenta encontrar archivos con ese nombre (agregando algunos sufijos, por ejemplo, _n
para mapas normales, o ninguno para mapas de albedo) y los carga en lugar de los originales. Estos archivos están en formato .ktx2
con una compresión específica y contienen datos de imágenes.
Para generar tales texturas:
Python3
Tools/CreateKTX2.py
, cree una carpeta llamada Raw
y Compressed
.INPUT_EXTENSIONS
) en la carpeta Raw
.ktx2
correspondiente a la carpeta Compressed
, preservando la jerarquía En la inicialización RTGL1, RgInstanceCreateInfo::pOverridenTexturesFolderPath
debe contener una ruta a la carpeta Compressed
.