You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<li>Photon Mapping for fast(but not realtime) caustics</li>
49
+
<li>Animatable Material Properties</li>
48
50
</ul>
49
51
50
52
MASSIVE thanks to
@@ -80,8 +82,7 @@ for bringing bindless textures to unity!
80
82
81
83
### Manual method
82
84
<ul>
83
-
<li>First, add your gameobjects as a child of the "Scene" gameobject created by TrueTrace.</li>
84
-
<li>Each gameobject that contains a mesh needs the script "RayTracingObject" added to it.</li>
85
+
<li>First, each gameobject that contains a mesh needs the script "RayTracingObject" added to it.(This keeps track of per-mesh materials)</li>
85
86
<li>For non-skinned meshes: </li>
86
87
<ul>
87
88
<li>Add the script "ParentObject" to either:</li>
@@ -104,25 +105,24 @@ for bringing bindless textures to unity!
104
105
<li>DX12 is recommended, as it enables use of OIDN, Bindless texturing, RT Cores, and higher performance</li>
105
106
<li>The camera you want to render from, you attach the RenderHandler script to(if you have a camera tagged MainCamera, this will be done automatically)</li>
106
107
<li>The green/red rectangle shows when the acceleration structure is done building, and thus ready to render, red means that its not done, and green means its done building, a ding will sound when it completes if it takes longer than 15 seconds(Turn on Truetrace Settings -> Functionality Settings</li>
107
-
<li>Objects can be added and removed at will simply by toggling the associated GameObject with a ParentObject script on/off in the hierarchy(clicking on parent objects with complex objects for children will lag), but they will take time to appear as the acceleration structure needs to be rebuilt for them</li>
108
+
<li>Objects can be added and removed at will simply by toggling the associated GameObject with a ParentObject script on/off in the hierarchy(clicking on parent objects with complex objects for children will lag), but they will take time to appear as the acceleration structure needs to be rebuilt for them</li>
108
109
<li>Emissive meshes need to be have a non-zero emissive value when they are built or rebuilt to work with NEE, but after that can have their emissiveness changed at will</li>
109
110
<li>To set up PBR with the DEFAULT BIRP material, all textures go into their proper names, but Roughness goes into the Occlusion texture(This can be changed in the MaterialPairing menu)</li>
110
111
<li>If you are using blendshapes to change geometry of a skinned mesh, you may need to go to the import settings of it(in the inspector), turn off Legacy Blendshape Normals, and make sure all normals are imported, not calculated, otherwise the normals for blendshapes might be wrong</li>
111
112
<li>If you use HDRIs, or CubeMaps for the skybox, you need to format as the texture to a Texture2D in the inspector of the image, unity will convert it automatically, then put it in the slot in "Scene Settings" in the TrueTrace settings menu</li>
113
+
<li>Some settings will be hidden behind an "Advanced Mode" toggle found in "Functionality Settings"</li>
114
+
</ul>
115
+
116
+
## Animating TT Materials
117
+
<ul>
118
+
<li>To animate properties of a truetrace material, you need to add the script "MaterialAnimationView" to the same gameobject as the RayTracingObject</li>
119
+
<li>Next, you need to select the targeted submaterial in the dropdown of the newly added script</li>
120
+
<li>Finally, you can now animate any material property by animating the SelectedMaterial properties.</li>
112
121
</ul>
113
122
114
123
## URP Setup
115
124
<ul>
116
-
<li>If using Unity 6000 or above, you need to go to Project Settings -> Graphics -> (at the bottom)Turn on Compatability Mode</li>
117
-
<li>In the Universal Renderer Asset being used turn on "Native RenderPass"</li>
118
-
<li>EITHER:</li>
119
-
<ul>
120
-
<li>In the camera, turn on PostProcessing, and turn the Anti-Aliasing to TAA(This is the only way I have found to reliably force motion vector generation in URP for some reason...)</li>
<li>Finally, add the "URPTTInjectPass" script to an empty gameobject if it has not been automatically added</li>
125
-
<li>Reccomended - Go to the Universal Render Pipeline Asset you are using, and turn the render scale to 1</li>
125
+
<li>Add the URPTTInjectPass to the currently used renderer as a renderfeature(The name of which can be found in the Camera)</li>
126
126
</ul>
127
127
128
128
## Creating Non-Standard Images
@@ -148,29 +148,35 @@ for bringing bindless textures to unity!
148
148
149
149
## Functionality Settings Contents
150
150
<ul>
151
-
<li>NOTE FIRST: MOST OF THESE IN THIS TABLE NOW HAVE TOOLTIPS THAT APPEAR IF YOU HOVER OVER THEM!</li>
151
+
<li>NOTES 1: MOST OF THESE IN THIS TABLE HAVE TOOLTIPS THAT APPEAR IF YOU HOVER OVER THEM!</li>
152
+
<li>NOTES 2: SOME OF THESE ARE HIDDEN BEHIND TTAdvancedMode, WHICH CAN BE TOGGLED IN THIS MENU.</li>
152
153
<li>Enable RT Cores - (DX12 Only, REQUIRES UNITY 2023 OR HIGHER)Enables Hardware RT for cards that support it.</li>
153
-
<li>Disable Bindless Textures - DX11(/vulkan/metal) compatability, Disables bindless texturing, and uses the atlas fallback(Limits resolution).</li>
154
154
<li>Use Old Light BVH Instead of Gaussian Tree - Disables the Gaussian Tree for higher performance but worse light sampling on metallics.</li>
155
-
<li>Use DX11 - Disables DX12 only toggles, but allows truetrace to run in DX11(/vulkan/metal).</li>
156
155
<li>Enable OIDN - (DX12 Only) Adds the OIDN denoiser to the Denoiser list in "Main Options"</li>
157
-
<li>FULLY Disable Radiance Cache - Will free the memory usually used by the Radiance Cache</li>
158
-
<li>Remove Rasterization Requirement - Truetrace stops using rasterization for anything(other than upscaling with TAAU), so you can turn off rasterization rendering in your cameras for extra performance</li>
156
+
<li>FULLY Disable Radiance Cache - Will free the memory(RAM/VRAM) usually used by the Radiance Cache</li>
157
+
<li>Use Rasterized Lighting For Direct - Experimental, only known to work in BIRP, Forces truetrace to only render indirect</li>
159
158
<li>Enable Emissive Texture Aware Light BVH - Allows for smarter/better sampling of emissive meshes by considering their emissive masks/textures; Can use lots of RAM.</li>
160
159
<li>Enable Verbose Logging - Truetrace will yell more information into the console.</li>
160
+
<li>Enable Triangle Splitting - Optimization for SWRT that splits triangles to improve tracing performance.</li>
161
+
<li>Enable Strict Memory Reduction - Shrinks compute buffers when objects are removed, which reduces performance but saves VRAM.</li>
162
+
<li>Save Multiple Maps On Screenshot - Any sort of image saved by truetrace will also generate images of the corrosponding material and mesh IDs.</li>
163
+
<li>Enable Photon Mapping - Enables the experimental photon mapping pass for caustic generation. Materials will need to have their flag enabled to generate caustics.</li>
164
+
<li>Remove TT Scripts During Save - Will delete all unmodified raytracingobject and parentobject scripts when the scene is saved, then add them back. This helps with version control.</li>
161
165
<li>Fade Mapping - Not super compatable with realtime denoisers, but allows for surfaces with variable transparency, based on alpha texture.</li>
162
166
<li>Stained Glass - Whether or not to color shadow rays that pass through colored glass, dictated by material parameters: Thin, Albedo, Scatter Distance.</li>
163
167
<li>Use Light BVH - Toggles the use of EITHER the Light BVH or Gaussian Tree on/off; uses the RIS count of NEE if off. Turn off for maximum speed, but poor emissive mesh sampling quality.</li>
164
168
<li>Quick Radcache Toggle - Toggles the radcache on/off. Useful for comparing to ground truth pathtracing.</li>
169
+
<li>Use Texture LOD - Samples LOD of textures based on bounce number, can improve performance.</li>
170
+
<li>Double Buffer Light Tree - Enables double buffering of the light tree, allowing for stable moving emissive objects with ASVGF, but hurts performance with ASVGF.</li>
165
171
</ul>
166
172
167
173
168
174
## Editor Window Guide
169
175
TrueTrace Options Description -
170
176
<ul>
171
177
<li>Build Aggregated BVH(Recommended to do any time you change objects in edit mode)- Allows you to pre-build objects BVH's before running so you dont have to wait every time you go into play mode for it to build.</li>
172
-
<li>Clear Parent Data - Clears the data stored in parent GameObjects, allowing you to actually click them without lagging</li>
173
178
<li>Take Screenshot - Takes a screenshot to the path under "Functionality Settings" in the TrueTrace options</li>
179
+
<li>Clear Parent Data - Clears the data stored in parent GameObjects, allowing you to actually click them without lagging</li>
174
180
<li>Auto Assign Scripts - Assigns all required scripts to all objects under the Scene GameObject, best way to add objects</li>
175
181
<li>Remaining Objects - Objects still being processed</li>
176
182
<li>Max Bounces - Sets the maximum number of bounces a ray can achieve</li>
<li>Upscaler(ONLY when "Interal Resolution Ratio" is NOT 1) - Allows selection from one of a few upscaling methods</li>
195
201
<li>Use Partial Rendering - Traces only 1 out of (X*X) rays, improving performance</li>
196
-
<li>Enable AntiFirefly - Enables RCRS filter for getting rid of those single bright pixels</li>
202
+
<li>Enable AntiFirefly - Enables RCRS filter for getting rid of those single bright pixels, will produce artifacts in image if activated too early(frames accumulated)</li>
197
203
<ul>
198
204
<li>Frames Before Anti-Firefly - Frames accumulated before triggering Anti-Firefly</li>
199
205
<li>Anti-Firefly Frame Interval - Anti-Firefly will run once every X frames, this is X</li>
<li>HardwareRT - This is handled from the CPU side under Functionality Settings</li>
226
232
<li>HDRP - This is handled from the CPU side automatically</li>
227
-
<li>DX11 - This is handled from the CPU side automatically/Under Functionality Settings</li>
228
-
<li>UseBindless - This is handled from the CPU side automatically/Under Functionality Settings</li>
229
233
<li>UseSGTree - This is handled from the CPU side under Functionality Settings</li>
230
-
<li>TTCustomMotionVectors - This is handled from the CPU side under Functionality Settings; named "Remove Rasterization Requirement"</li>
231
234
<li>MultiMapScreenshot - This is handled from the CPU side under Functionality Settings; named "Save Multiple Maps On Screenshot"; Truetrace will also save images of material ID and mesh ID maps when using TTAdvancedImageGen or the Screenshot button</li>
0 commit comments