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
にあると想定されます。建てる
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
and Compressed
という名前のフォルダーを作成します。Raw
フォルダー内のファイル ( INPUT_EXTENSIONS
を含む) をスキャンします.ktx2
ファイルをCompressed
フォルダーに生成しますRTGL1 の初期化では、 RgInstanceCreateInfo::pOverridenTexturesFolderPath
Compressed
フォルダーへのパスが含まれている必要があります。