Foundation
Loading...
Searching...
No Matches
Renderer.hpp
Go to the documentation of this file.
1#pragma once
2#include <Math/Math.hpp>
4#include "GPUScene.hpp"
5#include "Shaders/Flags.h"
6using namespace Foundation;
7using namespace Foundation::Math;
8using namespace Foundation::RenderCore;
9#pragma pack(push, 4)
11{
12 uint32_t frameNumber;
15 float lodThreshold{0.005f};
16 float zNear;
22 uint32_t cameraHistoryFrame{UINT32_MAX};
23 float4 projPlanes; // ij:left, kl:top
24 float aperture{0.0f}; // Aperture radius in world units
25 float focalDistance{1e1};
26 uint32_t apertureBlades{0u};
27 float apertureRotation{0.0f};
28 float apertureRatio{1.0f};
29 uint32_t cameraProjection{0u};
30 // -- Framebuffers
31 // Note: ALWAYS updated by Renderers themselves (PT/RASTER)
32 float fbWidth;
33 float fbHeight;
34 uint32_t hizLevels;
35 uint32_t hizWidth;
36 uint32_t hizHeight;
37 // -- Lighting
38 float camEV{0.0f};
41 uint32_t ggxLutEIndex{UINT32_MAX};
42 uint32_t ggxLutEavgIndex{UINT32_MAX};
43 uint32_t ggxLutEIORIndex{UINT32_MAX};
44 uint32_t ggxLutEIORavgIndex{UINT32_MAX};
45 uint32_t ggxLutEIORInvIndex{UINT32_MAX};
46 uint32_t ggxLutEIORInvavgIndex{UINT32_MAX};
47 uint32_t sheenLtcIndex{UINT32_MAX};
48 uint32_t envMapTextureIndex{UINT32_MAX};
49 uint32_t envMapMarginalCDFIndex{UINT32_MAX};
50 uint32_t envMapConditionalCDFIndex{UINT32_MAX};
52 uint32_t hasEnvMap{0u};
54 uint32_t matcapTextureIndex{UINT32_MAX};
55 // Scene lights
62 uint32_t lightBVHValid{0u};
64 uint32_t energyCompensation{1u};
65 // -- Path Tracing
66 uint32_t ptAccumulatedFrames{0u};
67 uint32_t ptMaxBounces{4u};
68 float ptFireflyClamp{1.0f}; // 10^x
69 uint32_t ptSamplesPerPixel{1u}; // Always >= 1.
70 uint32_t ptPrimaryLightVisibility{0u}; // Analytic lights + sun disks on bounce 0
72 uint32_t sharcEntries{0u};
73 float sharcSceneScale{50.0f};
74 float sharcRadianceScale{1000.0f};
76 uint32_t sharcStaleFrames{60u};
78 uint32_t sharcEnabled{0u};
80 // -- Debug
81 uint32_t dbgShowOutline{0u};
82 uint32_t dbgViewFlags{0u};
83 uint32_t dbgMaterialFlags{0u};
84 uint32_t adaptiveMinSamples{32u};
85 float adaptiveThreshold{0.10f}; // 0 = disabled
86 float rasterRTShadowBias{0.01f};
87};
88
90{
91 float camEV{0.0f};
92 uint32_t viewLutIndex{UINT32_MAX};
93 uint32_t dbgShowOutline{0u};
94 uint32_t ptAccumulatedFrames{0u};
95 float fbWidth{1.0f};
96 float fbHeight{1.0f};
97 uint32_t outlineInstanceId{~0u};
98 float renderWidth{1.0f}; // Internal render target width
99 float renderHeight{1.0f}; // Internal render target height
100 uint32_t dbgViewFlags{0u};
101};
102
103#pragma pack(pop)
104
105inline void UpdateRendererCameraUBO(RendererUBO& ubo, uint32_t frameNumber, float4x4 const& view, float4x4 const& proj)
106{
107 if (ubo.cameraHistoryFrame != frameNumber)
108 {
110 ubo.previousViewProj = ubo.cameraHistoryFrame == UINT32_MAX ? proj * view : ubo.proj * ubo.view;
111 ubo.cameraHistoryFrame = frameNumber;
112 }
113 ubo.frameNumber = frameNumber;
114 ubo.view = view;
115 ubo.proj = proj;
116 ubo.inverseView = inverse(view);
117 ubo.inverseViewProj = inverse(proj * view);
118}
119
120
122{
123 ViewFlags viewFlags{ViewFlagsBits::EnableRasterRTShadows};
124 MaterialFlags materialFlags{0u};
125 CullFlags cullFlags{CullFlagsBits::Frustum | CullFlagsBits::Occlusion | CullFlagsBits::Backface};
127 PTSampler ptSampler{PTSampler::Sobol};
128 LightSampler lightSamplerMode{LightSampler::BVH};
129 bool const* ptRenderPaused{nullptr};
131 bool forceTextureLOD0{false};
134 bool ptSharc{true};
135 uint32_t ptSharcEntries{1u << 22u};
136 float ptSharcSceneScale{50.0f};
138 uint32_t ptSharcStaleFrames{60u};
142 float textureAnisoLevel{16.0f};
144 bool isRendering{false};
145};
146
148{
149 using SamplerDesc = RHIDeviceSampler::SamplerDesc;
150 using MipmapMode = SamplerDesc::Mipmap::MipmapMode;
151 return {
152 .anisotropy = {.enable = cfg.textureAnisoEnable, .maxLevel = cfg.textureAnisoLevel},
153 .mipmap = {.mipmapMode = cfg.textureTrilinear ? MipmapMode::Linear : MipmapMode::Nearest},
154 .lod = {.max = 16.0f},
155 };
156}
157
182
184
185void BuildGPUSceneHostUpdatePass(Renderer* renderer, RendererResources& resources);
187;
189
190template <typename FSetup, typename FRecord>
192 FSetup&& setup, FRecord&& record)
193{
194 CHECK(renderer);
195 CHECK(resources.scene);
196 PassHandle preTransition = renderer->CreatePass(
197 Format("{} Pre-Transition", name), RHIDeviceQueueType::Graphics, 100u, FSetupDefault{},
198 [resources](PassHandle, Renderer*, RHICommandList* cmd)
200 PassHandle update = renderer->CreatePass(
201 name, RHIDeviceQueueType::Compute, 100u,
202 [resources, preTransition, setup = std::forward<FSetup>(setup)](PassHandle self, Renderer* r) mutable
203 {
204 r->BindPass(self, preTransition);
205 r->BindDescriptorSetWrite(self, "gStorageTextures2D",
208 setup(self, r);
209 },
210 [resources, record = std::forward<FRecord>(record)](PassHandle self, Renderer* r, RHICommandList* cmd) mutable
211 {
212 r->CmdBindDescriptorSet(self, cmd, "gStorageTextures2D", resources.textures2D->GetStorageDescriptorSet());
213 record(self, r, cmd);
214 });
215 return renderer->CreatePass(
216 Format("{} Post-Transition", name), RHIDeviceQueueType::Graphics, 100u,
217 [resources, update](PassHandle self, Renderer* r)
218 {
219 r->BindPass(self, update);
220 r->BindDescriptorSetWrite(self, resources.textures2D->GetStorageDescriptorSetLayout(),
222 },
223 [resources](PassHandle, Renderer*, RHICommandList* cmd)
225}
226
227template <typename FSetup, typename FRecord>
229 FSetup&& setup, FRecord&& record)
230{
231 CHECK(renderer);
232 CHECK(resources.scene);
233 PassHandle preTransition = renderer->CreatePass(
234 Format("{} Pre-Transition", name), RHIDeviceQueueType::Graphics, 100u, FSetupDefault{},
235 [resources](PassHandle, Renderer*, RHICommandList* cmd)
237 PassHandle update = renderer->CreatePass(
238 name, RHIDeviceQueueType::Compute, 100u,
239 [resources, preTransition, setup = std::forward<FSetup>(setup)](PassHandle self, Renderer* r) mutable
240 {
241 r->BindPass(self, preTransition);
242 r->BindDescriptorSetWrite(self, "gStorageTextures3D",
245 setup(self, r);
246 },
247 [resources, record = std::forward<FRecord>(record)](PassHandle self, Renderer* r, RHICommandList* cmd) mutable
248 {
249 r->CmdBindDescriptorSet(self, cmd, "gStorageTextures3D", resources.textures3D->GetStorageDescriptorSet());
250 record(self, r, cmd);
251 });
252 return renderer->CreatePass(
253 Format("{} Post-Transition", name), RHIDeviceQueueType::Graphics, 100u,
254 [resources, update](PassHandle self, Renderer* r)
255 {
256 r->BindPass(self, update);
257 r->BindDescriptorSetWrite(self, resources.textures3D->GetStorageDescriptorSetLayout(),
259 },
260 [resources](PassHandle, Renderer*, RHICommandList* cmd)
262}
263
264template <typename FSetup, typename FRecord>
266 TextureHandle target, FSetup&& setup, FRecord&& record)
267{
268 CHECK(renderer);
269 CHECK(resources.scene);
270 CHECK(resources.textures2D);
271 RHITexture* texture =
272 resources.scene->ResolveDynamicTextureGPU(target, RHITextureUsageBits::RenderTarget);
273 CHECK(texture);
274 ResourceHandle const targetResource = renderer->CreateResource(Format("{} Target", name), texture);
275 RHITextureViewDesc const targetView{
276 .format = texture->mDesc.format,
277 .dimension = texture->mDesc.dimension,
278 .range = RHITextureSubresourceRange::Create(RHITextureAspectFlagBits::Color, 0, texture->mDesc.mipLevels, 0,
279 texture->mDesc.arrayLayers)};
280 PassHandle const update = renderer->CreatePass(
281 name, RHIDeviceQueueType::Graphics, 100u,
282 [resources, targetResource, targetView, setup = std::forward<FSetup>(setup)](PassHandle self,
283 Renderer* r) mutable
284 {
286 r->BindTextureRTV(self, targetResource, targetView);
287 setup(self, r);
288 },
289 [record = std::forward<FRecord>(record)](PassHandle self, Renderer* r, RHICommandList* cmd) mutable
290 { record(self, r, cmd); });
291 return renderer->CreatePass(
292 Format("{} Post-Transition", name), RHIDeviceQueueType::Graphics, 100u,
293 [resources, targetResource, texture, update](PassHandle self, Renderer* r)
294 {
295 r->BindPass(self, update);
297 self, targetResource,
298 RHIPipelineStageBits::AllGraphics | RHIPipelineStageBits::ComputeShader |
299 RHIPipelineStageBits::RayTracingShader,
300 RHITextureSubresourceRange::Create(RHITextureAspectFlagBits::Color, 0, texture->mDesc.mipLevels, 0,
301 texture->mDesc.arrayLayers));
303 r->MakePassUncullable(self);
304 },
305 [resources, target](PassHandle, Renderer*, RHICommandList*)
307}
308
#define CHECK(expr)
Definition Logging.hpp:92
void BuildGPUSceneHostUpdatePass(Renderer *renderer, RendererResources &resources)
Definition Renderer.cpp:40
PassHandle BuildGPUSceneTextures3DUpdatePass(Renderer *renderer, StringView name, RendererResources const &resources, FSetup &&setup, FRecord &&record)
Definition Renderer.hpp:228
void UpdateRendererCameraUBO(RendererUBO &ubo, uint32_t frameNumber, float4x4 const &view, float4x4 const &proj)
Definition Renderer.hpp:105
PassHandle BuildGPUSceneRenderToTexturePass(Renderer *renderer, StringView name, RendererResources const &resources, TextureHandle target, FSetup &&setup, FRecord &&record)
Definition Renderer.hpp:265
PassHandle BuildGPUSceneTextures2DUpdatePass(Renderer *renderer, StringView name, RendererResources const &resources, FSetup &&setup, FRecord &&record)
Definition Renderer.hpp:191
void BuildGPUSceneAccelerationStructureUpdatePass(Renderer *renderer, RendererResources &resources)
Definition Renderer.cpp:67
RHIDeviceSampler::SamplerDesc MakeTextureSamplerDesc(RendererConfig const &cfg)
Definition Renderer.hpp:147
RendererResources CreateGPUSceneRendererResources(Renderer *renderer, GPUScene *scene)
Definition Renderer.cpp:3
void BuildGPUSceneLightBVHRefitPasses(Renderer *renderer, RendererResources &resources, ResourceHandle ubo)
Definition Renderer.cpp:88
Definition Resource.hpp:57
Definition Command.hpp:42
Definition Resource.hpp:216
const RHITextureDesc mDesc
Definition Resource.hpp:221
Definition Bindless.hpp:10
RHIDeviceDescriptorSet * GetStorageDescriptorSet() const
Definition Bindless.hpp:93
RHIDeviceDescriptorSetLayout * GetDescriptorSetLayout() const
Definition Bindless.hpp:90
RHIDeviceDescriptorSetLayout * GetStorageDescriptorSetLayout() const
Definition Bindless.hpp:92
Renderer implementing a Frame Graph system with automatic resource tracking and synchronization.
Definition Renderer.hpp:377
PassHandle CreatePass(StringView name, RHIDeviceQueueType queue, size_t priority, FSetup &&setup, FRecord &&record)
Create a render pass from a Setup(Renderer*, PassHandle) and Record(Renderer*, PassHandle,...
Definition Renderer.hpp:680
void BindTextureRTV(PassHandle pass, ResourceHandle texture, RHITextureViewDesc const &desc, RHIPipelineState::PipelineStateDesc::Attachment::Blending const &blending={}) const
Binds a texture as a Render Target View (color attachment) for a graphics pass.
Definition Renderer.cpp:388
void BindTextureShaderRead(PassHandle pass, ResourceHandle texture, RHIPipelineStage stage, RHITextureSubresourceRange const &range) const
Declares a shader read dependency for a texture without creating an internal binding.
Definition Renderer.cpp:378
void BindDescriptorSetWrite(PassHandle pass, StringView bind_point, RHIDeviceDescriptorSetLayout *layout, RHIDeviceDescriptorSetLayout *reading_layout=nullptr)
Binds an externally managed descriptor set that this pass writes.
Definition Renderer.cpp:310
void MakePassUncullable(PassHandle pass) const
Marks a pass as "uncullable", meaning it will always be executed even if it has no dependencies.
Definition Renderer.cpp:138
void BindPass(PassHandle pass, PassHandle other)
Declares an inter-pass dependency, where the other pass should execute-before the current pass.
Definition Renderer.cpp:160
ResourceHandle CreateResource(StringView name, T const &desc)
Create a new resource to be used in the render graph.
Definition Renderer.hpp:705
Definition GPUScene.hpp:187
void EndDynamicTextureGPU(RHICommandList *cmd, bool is3D, DynamicTextureGPUAccess access)
Definition GPUScene.cpp:3517
void BeginDynamicTextureGPU(RHICommandList *cmd, bool is3D, DynamicTextureGPUAccess access)
Definition GPUScene.cpp:3513
void CompleteDynamicTextureGPU(TextureHandle handle, DynamicTextureGPUAccess access)
Definition GPUScene.cpp:3525
RHITexture * ResolveDynamicTextureGPU(TextureHandle handle, RHITextureUsage requiredUsage) const
Definition GPUScene.cpp:3521
constexpr String Format(fmt::format_string< Args... > format, Args &&... args)
String wrapper for Format().
Definition Container.hpp:126
std::basic_string_view< char > StringView
Alias for std::basic_string_view<char>
Definition Container.hpp:56
Definition Decompose.hpp:4
vec3 float3
Definition Math.hpp:26
vec4 float4
Definition Math.hpp:25
mat4 float4x4
Definition Math.hpp:28
static constexpr Handle kInvalidHandle
Definition Details.hpp:10
RHIResourceFormat
Definition Common.hpp:34
glm::vec< 2, uint32_t > RHIExtent2D
Definition Common.hpp:10
Core functionalities for rendering, including the Frame Graph implementation.
Definition Bindless.cpp:2
Handle ResourceHandle
Definition Renderer.hpp:22
Handle PassHandle
Definition Renderer.hpp:21
Definition Allocator.hpp:6
struct Foundation::RHI::RHIDeviceSampler::SamplerDesc::Anisotropy anisotropy
RHIResourceFormat format
Definition Resource.hpp:147
RHITextureDimension dimension
Definition Resource.hpp:144
uint32_t mipLevels
Definition Resource.hpp:149
uint32_t arrayLayers
Definition Resource.hpp:150
static RHITextureSubresourceRange Create(RHITextureAspectFlag aspect=RHITextureAspectFlagBits::Color, uint32_t base_mip_level=0, uint32_t mip_count=1, uint32_t base_array_layer=0, uint32_t layer_count=1)
Helper function to create a Subresource Range with default parameters.
Definition Resource.hpp:191
Definition Resource.hpp:210
RHIResourceFormat format
Definition Resource.hpp:211
Default "no-op" functor for Setup()
Definition Renderer.hpp:240
Definition GPUScene.hpp:40
Definition Renderer.hpp:90
float fbWidth
Definition Renderer.hpp:95
uint32_t ptAccumulatedFrames
Definition Renderer.hpp:94
uint32_t dbgShowOutline
Definition Renderer.hpp:93
uint32_t outlineInstanceId
Definition Renderer.hpp:97
float renderHeight
Definition Renderer.hpp:99
float renderWidth
Definition Renderer.hpp:98
uint32_t viewLutIndex
Definition Renderer.hpp:92
float fbHeight
Definition Renderer.hpp:96
uint32_t dbgViewFlags
Definition Renderer.hpp:100
float camEV
Definition Renderer.hpp:91
Definition Renderer.hpp:122
LightSampler lightSamplerMode
Definition Renderer.hpp:128
uint32_t ptSharcUpdateDownscale
Definition Renderer.hpp:140
bool energyCompensation
Definition Renderer.hpp:132
MaterialFlags materialFlags
Definition Renderer.hpp:124
PTSampler ptSampler
Definition Renderer.hpp:127
RHIExtent2D renderExtent
Definition Renderer.hpp:126
ViewFlags viewFlags
Definition Renderer.hpp:123
bool isRendering
Definition Renderer.hpp:144
float ptSharcRoughnessThreshold
Definition Renderer.hpp:139
uint32_t ptSharcAccumulationFrames
Definition Renderer.hpp:137
uint32_t ptSharcEntries
Definition Renderer.hpp:135
bool textureTrilinear
Definition Renderer.hpp:143
float ptSharcSceneScale
Definition Renderer.hpp:136
bool ptPrimaryLightVisibility
Definition Renderer.hpp:133
uint32_t ptSharcStaleFrames
Definition Renderer.hpp:138
float textureAnisoLevel
Definition Renderer.hpp:142
bool forceTextureLOD0
Definition Renderer.hpp:131
bool textureAnisoEnable
Definition Renderer.hpp:141
bool const * ptRenderPaused
Definition Renderer.hpp:129
bool ptShaderExecutionReordering
Definition Renderer.hpp:130
CullFlags cullFlags
Definition Renderer.hpp:125
bool ptSharc
Definition Renderer.hpp:134
Definition Renderer.hpp:310
ResourceHandle depth
Definition Renderer.hpp:316
RHIExtent2D extent
Definition Renderer.hpp:311
ResourceHandle instanceID
Definition Renderer.hpp:317
ResourceHandle specular
Definition Renderer.hpp:315
ResourceHandle diffuse
Definition Renderer.hpp:314
ResourceHandle debugOutput
Definition Renderer.hpp:318
RHIResourceFormat aovFormat
Definition Renderer.hpp:312
Definition Renderer.hpp:159
RHIBuffer * primitiveBufferRHI
Definition Renderer.hpp:176
bool hasCurveGeometry
Definition Renderer.hpp:180
bool hasDynamicGeometry
Definition Renderer.hpp:178
ResourceHandle materialBuffer
Definition Renderer.hpp:165
ResourceHandle sobolMatricesBuffer
Definition Renderer.hpp:172
ResourceHandle primitiveBuffer
Definition Renderer.hpp:161
ResourceHandle lightBVHNodeIndexBuffer
Definition Renderer.hpp:171
ResourceHandle lightBVHNodeBuffer
Definition Renderer.hpp:168
bool hasDynamicTextures
Definition Renderer.hpp:179
RHIBuffer * dynamicPrimitiveBufferRHI
Definition Renderer.hpp:177
ResourceHandle dynamicStagingBuffer
Definition Renderer.hpp:163
ResourceHandle emissiveClusterBuffer
Definition Renderer.hpp:167
ResourceHandle lightBVHBitmaskBuffer
Definition Renderer.hpp:170
ResourceHandle dynamicPrimitiveBuffer
Definition Renderer.hpp:162
GPUScene * scene
Definition Renderer.hpp:160
ResourceHandle tlas
Definition Renderer.hpp:173
ResourceHandle lightBuffer
Definition Renderer.hpp:166
ResourceHandle instanceBuffer
Definition Renderer.hpp:164
ResourceHandle lightBVHLightIndexBuffer
Definition Renderer.hpp:169
BindlessPool * textures2D
Definition Renderer.hpp:174
BindlessPool * textures3D
Definition Renderer.hpp:175
Definition Renderer.hpp:11
float zNear
Definition Renderer.hpp:16
uint32_t ggxLutEIORavgIndex
Definition Renderer.hpp:44
GSOffsetCount emissiveClusters
Definition Renderer.hpp:57
float aperture
Definition Renderer.hpp:24
float focalDistance
Definition Renderer.hpp:25
uint32_t cameraProjection
Definition Renderer.hpp:29
uint32_t envMapPrefilteredMips
Definition Renderer.hpp:51
uint32_t cameraHistoryFrame
Definition Renderer.hpp:22
uint32_t dbgMaterialFlags
Definition Renderer.hpp:83
uint32_t sharcAccumulationFrames
Definition Renderer.hpp:75
float4 projPlanes
Definition Renderer.hpp:23
uint32_t matcapTextureIndex
Definition Renderer.hpp:54
uint32_t hizLevels
Definition Renderer.hpp:34
uint32_t firstLightBVHBitmask
Definition Renderer.hpp:60
uint32_t ptPrimaryLightVisibility
Definition Renderer.hpp:70
float3 envSHCoeffs[9]
Definition Renderer.hpp:53
uint32_t ptAccumulatedFrames
Definition Renderer.hpp:66
uint32_t hizWidth
Definition Renderer.hpp:35
uint32_t envMapTextureIndex
Definition Renderer.hpp:48
float fbHeight
Definition Renderer.hpp:33
GSOffsetCount lightBVHGlobalIndices
Definition Renderer.hpp:61
uint32_t sharcEnabled
Definition Renderer.hpp:78
uint32_t energyCompensation
Definition Renderer.hpp:64
uint32_t sharcEntries
Definition Renderer.hpp:72
float4x4 view
Definition Renderer.hpp:17
uint32_t ggxLutEIORInvIndex
Definition Renderer.hpp:45
float ptFireflyClamp
Definition Renderer.hpp:68
float adaptiveThreshold
Definition Renderer.hpp:85
float camEV
Definition Renderer.hpp:38
uint32_t sheenLtcIndex
Definition Renderer.hpp:47
GSOffsetCount lightBVHDistantNodes
Definition Renderer.hpp:63
GSOffsetCount instances
Definition Renderer.hpp:13
GSOffsetCount lightBVHLightIndices
Definition Renderer.hpp:59
float4x4 proj
Definition Renderer.hpp:18
float4x4 inverseViewProj
Definition Renderer.hpp:20
uint32_t hizHeight
Definition Renderer.hpp:36
uint32_t sharcStaleFrames
Definition Renderer.hpp:76
uint32_t dbgViewFlags
Definition Renderer.hpp:82
uint32_t sharcUpdateDownscale
Definition Renderer.hpp:79
uint32_t frameNumber
Definition Renderer.hpp:12
float sharcRoughnessThreshold
Definition Renderer.hpp:77
uint32_t ggxLutEIndex
Definition Renderer.hpp:41
float4 camDirection
Definition Renderer.hpp:40
uint32_t apertureBlades
Definition Renderer.hpp:26
float rasterRTShadowBias
Definition Renderer.hpp:86
uint32_t ptSamplesPerPixel
Definition Renderer.hpp:69
uint32_t dbgShowOutline
Definition Renderer.hpp:81
uint32_t ggxLutEavgIndex
Definition Renderer.hpp:42
uint32_t hasEnvMap
Definition Renderer.hpp:52
float4 camPosition
Definition Renderer.hpp:39
uint32_t adaptiveMinSamples
Definition Renderer.hpp:84
float sharcSceneScale
Definition Renderer.hpp:73
float apertureRotation
Definition Renderer.hpp:27
GSOffsetCount materials
Definition Renderer.hpp:14
GSOffsetCount lights
Definition Renderer.hpp:56
uint32_t envMapConditionalCDFIndex
Definition Renderer.hpp:50
float sharcRadianceScale
Definition Renderer.hpp:74
uint32_t ggxLutEIORInvavgIndex
Definition Renderer.hpp:46
float4x4 inverseView
Definition Renderer.hpp:19
float4 sharcPreviousCameraPosition
Definition Renderer.hpp:71
GSOffsetCount lightBVHNodes
Definition Renderer.hpp:58
uint32_t ptMaxBounces
Definition Renderer.hpp:67
float apertureRatio
Definition Renderer.hpp:28
float lodThreshold
Definition Renderer.hpp:15
uint32_t lightBVHValid
Definition Renderer.hpp:62
float fbWidth
Definition Renderer.hpp:32
uint32_t envMapMarginalCDFIndex
Definition Renderer.hpp:49
float4x4 previousViewProj
Definition Renderer.hpp:21
uint32_t ggxLutEIORIndex
Definition Renderer.hpp:43
Definition GPUScene.hpp:54