RTGL1은 하드웨어 가속 레이 트레이싱, 노이즈 제거 알고리즘(A-SVGF) 및 샘플링 알고리즘(ReSTIR, ReSTIR GI)을 통해 3D 애플리케이션을 실시간 경로 추적 으로 포팅하는 프로세스를 단순화하여 이미지 품질을 향상시키는 것을 목표로 하는 라이브러리입니다. 시공간 데이터.
요구사항:
저장소 복제
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
에 있다고 가정하므로 RTGL1을 사용하는 프로젝트가 컴파일된 동적 라이브러리를 찾을 수 있는지 확인하세요.짓다
cmake --build .
셰이더 빌드
Source/Shaders/GenerateShaders.py
실행하면 Build
폴더에 SPIR-V 파일이 생성됩니다.RgInstanceCreateInfo::pBlueNoiseFilePath
가 필요합니다. 바로 사용할 수 있는 리소스는 여기에서 찾을 수 있습니다: Tools/BlueNoise_LDR_RGBA_128.ktx2
RTGL1은 셰이더 핫 리로드를 지원합니다(대상 애플리케이션은 런타임에 RgStartFrameInfo::requestShaderReload=true
설정).
그러나 셰이더 빌드 프로세스를 쉽게 하기 위해 터미널에서 수동으로 GenerateShaders.py
실행하는 대신 Visual Studio Code 및 Script Runner 확장을 설치할 수 있습니다. Sources/Shaders
폴더를 열고 해당 구성을 VS Code의 .json
설정 파일(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}", } ], },
그런 다음 File->Preferences->Keyboard Shortcuts
에서 shaderBuild
및 shaderGenAndBuild
명령에 단축키를 할당합니다.
일부 게임에는 PBR 자료가 없지만 이를 추가하기 위해 RTGL1은 '텍스처 재정의' 기능을 제공합니다. 응용 프로그램은 원본 텍스처를 업로드하고 이름을 지정하도록 요청한 다음 RTGL1은 해당 이름을 가진 파일을 찾으려고 시도합니다(접미사 추가, 예: _n
노멀 맵의 경우, 알베도 맵의 경우 없음) 원본 맵 대신 로드합니다. 이러한 파일은 특정 압축을 사용하는 .ktx2
형식이며 이미지 데이터를 포함합니다.
이러한 텍스처를 생성하려면:
Python3
이 필요합니다.Tools/CreateKTX2.py
를 넣고 Raw
및 Compressed
라는 폴더를 만듭니다.Raw
폴더의 파일( INPUT_EXTENSIONS
포함)을 검사합니다..ktx2
파일을 Compressed
폴더에 생성하여 계층 구조를 유지합니다. RTGL1 초기화 시 RgInstanceCreateInfo::pOverridenTexturesFolderPath
에는 Compressed
폴더에 대한 경로가 포함되어야 합니다.