Foundation
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
GPUScene Class Reference

#include <GPUScene.hpp>

Classes

struct  GPUSceneTables
 
struct  MemoryStat
 
struct  UpdateResult
 

Public Types

enum class  DynamicTextureGPUAccess { UAV , RTV }
 
enum class  Result {
  Ready , InProgress , InvalidInput , InvalidHandle ,
  OutOfMemory , DecodeFailed , Cancelled
}
 
enum class  TLASBuildResult { Built , Empty }
 

Public Member Functions

 GPUScene (RHIDevice *device, JobSystem *jobs, Allocator *allocator, GPUSceneDesc const &desc, AllocatorStack *frameScratch=nullptr)
 
 ~GPUScene ()
 
Result Upload (FBlobDeserializer *blobs, FSerializedMesh const &source, GeometryHandle &outHandle)
 
Result Upload (FImportedMesh const &source, GeometryHandle &outHandle)
 
Result Allocate (uint32_t vertexCount, uint32_t indexCount, GeometryHandle &outHandle, bool isGpu=false)
 Allocates a dynamic geometry handle.
 
Result Allocate (uint32_t vertexCount, uint32_t indexCount, uint32_t leafCount, GeometryHandle &outHandle, bool isGpu=false)
 
Result Allocate (RHITextureDesc const &desc, TextureHandle &outHandle, bool isGpu=false, const char *debugName=nullptr)
 
Result Upload (FBlobDeserializer *blobs, FSerializedCurve const &source, GeometryHandle &outHandle)
 
Result Upload (FBlobDeserializer *blobs, FSerializedTexture const &source, TextureHandle &outTexture, const char *debugName=nullptr, bool pinned=false)
 
Result Upload (FTexture const &source, TextureHandle &outTexture, const char *debugName=nullptr, bool pinned=false)
 
Result UploadEnvironmentMap (FTexture const &source)
 
bool HasEnvironmentMap () const
 
Result Upload (RHIBuffer *dst, Span< const unsigned char > data, uint32_t dstOffset=0)
 
Result Query (GeometryHandle handle) const
 
Result Query (TextureHandle texture) const
 
void Join ()
 
Result Poll (size_t timeout)
 
void UpdateUBO (RendererUBO &globals) const
 
GPUSceneTables BeginScene (uint32_t instanceCount, uint32_t materialCount, uint32_t lightCount)
 
void ResolveGeometry (GeometryHandle handle, uint32_t &outPrimitiveOffset, uint32_t &outPrimitiveType, GSInstanceFlags &outPrimitiveFlags) const
 
UpdateResult EndScene (GPUSceneTables &tables, GPUSceneUpdateFlags flag=kDefaultGPUSceneUpdateFlags)
 
void DbgGetMemoryStatistics (Vector< MemoryStat > &outStats) const
 
String DbgGetBufferStatistics () const
 
uint32_t GetLightCapacity () const
 
TLASBuildResult BuildTLAS (RHICommandList *cmd, bool update=false)
 
bool HasDynamicGeometry () const
 
bool HasDynamicTextures () const
 
bool HasCurveGeometry () const
 
void BeginDynamicUpdate ()
 
void UpdateDynamicMeshCPU (GeometryHandle handle, Span< const FQVertex > vertices={}, Span< const uint32_t > indices={})
 Host-mapped copy. Requires isGpu = false with Allocate.
 
void UpdateDynamicMeshGPU (GeometryHandle handle, bool updateVertices, bool updateIndices)
 Device local writes. Requires isGpu = true with Allocate.
 
void UpdateDynamicCurveCPU (GeometryHandle handle, Span< const FCurveDOTSVertex > vertices={}, Span< const uint32_t > indices={}, Span< const FCurveLeaf > leaves={})
 Host-mapped copy. Requires isGpu = false with Allocate.
 
void UpdateDynamicCurveGPU (GeometryHandle handle, bool updateVertices, bool updateIndices, bool updateLeaves)
 Device local writes. Requires isGpu = true with Allocate.
 
void UpdateDynamicTextureCPU (TextureHandle handle, FTexture const &source)
 Host-mapped copy. Requires isGpu = false with Allocate.
 
uint32_t UpdateDynamicTextureGPU (TextureHandle handle, DynamicTextureGPUAccess access=DynamicTextureGPUAccess::UAV)
 Device local writes. Requires isGpu = true with Allocate.
 
void EndDynamicUpdate ()
 
void UploadDynamicGeometryCPU (RHICommandList *cmd)
 Commits host-side geometry and texture updates. GPU-side updates are not required to be committed, as they are already in device-local memory.
 
void UploadDynamicTexturesCPU (RHICommandList *cmd)
 
void BeginDynamicTextureGPU (RHICommandList *cmd, bool is3D, DynamicTextureGPUAccess access)
 
void EndDynamicTextureGPU (RHICommandList *cmd, bool is3D, DynamicTextureGPUAccess access)
 
RHITexture * ResolveDynamicTextureGPU (TextureHandle handle, RHITextureUsage requiredUsage) const
 
void CompleteDynamicTextureGPU (TextureHandle handle, DynamicTextureGPUAccess access)
 
void BuildBLAS (RHICommandList *cmd)
 
uint32_t GetDynamicRefitCount () const
 
uint32_t GetDynamicRebuildCount () const
 
void Collect ()
 Garbage-collects geometry and textures no longer referenced by the committed scene tables.
 
GSInstance GetInstance (uint32_t index) const
 
uint32_t GetInstanceCount () const
 
uint32_t InstanceFromTLAS (uint32_t tlasID) const
 
GSLight GetLight (uint32_t index) const
 
uint32_t GetLightCount () const
 
GSMaterial GetMaterial (uint32_t index) const
 
uint32_t GetMaterialCount () const
 
RHIBuffer * GetPrimitiveBuffer () const
 
RHIBuffer * GetDynamicPrimitiveBuffer () const
 
RHIBuffer * GetDynamicStagingBuffer () const
 
RHIBuffer * GetInstanceBuffer () const
 
RHIBuffer * GetMaterialBuffer () const
 
RHIBuffer * GetLightBuffer () const
 
RHIBuffer * GetEmissiveClusterBuffer () const
 
RHIBuffer * GetLightBVHNodeBuffer () const
 
RHIBuffer * GetLightBVHLightIndexBuffer () const
 
RHIBuffer * GetLightBVHBitmaskBuffer () const
 
RHIBuffer * GetLightBVHGlobalIndexBuffer () const
 
RHIBuffer * GetLightBVHNodeIndexBuffer () const
 
bool NeedsLightBVHRefit () const
 
uint32_t GetLightBVHRefitLevelCount () const
 
uint32_t GetLightBVHRefitLevelOffset (uint32_t level) const
 
uint32_t GetLightBVHRefitLevelNodeCount (uint32_t level) const
 
uint32_t GetLightBVHFirstNodeIndex () const
 
GSOffsetCount GetLightBVHNodes () const
 
GSOffsetCount GetLightBVHDistantNodes () const
 
BindlessPool * GetTexture2DPool ()
 
BindlessPool * GetTexture3DPool ()
 
BindlessPool const * GetTexture2DPool () const
 
BindlessPool const * GetTexture3DPool () const
 
RHITexture * GetFoundationDefaultTexture2D () const
 
RHITexture * GetFoundationDefaultTexture2DFloat () const
 
RHIBuffer * GetFoundationDefaultBufferFloat () const
 
RHIAccelerationStructure * GetTLAS () const
 
RHIBuffer * GetSobolMatricesBuffer () const
 
void Reset ()
 

Static Public Member Functions

static size_t CalculateMeshPrimitiveSize (FSerializedMesh const &src)
 
static size_t CalculateCurvePrimitiveSize (FSerializedCurve const &src)
 

Public Attributes

TextureHandle mFoundationDefaultTexture2DIndex
 
TextureHandle mFoundationDefaultTexture2DFloatIndex
 
TextureHandle mLUTGGXEIndex
 
TextureHandle mLUTGGXEavgIndex
 
TextureHandle mLUTGGXEIORavgIndex
 
TextureHandle mLUTGGXEIORInvavgIndex
 
TextureHandle mLUTGGXEIORIndex
 
TextureHandle mLUTGGXEIORInvIndex
 
TextureHandle mLUTSheenLTCIndex
 
TextureHandle mEnvMapIndex
 
TextureHandle mEnvMapMarginalCDFIndex
 
TextureHandle mEnvMapConditionalCDFIndex
 
uint32_t mEnvMapPrefilteredMips {0u}
 
Array< float3, 9 > mEnvSHCoeffs {}
 
float mEnvMapAverageRadiance {1.0f}
 

Private Attributes

UniquePtr< GPUSceneImpl > mImpl
 
UpdateResult mLastUpdateResult
 
Vector< GSInstance > mCommittedInstances
 
Vector< GSLight > mCommittedLights
 
Vector< GSMaterial > mCommittedMaterials
 
Vector< uint32_t > mTLASInstanceMap
 
RHIDeviceScopedHandle< RHIBuffer > mPrimitiveBuffer
 
RHIDeviceScopedHandle< RHIAccelerationStructure > mTLAS
 
uint32_t mLastTLASInstancesCount {0}
 
RHIDeviceScopedHandle< RHIBuffer > mSobolMatricesBuffer
 
RHIDeviceScopedHandle< RHIBuffer > mFoundationDefaultBufferFloat
 

Friends

struct GPUSceneImpl
 

Member Enumeration Documentation

◆ DynamicTextureGPUAccess

Enumerator
UAV 
RTV 

◆ Result

enum class GPUScene::Result
strong
Enumerator
Ready 
InProgress 
InvalidInput 
InvalidHandle 
OutOfMemory 
DecodeFailed 
Cancelled 

◆ TLASBuildResult

enum class GPUScene::TLASBuildResult
strong
Enumerator
Built 
Empty 

Constructor & Destructor Documentation

◆ GPUScene()

GPUScene::GPUScene ( RHIDevice *  device,
JobSystem *  jobs,
Allocator *  allocator,
GPUSceneDesc const &  desc,
AllocatorStack *  frameScratch = nullptr 
)

◆ ~GPUScene()

GPUScene::~GPUScene ( )
default

Member Function Documentation

◆ Allocate() [1/3]

GPUScene::Result GPUScene::Allocate ( RHITextureDesc const &  desc,
TextureHandle &  outHandle,
bool  isGpu = false,
const char *  debugName = nullptr 
)

◆ Allocate() [2/3]

GPUScene::Result GPUScene::Allocate ( uint32_t  vertexCount,
uint32_t  indexCount,
GeometryHandle &  outHandle,
bool  isGpu = false 
)

Allocates a dynamic geometry handle.

Parameters
isGpuWhether the dynamic geometry is GPU-local. See UpdateDynamicMeshCPU, UpdateDynamicMeshGPU.

◆ Allocate() [3/3]

GPUScene::Result GPUScene::Allocate ( uint32_t  vertexCount,
uint32_t  indexCount,
uint32_t  leafCount,
GeometryHandle &  outHandle,
bool  isGpu = false 
)

◆ BeginDynamicTextureGPU()

void GPUScene::BeginDynamicTextureGPU ( RHICommandList *  cmd,
bool  is3D,
DynamicTextureGPUAccess  access 
)

◆ BeginDynamicUpdate()

void GPUScene::BeginDynamicUpdate ( )

◆ BeginScene()

GPUScene::GPUSceneTables GPUScene::BeginScene ( uint32_t  instanceCount,
uint32_t  materialCount,
uint32_t  lightCount 
)

◆ BuildBLAS()

void GPUScene::BuildBLAS ( RHICommandList *  cmd)

◆ BuildTLAS()

GPUScene::TLASBuildResult GPUScene::BuildTLAS ( RHICommandList *  cmd,
bool  update = false 
)

◆ CalculateCurvePrimitiveSize()

size_t GPUScene::CalculateCurvePrimitiveSize ( FSerializedCurve const &  src)
static

◆ CalculateMeshPrimitiveSize()

size_t GPUScene::CalculateMeshPrimitiveSize ( FSerializedMesh const &  src)
static

◆ Collect()

void GPUScene::Collect ( )

Garbage-collects geometry and textures no longer referenced by the committed scene tables.

◆ CompleteDynamicTextureGPU()

void GPUScene::CompleteDynamicTextureGPU ( TextureHandle  handle,
DynamicTextureGPUAccess  access 
)

◆ DbgGetBufferStatistics()

String GPUScene::DbgGetBufferStatistics ( ) const

◆ DbgGetMemoryStatistics()

void GPUScene::DbgGetMemoryStatistics ( Vector< MemoryStat > &  outStats) const

◆ EndDynamicTextureGPU()

void GPUScene::EndDynamicTextureGPU ( RHICommandList *  cmd,
bool  is3D,
DynamicTextureGPUAccess  access 
)

◆ EndDynamicUpdate()

void GPUScene::EndDynamicUpdate ( )

◆ EndScene()

GPUScene::UpdateResult GPUScene::EndScene ( GPUSceneTables &  tables,
GPUSceneUpdateFlags  flag = kDefaultGPUSceneUpdateFlags 
)

◆ GetDynamicPrimitiveBuffer()

RHIBuffer * GPUScene::GetDynamicPrimitiveBuffer ( ) const

◆ GetDynamicRebuildCount()

uint32_t GPUScene::GetDynamicRebuildCount ( ) const

◆ GetDynamicRefitCount()

uint32_t GPUScene::GetDynamicRefitCount ( ) const

◆ GetDynamicStagingBuffer()

RHIBuffer * GPUScene::GetDynamicStagingBuffer ( ) const

◆ GetEmissiveClusterBuffer()

RHIBuffer * GPUScene::GetEmissiveClusterBuffer ( ) const

◆ GetFoundationDefaultBufferFloat()

RHIBuffer * GPUScene::GetFoundationDefaultBufferFloat ( ) const
inline

◆ GetFoundationDefaultTexture2D()

RHITexture * GPUScene::GetFoundationDefaultTexture2D ( ) const

◆ GetFoundationDefaultTexture2DFloat()

RHITexture * GPUScene::GetFoundationDefaultTexture2DFloat ( ) const

◆ GetInstance()

GSInstance GPUScene::GetInstance ( uint32_t  index) const
inline

◆ GetInstanceBuffer()

RHIBuffer * GPUScene::GetInstanceBuffer ( ) const

◆ GetInstanceCount()

uint32_t GPUScene::GetInstanceCount ( ) const
inline

◆ GetLight()

GSLight GPUScene::GetLight ( uint32_t  index) const
inline

◆ GetLightBuffer()

RHIBuffer * GPUScene::GetLightBuffer ( ) const

◆ GetLightBVHBitmaskBuffer()

RHIBuffer * GPUScene::GetLightBVHBitmaskBuffer ( ) const

◆ GetLightBVHDistantNodes()

GSOffsetCount GPUScene::GetLightBVHDistantNodes ( ) const

◆ GetLightBVHFirstNodeIndex()

uint32_t GPUScene::GetLightBVHFirstNodeIndex ( ) const

◆ GetLightBVHGlobalIndexBuffer()

RHIBuffer * GPUScene::GetLightBVHGlobalIndexBuffer ( ) const

◆ GetLightBVHLightIndexBuffer()

RHIBuffer * GPUScene::GetLightBVHLightIndexBuffer ( ) const

◆ GetLightBVHNodeBuffer()

RHIBuffer * GPUScene::GetLightBVHNodeBuffer ( ) const

◆ GetLightBVHNodeIndexBuffer()

RHIBuffer * GPUScene::GetLightBVHNodeIndexBuffer ( ) const

◆ GetLightBVHNodes()

GSOffsetCount GPUScene::GetLightBVHNodes ( ) const

◆ GetLightBVHRefitLevelCount()

uint32_t GPUScene::GetLightBVHRefitLevelCount ( ) const

◆ GetLightBVHRefitLevelNodeCount()

uint32_t GPUScene::GetLightBVHRefitLevelNodeCount ( uint32_t  level) const

◆ GetLightBVHRefitLevelOffset()

uint32_t GPUScene::GetLightBVHRefitLevelOffset ( uint32_t  level) const

◆ GetLightCapacity()

uint32_t GPUScene::GetLightCapacity ( ) const

◆ GetLightCount()

uint32_t GPUScene::GetLightCount ( ) const
inline

◆ GetMaterial()

GSMaterial GPUScene::GetMaterial ( uint32_t  index) const
inline

◆ GetMaterialBuffer()

RHIBuffer * GPUScene::GetMaterialBuffer ( ) const

◆ GetMaterialCount()

uint32_t GPUScene::GetMaterialCount ( ) const
inline

◆ GetPrimitiveBuffer()

RHIBuffer * GPUScene::GetPrimitiveBuffer ( ) const
inline

◆ GetSobolMatricesBuffer()

RHIBuffer * GPUScene::GetSobolMatricesBuffer ( ) const
inline

◆ GetTexture2DPool() [1/2]

BindlessPool * GPUScene::GetTexture2DPool ( )

◆ GetTexture2DPool() [2/2]

BindlessPool const * GPUScene::GetTexture2DPool ( ) const

◆ GetTexture3DPool() [1/2]

BindlessPool * GPUScene::GetTexture3DPool ( )

◆ GetTexture3DPool() [2/2]

BindlessPool const * GPUScene::GetTexture3DPool ( ) const

◆ GetTLAS()

RHIAccelerationStructure * GPUScene::GetTLAS ( ) const
inline

◆ HasCurveGeometry()

bool GPUScene::HasCurveGeometry ( ) const

◆ HasDynamicGeometry()

bool GPUScene::HasDynamicGeometry ( ) const

◆ HasDynamicTextures()

bool GPUScene::HasDynamicTextures ( ) const

◆ HasEnvironmentMap()

bool GPUScene::HasEnvironmentMap ( ) const
inline

◆ InstanceFromTLAS()

uint32_t GPUScene::InstanceFromTLAS ( uint32_t  tlasID) const
inline

◆ Join()

void GPUScene::Join ( )

◆ NeedsLightBVHRefit()

bool GPUScene::NeedsLightBVHRefit ( ) const

◆ Poll()

GPUScene::Result GPUScene::Poll ( size_t  timeout)

◆ Query() [1/2]

GPUScene::Result GPUScene::Query ( GeometryHandle  handle) const

◆ Query() [2/2]

GPUScene::Result GPUScene::Query ( TextureHandle  texture) const

◆ Reset()

void GPUScene::Reset ( )

◆ ResolveDynamicTextureGPU()

RHITexture * GPUScene::ResolveDynamicTextureGPU ( TextureHandle  handle,
RHITextureUsage  requiredUsage 
) const

◆ ResolveGeometry()

void GPUScene::ResolveGeometry ( GeometryHandle  handle,
uint32_t &  outPrimitiveOffset,
uint32_t &  outPrimitiveType,
GSInstanceFlags &  outPrimitiveFlags 
) const

◆ UpdateDynamicCurveCPU()

void GPUScene::UpdateDynamicCurveCPU ( GeometryHandle  handle,
Span< const FCurveDOTSVertex >  vertices = {},
Span< const uint32_t >  indices = {},
Span< const FCurveLeaf >  leaves = {} 
)

Host-mapped copy. Requires isGpu = false with Allocate.

◆ UpdateDynamicCurveGPU()

void GPUScene::UpdateDynamicCurveGPU ( GeometryHandle  handle,
bool  updateVertices,
bool  updateIndices,
bool  updateLeaves 
)

Device local writes. Requires isGpu = true with Allocate.

Note
This in effect only marks the geometry dirty, and is thread-safe to commit.

◆ UpdateDynamicMeshCPU()

void GPUScene::UpdateDynamicMeshCPU ( GeometryHandle  handle,
Span< const FQVertex >  vertices = {},
Span< const uint32_t >  indices = {} 
)

Host-mapped copy. Requires isGpu = false with Allocate.

◆ UpdateDynamicMeshGPU()

void GPUScene::UpdateDynamicMeshGPU ( GeometryHandle  handle,
bool  updateVertices,
bool  updateIndices 
)

Device local writes. Requires isGpu = true with Allocate.

Note
This in effect only marks the geometry dirty, and is thread-safe to commit.

◆ UpdateDynamicTextureCPU()

void GPUScene::UpdateDynamicTextureCPU ( TextureHandle  handle,
FTexture const &  source 
)

Host-mapped copy. Requires isGpu = false with Allocate.

◆ UpdateDynamicTextureGPU()

uint32_t GPUScene::UpdateDynamicTextureGPU ( TextureHandle  handle,
DynamicTextureGPUAccess  access = DynamicTextureGPUAccess::UAV 
)

Device local writes. Requires isGpu = true with Allocate.

Note
This in effect only marks the texture dirty, and is thread-safe to commit.

◆ UpdateUBO()

void GPUScene::UpdateUBO ( RendererUBO &  globals) const

◆ Upload() [1/6]

GPUScene::Result GPUScene::Upload ( FBlobDeserializer *  blobs,
FSerializedCurve const &  source,
GeometryHandle &  outHandle 
)

◆ Upload() [2/6]

GPUScene::Result GPUScene::Upload ( FBlobDeserializer *  blobs,
FSerializedMesh const &  source,
GeometryHandle &  outHandle 
)

◆ Upload() [3/6]

GPUScene::Result GPUScene::Upload ( FBlobDeserializer *  blobs,
FSerializedTexture const &  source,
TextureHandle &  outTexture,
const char *  debugName = nullptr,
bool  pinned = false 
)

◆ Upload() [4/6]

GPUScene::Result GPUScene::Upload ( FImportedMesh const &  source,
GeometryHandle &  outHandle 
)

◆ Upload() [5/6]

GPUScene::Result GPUScene::Upload ( FTexture const &  source,
TextureHandle &  outTexture,
const char *  debugName = nullptr,
bool  pinned = false 
)

◆ Upload() [6/6]

GPUScene::Result GPUScene::Upload ( RHIBuffer *  dst,
Span< const unsigned char >  data,
uint32_t  dstOffset = 0 
)

◆ UploadDynamicGeometryCPU()

void GPUScene::UploadDynamicGeometryCPU ( RHICommandList *  cmd)

Commits host-side geometry and texture updates. GPU-side updates are not required to be committed, as they are already in device-local memory.

◆ UploadDynamicTexturesCPU()

void GPUScene::UploadDynamicTexturesCPU ( RHICommandList *  cmd)

◆ UploadEnvironmentMap()

GPUScene::Result GPUScene::UploadEnvironmentMap ( FTexture const &  source)

Friends And Related Symbol Documentation

◆ GPUSceneImpl

friend struct GPUSceneImpl
friend

Member Data Documentation

◆ mCommittedInstances

Vector<GSInstance> GPUScene::mCommittedInstances
private

◆ mCommittedLights

Vector<GSLight> GPUScene::mCommittedLights
private

◆ mCommittedMaterials

Vector<GSMaterial> GPUScene::mCommittedMaterials
private

◆ mEnvMapAverageRadiance

float GPUScene::mEnvMapAverageRadiance {1.0f}

◆ mEnvMapConditionalCDFIndex

TextureHandle GPUScene::mEnvMapConditionalCDFIndex

◆ mEnvMapIndex

TextureHandle GPUScene::mEnvMapIndex

◆ mEnvMapMarginalCDFIndex

TextureHandle GPUScene::mEnvMapMarginalCDFIndex

◆ mEnvMapPrefilteredMips

uint32_t GPUScene::mEnvMapPrefilteredMips {0u}

◆ mEnvSHCoeffs

Array<float3, 9> GPUScene::mEnvSHCoeffs {}

◆ mFoundationDefaultBufferFloat

RHIDeviceScopedHandle<RHIBuffer> GPUScene::mFoundationDefaultBufferFloat
private

◆ mFoundationDefaultTexture2DFloatIndex

TextureHandle GPUScene::mFoundationDefaultTexture2DFloatIndex

◆ mFoundationDefaultTexture2DIndex

TextureHandle GPUScene::mFoundationDefaultTexture2DIndex

◆ mImpl

UniquePtr<GPUSceneImpl> GPUScene::mImpl
private

◆ mLastTLASInstancesCount

uint32_t GPUScene::mLastTLASInstancesCount {0}
private

◆ mLastUpdateResult

UpdateResult GPUScene::mLastUpdateResult
private

◆ mLUTGGXEavgIndex

TextureHandle GPUScene::mLUTGGXEavgIndex

◆ mLUTGGXEIndex

TextureHandle GPUScene::mLUTGGXEIndex

◆ mLUTGGXEIORavgIndex

TextureHandle GPUScene::mLUTGGXEIORavgIndex

◆ mLUTGGXEIORIndex

TextureHandle GPUScene::mLUTGGXEIORIndex

◆ mLUTGGXEIORInvavgIndex

TextureHandle GPUScene::mLUTGGXEIORInvavgIndex

◆ mLUTGGXEIORInvIndex

TextureHandle GPUScene::mLUTGGXEIORInvIndex

◆ mLUTSheenLTCIndex

TextureHandle GPUScene::mLUTSheenLTCIndex

◆ mPrimitiveBuffer

RHIDeviceScopedHandle<RHIBuffer> GPUScene::mPrimitiveBuffer
private

◆ mSobolMatricesBuffer

RHIDeviceScopedHandle<RHIBuffer> GPUScene::mSobolMatricesBuffer
private

◆ mTLAS

◆ mTLASInstanceMap

Vector<uint32_t> GPUScene::mTLASInstanceMap
private

The documentation for this class was generated from the following files: