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{1e-3f};
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};
31 // -- Framebuffers
32 // Note: ALWAYS updated by Renderers themselves (PT/RASTER)
33 float fbWidth;
34 float fbHeight;
35 uint32_t hizLevels;
36 uint32_t hizWidth;
37 uint32_t hizHeight;
38 // -- Lighting
39 float camEV{0.0f};
42 uint32_t ggxLutEIndex{UINT32_MAX};
43 uint32_t ggxLutEavgIndex{UINT32_MAX};
44 uint32_t ggxLutEIORIndex{UINT32_MAX};
45 uint32_t ggxLutEIORavgIndex{UINT32_MAX};
46 uint32_t ggxLutEIORInvIndex{UINT32_MAX};
47 uint32_t ggxLutEIORInvavgIndex{UINT32_MAX};
48 uint32_t sheenLtcIndex{UINT32_MAX};
49 uint32_t envMapTextureIndex{UINT32_MAX};
50 uint32_t envMapMarginalCDFIndex{UINT32_MAX};
51 uint32_t envMapConditionalCDFIndex{UINT32_MAX};
53 uint32_t hasEnvMap{0u};
55 uint32_t matcapTextureIndex{UINT32_MAX};
56 // Scene lights
63 uint32_t lightBVHValid{0u};
65 uint32_t energyCompensation{1u};
66 // -- Path Tracing
67 uint32_t ptAccumulatedFrames{0u};
68 uint32_t ptMaxBounces{4u};
69 float ptFireflyClamp{1.0f}; // 10^x
70 uint32_t ptSamplesPerPixel{1u}; // Always >= 1.
71 uint32_t ptPrimaryLightVisibility{0u}; // Analytic lights + sun disks on bounce 0
73 uint32_t sharcEntries{0u};
74 float sharcSceneScale{50.0f};
75 float sharcRadianceScale{1000.0f};
77 uint32_t sharcStaleFrames{60u};
79 uint32_t sharcEnabled{1u};
81 // -- Debug
82 uint32_t dbgShowOutline{0u};
83 uint32_t dbgViewFlags{0u};
84 uint32_t dbgMaterialFlags{0u};
85 uint32_t adaptiveMinSamples{32u};
86 float adaptiveThreshold{0.01f}; // 0 = disabled
87 float rasterRTShadowBias{0.01f};
88};
89
91{
92 float camEV{0.0f};
93 uint32_t viewLutIndex{UINT32_MAX};
94 uint32_t dbgShowOutline{0u};
95 uint32_t ptAccumulatedFrames{0u};
96 float fbWidth{1.0f};
97 float fbHeight{1.0f};
98 uint32_t outlineInstanceId{~0u};
99 float renderWidth{1.0f}; // Internal render target width
100 float renderHeight{1.0f}; // Internal render target height
101 uint32_t dbgViewFlags{0u};
102};
103
104#pragma pack(pop)
105
106inline void UpdateRendererCameraUBO(RendererUBO& ubo, uint32_t frameNumber, float4x4 const& view, float4x4 const& proj)
107{
108 if (ubo.cameraHistoryFrame != frameNumber)
109 {
111 ubo.previousViewProj = ubo.cameraHistoryFrame == UINT32_MAX ? proj * view : ubo.proj * ubo.view;
112 ubo.cameraHistoryFrame = frameNumber;
113 }
114 ubo.frameNumber = frameNumber;
115 ubo.view = view;
116 ubo.proj = proj;
117 ubo.inverseView = inverse(view);
118 ubo.inverseViewProj = inverse(proj * view);
119 ubo.cameraTanHalfFov = float2{1.0f / proj[0][0], 1.0f / proj[1][1]};
120}
121
122
124{
125 ViewFlags viewFlags{ViewFlagsBits::EnableRasterRTShadows};
126 MaterialFlags materialFlags{0u};
127 CullFlags cullFlags{CullFlagsBits::Frustum | CullFlagsBits::Occlusion | CullFlagsBits::Backface};
129 PTSampler ptSampler{PTSampler::Sobol};
130 LightSampler lightSamplerMode{LightSampler::BVH};
131 bool const* ptRenderPaused{nullptr};
133 bool forceTextureLOD0{false};
137 bool ptSharc{true};
138 uint32_t ptSharcEntries{1u << 22u};
139 float ptSharcSceneScale{50.0f};
141 uint32_t ptSharcStaleFrames{60u};
145 float textureAnisoLevel{16.0f};
147 bool isRendering{false};
148};
149
151{
152 using SamplerDesc = RHIDeviceSampler::SamplerDesc;
153 using MipmapMode = SamplerDesc::Mipmap::MipmapMode;
154 return {
155 .anisotropy = {.enable = cfg.textureAnisoEnable, .maxLevel = cfg.textureAnisoLevel},
156 .mipmap = {.mipmapMode = cfg.textureTrilinear ? MipmapMode::Linear : MipmapMode::Nearest},
157 .lod = {.max = 16.0f},
158 };
159}
160
185
187
188void BuildGPUSceneHostUpdatePass(Renderer* renderer, RendererResources& resources);
190;
192
193template <typename FSetup, typename FRecord>
195 FSetup&& setup, FRecord&& record)
196{
197 CHECK(renderer);
198 CHECK(resources.scene);
199 PassHandle preTransition = renderer->CreatePass(
200 Format("{} Pre-Transition", name), RHIDeviceQueueType::Graphics, 100u, FSetupDefault{},
201 [resources](PassHandle, Renderer*, RHICommandList* cmd)
203 PassHandle update = renderer->CreatePass(
204 name, RHIDeviceQueueType::Compute, 100u,
205 [resources, preTransition, setup = std::forward<FSetup>(setup)](PassHandle self, Renderer* r) mutable
206 {
207 r->BindPass(self, preTransition);
208 r->BindDescriptorSetWrite(self, "gStorageTextures2D",
211 setup(self, r);
212 },
213 [resources, record = std::forward<FRecord>(record)](PassHandle self, Renderer* r, RHICommandList* cmd) mutable
214 {
215 r->CmdBindDescriptorSet(self, cmd, "gStorageTextures2D", resources.textures2D->GetStorageDescriptorSet());
216 record(self, r, cmd);
217 });
218 return renderer->CreatePass(
219 Format("{} Post-Transition", name), RHIDeviceQueueType::Graphics, 100u,
220 [resources, update](PassHandle self, Renderer* r)
221 {
222 r->BindPass(self, update);
223 r->BindDescriptorSetWrite(self, resources.textures2D->GetStorageDescriptorSetLayout(),
225 },
226 [resources](PassHandle, Renderer*, RHICommandList* cmd)
228}
229
230template <typename FSetup, typename FRecord>
232 FSetup&& setup, FRecord&& record)
233{
234 CHECK(renderer);
235 CHECK(resources.scene);
236 PassHandle preTransition = renderer->CreatePass(
237 Format("{} Pre-Transition", name), RHIDeviceQueueType::Graphics, 100u, FSetupDefault{},
238 [resources](PassHandle, Renderer*, RHICommandList* cmd)
240 PassHandle update = renderer->CreatePass(
241 name, RHIDeviceQueueType::Compute, 100u,
242 [resources, preTransition, setup = std::forward<FSetup>(setup)](PassHandle self, Renderer* r) mutable
243 {
244 r->BindPass(self, preTransition);
245 r->BindDescriptorSetWrite(self, "gStorageTextures3D",
248 setup(self, r);
249 },
250 [resources, record = std::forward<FRecord>(record)](PassHandle self, Renderer* r, RHICommandList* cmd) mutable
251 {
252 r->CmdBindDescriptorSet(self, cmd, "gStorageTextures3D", resources.textures3D->GetStorageDescriptorSet());
253 record(self, r, cmd);
254 });
255 return renderer->CreatePass(
256 Format("{} Post-Transition", name), RHIDeviceQueueType::Graphics, 100u,
257 [resources, update](PassHandle self, Renderer* r)
258 {
259 r->BindPass(self, update);
260 r->BindDescriptorSetWrite(self, resources.textures3D->GetStorageDescriptorSetLayout(),
262 },
263 [resources](PassHandle, Renderer*, RHICommandList* cmd)
265}
266
267template <typename FSetup, typename FRecord>
269 TextureHandle target, FSetup&& setup, FRecord&& record)
270{
271 CHECK(renderer);
272 CHECK(resources.scene);
273 CHECK(resources.textures2D);
274 RHITexture* texture =
275 resources.scene->ResolveDynamicTextureGPU(target, RHITextureUsageBits::RenderTarget);
276 CHECK(texture);
277 ResourceHandle const targetResource = renderer->CreateResource(Format("{} Target", name), texture);
278 RHITextureViewDesc const targetView{
279 .format = texture->mDesc.format,
280 .dimension = texture->mDesc.dimension,
281 .range = RHITextureSubresourceRange::Create(RHITextureAspectFlagBits::Color, 0, texture->mDesc.mipLevels, 0,
282 texture->mDesc.arrayLayers)};
283 PassHandle const update = renderer->CreatePass(
284 name, RHIDeviceQueueType::Graphics, 100u,
285 [resources, targetResource, targetView, setup = std::forward<FSetup>(setup)](PassHandle self,
286 Renderer* r) mutable
287 {
289 r->BindTextureRTV(self, targetResource, targetView);
290 setup(self, r);
291 },
292 [record = std::forward<FRecord>(record)](PassHandle self, Renderer* r, RHICommandList* cmd) mutable
293 { record(self, r, cmd); });
294 return renderer->CreatePass(
295 Format("{} Post-Transition", name), RHIDeviceQueueType::Graphics, 100u,
296 [resources, targetResource, texture, update](PassHandle self, Renderer* r)
297 {
298 r->BindPass(self, update);
300 self, targetResource,
301 RHIPipelineStageBits::AllGraphics | RHIPipelineStageBits::ComputeShader |
302 RHIPipelineStageBits::RayTracingShader,
303 RHITextureSubresourceRange::Create(RHITextureAspectFlagBits::Color, 0, texture->mDesc.mipLevels, 0,
304 texture->mDesc.arrayLayers));
306 r->MakePassUncullable(self);
307 },
308 [resources, target](PassHandle, Renderer*, RHICommandList*)
310}
311
#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:231
void UpdateRendererCameraUBO(RendererUBO &ubo, uint32_t frameNumber, float4x4 const &view, float4x4 const &proj)
Definition Renderer.hpp:106
PassHandle BuildGPUSceneRenderToTexturePass(Renderer *renderer, StringView name, RendererResources const &resources, TextureHandle target, FSetup &&setup, FRecord &&record)
Definition Renderer.hpp:268
PassHandle BuildGPUSceneTextures2DUpdatePass(Renderer *renderer, StringView name, RendererResources const &resources, FSetup &&setup, FRecord &&record)
Definition Renderer.hpp:194
void BuildGPUSceneAccelerationStructureUpdatePass(Renderer *renderer, RendererResources &resources)
Definition Renderer.cpp:67
RHIDeviceSampler::SamplerDesc MakeTextureSamplerDesc(RendererConfig const &cfg)
Definition Renderer.hpp:150
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:404
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:719
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:441
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:431
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:363
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:141
void BindPass(PassHandle pass, PassHandle other)
Declares an inter-pass dependency, where the other pass should execute-before the current pass.
Definition Renderer.cpp:205
ResourceHandle CreateResource(StringView name, T const &desc)
Create a new resource to be used in the render graph.
Definition Renderer.hpp:744
Definition GPUScene.hpp:196
void EndDynamicTextureGPU(RHICommandList *cmd, bool is3D, DynamicTextureGPUAccess access)
Definition GPUScene.cpp:3510
void BeginDynamicTextureGPU(RHICommandList *cmd, bool is3D, DynamicTextureGPUAccess access)
Definition GPUScene.cpp:3506
void CompleteDynamicTextureGPU(TextureHandle handle, DynamicTextureGPUAccess access)
Definition GPUScene.cpp:3518
RHITexture * ResolveDynamicTextureGPU(TextureHandle handle, RHITextureUsage requiredUsage) const
Definition GPUScene.cpp:3514
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
vec2 float2
Definition Math.hpp:27
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:268
Definition GPUScene.hpp:40
Definition Renderer.hpp:91
float fbWidth
Definition Renderer.hpp:96
uint32_t ptAccumulatedFrames
Definition Renderer.hpp:95
uint32_t dbgShowOutline
Definition Renderer.hpp:94
uint32_t outlineInstanceId
Definition Renderer.hpp:98
float renderHeight
Definition Renderer.hpp:100
float renderWidth
Definition Renderer.hpp:99
uint32_t viewLutIndex
Definition Renderer.hpp:93
float fbHeight
Definition Renderer.hpp:97
uint32_t dbgViewFlags
Definition Renderer.hpp:101
float camEV
Definition Renderer.hpp:92
Definition Renderer.hpp:124
LightSampler lightSamplerMode
Definition Renderer.hpp:130
uint32_t ptSharcUpdateDownscale
Definition Renderer.hpp:143
bool energyCompensation
Definition Renderer.hpp:134
bool ptLightBVHIncludeEmissiveClusters
Definition Renderer.hpp:136
MaterialFlags materialFlags
Definition Renderer.hpp:126
PTSampler ptSampler
Definition Renderer.hpp:129
RHIExtent2D renderExtent
Definition Renderer.hpp:128
ViewFlags viewFlags
Definition Renderer.hpp:125
bool isRendering
Definition Renderer.hpp:147
float ptSharcRoughnessThreshold
Definition Renderer.hpp:142
uint32_t ptSharcAccumulationFrames
Definition Renderer.hpp:140
uint32_t ptSharcEntries
Definition Renderer.hpp:138
bool textureTrilinear
Definition Renderer.hpp:146
float ptSharcSceneScale
Definition Renderer.hpp:139
bool ptPrimaryLightVisibility
Definition Renderer.hpp:135
uint32_t ptSharcStaleFrames
Definition Renderer.hpp:141
float textureAnisoLevel
Definition Renderer.hpp:145
bool forceTextureLOD0
Definition Renderer.hpp:133
bool textureAnisoEnable
Definition Renderer.hpp:144
bool const * ptRenderPaused
Definition Renderer.hpp:131
bool ptShaderExecutionReordering
Definition Renderer.hpp:132
CullFlags cullFlags
Definition Renderer.hpp:127
bool ptSharc
Definition Renderer.hpp:137
Definition Renderer.hpp:313
TemporalResourceHandle depth
Definition Renderer.hpp:319
RHIExtent2D extent
Definition Renderer.hpp:314
ResourceHandle instanceID
Definition Renderer.hpp:320
ResourceHandle specular
Definition Renderer.hpp:318
ResourceHandle diffuse
Definition Renderer.hpp:317
ResourceHandle debugOutput
Definition Renderer.hpp:321
RHIResourceFormat aovFormat
Definition Renderer.hpp:315
Definition Renderer.hpp:162
RHIBuffer * primitiveBufferRHI
Definition Renderer.hpp:179
bool hasCurveGeometry
Definition Renderer.hpp:183
bool hasDynamicGeometry
Definition Renderer.hpp:181
ResourceHandle materialBuffer
Definition Renderer.hpp:168
ResourceHandle sobolMatricesBuffer
Definition Renderer.hpp:175
ResourceHandle primitiveBuffer
Definition Renderer.hpp:164
ResourceHandle lightBVHNodeIndexBuffer
Definition Renderer.hpp:174
ResourceHandle lightBVHNodeBuffer
Definition Renderer.hpp:171
bool hasDynamicTextures
Definition Renderer.hpp:182
RHIBuffer * dynamicPrimitiveBufferRHI
Definition Renderer.hpp:180
ResourceHandle dynamicStagingBuffer
Definition Renderer.hpp:166
ResourceHandle emissiveClusterBuffer
Definition Renderer.hpp:170
ResourceHandle lightBVHBitmaskBuffer
Definition Renderer.hpp:173
ResourceHandle dynamicPrimitiveBuffer
Definition Renderer.hpp:165
GPUScene * scene
Definition Renderer.hpp:163
ResourceHandle tlas
Definition Renderer.hpp:176
ResourceHandle lightBuffer
Definition Renderer.hpp:169
ResourceHandle instanceBuffer
Definition Renderer.hpp:167
ResourceHandle lightBVHLightIndexBuffer
Definition Renderer.hpp:172
BindlessPool * textures2D
Definition Renderer.hpp:177
BindlessPool * textures3D
Definition Renderer.hpp:178
Definition Renderer.hpp:11
float zNear
Definition Renderer.hpp:16
uint32_t ggxLutEIORavgIndex
Definition Renderer.hpp:45
GSOffsetCount emissiveClusters
Definition Renderer.hpp:58
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:52
uint32_t cameraHistoryFrame
Definition Renderer.hpp:22
uint32_t dbgMaterialFlags
Definition Renderer.hpp:84
uint32_t sharcAccumulationFrames
Definition Renderer.hpp:76
float4 projPlanes
Definition Renderer.hpp:23
uint32_t matcapTextureIndex
Definition Renderer.hpp:55
uint32_t hizLevels
Definition Renderer.hpp:35
uint32_t firstLightBVHBitmask
Definition Renderer.hpp:61
uint32_t ptPrimaryLightVisibility
Definition Renderer.hpp:71
float3 envSHCoeffs[9]
Definition Renderer.hpp:54
uint32_t ptAccumulatedFrames
Definition Renderer.hpp:67
uint32_t hizWidth
Definition Renderer.hpp:36
uint32_t envMapTextureIndex
Definition Renderer.hpp:49
float fbHeight
Definition Renderer.hpp:34
GSOffsetCount lightBVHGlobalIndices
Definition Renderer.hpp:62
uint32_t sharcEnabled
Definition Renderer.hpp:79
uint32_t energyCompensation
Definition Renderer.hpp:65
uint32_t sharcEntries
Definition Renderer.hpp:73
float4x4 view
Definition Renderer.hpp:17
uint32_t ggxLutEIORInvIndex
Definition Renderer.hpp:46
float ptFireflyClamp
Definition Renderer.hpp:69
float adaptiveThreshold
Definition Renderer.hpp:86
float camEV
Definition Renderer.hpp:39
uint32_t sheenLtcIndex
Definition Renderer.hpp:48
GSOffsetCount lightBVHDistantNodes
Definition Renderer.hpp:64
GSOffsetCount instances
Definition Renderer.hpp:13
GSOffsetCount lightBVHLightIndices
Definition Renderer.hpp:60
float4x4 proj
Definition Renderer.hpp:18
float4x4 inverseViewProj
Definition Renderer.hpp:20
uint32_t hizHeight
Definition Renderer.hpp:37
uint32_t sharcStaleFrames
Definition Renderer.hpp:77
uint32_t dbgViewFlags
Definition Renderer.hpp:83
uint32_t sharcUpdateDownscale
Definition Renderer.hpp:80
uint32_t frameNumber
Definition Renderer.hpp:12
float sharcRoughnessThreshold
Definition Renderer.hpp:78
uint32_t ggxLutEIndex
Definition Renderer.hpp:42
float4 camDirection
Definition Renderer.hpp:41
uint32_t apertureBlades
Definition Renderer.hpp:26
float rasterRTShadowBias
Definition Renderer.hpp:87
float2 cameraTanHalfFov
Definition Renderer.hpp:30
uint32_t ptSamplesPerPixel
Definition Renderer.hpp:70
uint32_t dbgShowOutline
Definition Renderer.hpp:82
uint32_t ggxLutEavgIndex
Definition Renderer.hpp:43
uint32_t hasEnvMap
Definition Renderer.hpp:53
float4 camPosition
Definition Renderer.hpp:40
uint32_t adaptiveMinSamples
Definition Renderer.hpp:85
float sharcSceneScale
Definition Renderer.hpp:74
float apertureRotation
Definition Renderer.hpp:27
GSOffsetCount materials
Definition Renderer.hpp:14
GSOffsetCount lights
Definition Renderer.hpp:57
uint32_t envMapConditionalCDFIndex
Definition Renderer.hpp:51
float sharcRadianceScale
Definition Renderer.hpp:75
uint32_t ggxLutEIORInvavgIndex
Definition Renderer.hpp:47
float4x4 inverseView
Definition Renderer.hpp:19
float4 sharcPreviousCameraPosition
Definition Renderer.hpp:72
GSOffsetCount lightBVHNodes
Definition Renderer.hpp:59
uint32_t ptMaxBounces
Definition Renderer.hpp:68
float apertureRatio
Definition Renderer.hpp:28
float lodThreshold
Definition Renderer.hpp:15
uint32_t lightBVHValid
Definition Renderer.hpp:63
float fbWidth
Definition Renderer.hpp:33
uint32_t envMapMarginalCDFIndex
Definition Renderer.hpp:50
float4x4 previousViewProj
Definition Renderer.hpp:21
uint32_t ggxLutEIORIndex
Definition Renderer.hpp:44
Definition GPUScene.hpp:54