Nebula
Loading...
Searching...
No Matches
Raytracing Namespace Reference

Detailed Description

Context dealing with scene management for ray tracing.

Classes

class  RaytracingContext
struct  RaytracingSetupSettings

Enumerations

enum  ObjectType {
  BRDFObject , BSDFObject , GLTFObject , TerrainObject ,
  ParticleObject , NumObjectTypes
}
enum  UpdateType { Dynamic , Static }

Functions

 __ImplementContext (RaytracingContext, raytracingContextAllocator)

Variables

static const uint NUM_GRID_CELLS = 64
struct { 
   Threading::CriticalSection   Raytracing::blasLock 
   Util::Array< CoreGraphics::BlasInstanceId >   Raytracing::blasInstances 
   Util::Array< CoreGraphics::MeshId >   Raytracing::blasInstanceMeshes 
   Util::Array< CoreGraphics::BlasId >   Raytracing::blasesToRebuild 
   Util::Array< CoreGraphics::BlasId >   Raytracing::blases 
   Util::FixedArray< CoreGraphics::TlasId >   Raytracing::toplevelAccelerationStructures 
   Memory::RangeAllocator   Raytracing::blasInstanceAllocator 
   bool   Raytracing::topLevelNeedsReconstruction 
   bool   Raytracing::topLevelNeedsBuild 
   bool   Raytracing::topLevelNeedsUpdate 
   Util::HashTable< CoreGraphics::MeshId, Util::Tuple< uint, Util::Array< CoreGraphics::BlasId > > >   Raytracing::blasLookup 
   CoreGraphics::BufferWithStaging   Raytracing::blasInstanceBuffer 
   CoreGraphics::ResourceTableSet   Raytracing::raytracingTables 
   CoreGraphics::ResourceTableId   Raytracing::raytracingTestOutputTable 
   CoreGraphics::BufferWithStaging   Raytracing::objectBindingBuffer 
   Util::Array< Raytracetest::TlasInstance >   Raytracing::objects 
   CoreGraphics::BufferId   Raytracing::gridBuffer 
   CoreGraphics::BufferId   Raytracing::lightGridConstants 
   CoreGraphics::ShaderId   Raytracing::lightGridShader 
   CoreGraphics::ResourceTableSet   Raytracing::lightGridResourceTables 
   CoreGraphics::ShaderProgramId   Raytracing::lightGridGenProgram 
   CoreGraphics::ShaderProgramId   Raytracing::lightGridCullProgram 
   CoreGraphics::BufferId   Raytracing::lightGridIndexLists 
   CoreGraphics::PipelineRayTracingTable   Raytracing::raytracingBundle 
   CoreGraphics::ShaderProgramId   Raytracing::hitPrograms [NumObjectTypes
   CoreGraphics::MeshId   Raytracing::placeholderMesh 
   Materials::MaterialId   Raytracing::placeholderMaterial 
   Threading::Event   Raytracing::jobWaitEvent 
   SizeT   Raytracing::maxAllowedInstances = 0 
   SizeT   Raytracing::numRegisteredInstances = 0 
   SizeT   Raytracing::pendingBlasSetups = 0 
   SizeT   Raytracing::numInstancesToFlush 
   uint   Raytracing::lastBuildInstanceCount = 0 
   uint   Raytracing::lastBuildBlasCount = 0 
state
static uint MaterialPropertyMappings [(uint) MaterialTemplatesGPULang::MaterialProperties::Num]
static Core::CVarr_RaytracingDispatch = Core::CVarCreate(Core::CVar_Int, "r_RaytracingDispatch", "2", "Ray dispatch: 0=build only, 1=1x1 capture stub, 2=full test (640x480)")
static Core::CVarr_RaytracingDDGI = Core::CVarCreate(Core::CVar_Int, "r_RaytracingDDGI", "1", "DDGI probe rays [0,1]. Independent of r_RaytracingDispatch.")
static Core::CVarr_RaytracingValidate = Core::CVarCreate(Core::CVar_Int, "r_RaytracingValidate", "1", "Assert TLAS instance records on the CPU before the GPU build [0,1]")
static Core::CVarr_RaytracingDebug = Core::CVarCreate(Core::CVar_Int, "r_RaytracingDebug", "0", "Show raytracing instance inspector [0,1]")
static constexpr const char * HitShaderPaths [NumObjectTypes]

Enumeration Type Documentation

◆ ObjectType

Enumerator
BRDFObject 
BSDFObject 
GLTFObject 
TerrainObject 
ParticleObject 
NumObjectTypes 

◆ UpdateType

Enumerator
Dynamic 
Static 

Function Documentation

◆ __ImplementContext()

Raytracing::__ImplementContext ( RaytracingContext ,
raytracingContextAllocator  )

Variable Documentation

◆ blases

Util::Array<CoreGraphics::BlasId> Raytracing::blases

◆ blasesToRebuild

Util::Array<CoreGraphics::BlasId> Raytracing::blasesToRebuild

◆ blasInstanceAllocator

Memory::RangeAllocator Raytracing::blasInstanceAllocator

◆ blasInstanceBuffer

CoreGraphics::BufferWithStaging Raytracing::blasInstanceBuffer

◆ blasInstanceMeshes

Util::Array<CoreGraphics::MeshId> Raytracing::blasInstanceMeshes

◆ blasInstances

Util::Array<CoreGraphics::BlasInstanceId> Raytracing::blasInstances

◆ blasLock

Threading::CriticalSection Raytracing::blasLock

◆ blasLookup

◆ gridBuffer

CoreGraphics::BufferId Raytracing::gridBuffer

◆ hitPrograms

CoreGraphics::ShaderProgramId Raytracing::hitPrograms[NumObjectTypes]

◆ HitShaderPaths

const char* Raytracing::HitShaderPaths[NumObjectTypes]
staticconstexpr
Initial value:
=
{
"shd:raytracing/shaders/brdfhit.gplb",
"shd:raytracing/shaders/bsdfhit.gplb",
"shd:raytracing/shaders/gltfhit.gplb",
"shd:raytracing/shaders/terrainhit.gplb",
"shd:raytracing/shaders/particlehit.gplb"
}

◆ jobWaitEvent

Threading::Event Raytracing::jobWaitEvent

◆ lastBuildBlasCount

uint Raytracing::lastBuildBlasCount = 0

◆ lastBuildInstanceCount

uint Raytracing::lastBuildInstanceCount = 0

◆ lightGridConstants

CoreGraphics::BufferId Raytracing::lightGridConstants

◆ lightGridCullProgram

CoreGraphics::ShaderProgramId Raytracing::lightGridCullProgram

◆ lightGridGenProgram

CoreGraphics::ShaderProgramId Raytracing::lightGridGenProgram

◆ lightGridIndexLists

CoreGraphics::BufferId Raytracing::lightGridIndexLists

◆ lightGridResourceTables

CoreGraphics::ResourceTableSet Raytracing::lightGridResourceTables

◆ lightGridShader

CoreGraphics::ShaderId Raytracing::lightGridShader

◆ MaterialPropertyMappings

uint Raytracing::MaterialPropertyMappings[(uint) MaterialTemplatesGPULang::MaterialProperties::Num]
static

◆ maxAllowedInstances

SizeT Raytracing::maxAllowedInstances = 0

◆ NUM_GRID_CELLS

const uint Raytracing::NUM_GRID_CELLS = 64
static

◆ numInstancesToFlush

SizeT Raytracing::numInstancesToFlush

◆ numRegisteredInstances

SizeT Raytracing::numRegisteredInstances = 0

◆ objectBindingBuffer

CoreGraphics::BufferWithStaging Raytracing::objectBindingBuffer

◆ objects

Util::Array<Raytracetest::TlasInstance> Raytracing::objects

◆ pendingBlasSetups

SizeT Raytracing::pendingBlasSetups = 0

◆ placeholderMaterial

Materials::MaterialId Raytracing::placeholderMaterial

◆ placeholderMesh

CoreGraphics::MeshId Raytracing::placeholderMesh

◆ r_RaytracingDDGI

Core::CVar* Raytracing::r_RaytracingDDGI = Core::CVarCreate(Core::CVar_Int, "r_RaytracingDDGI", "1", "DDGI probe rays [0,1]. Independent of r_RaytracingDispatch.")
static

◆ r_RaytracingDebug

Core::CVar* Raytracing::r_RaytracingDebug = Core::CVarCreate(Core::CVar_Int, "r_RaytracingDebug", "0", "Show raytracing instance inspector [0,1]")
static

◆ r_RaytracingDispatch

Core::CVar* Raytracing::r_RaytracingDispatch = Core::CVarCreate(Core::CVar_Int, "r_RaytracingDispatch", "2", "Ray dispatch: 0=build only, 1=1x1 capture stub, 2=full test (640x480)")
static

◆ r_RaytracingValidate

Core::CVar* Raytracing::r_RaytracingValidate = Core::CVarCreate(Core::CVar_Int, "r_RaytracingValidate", "1", "Assert TLAS instance records on the CPU before the GPU build [0,1]")
static

◆ raytracingBundle

CoreGraphics::PipelineRayTracingTable Raytracing::raytracingBundle

◆ raytracingTables

CoreGraphics::ResourceTableSet Raytracing::raytracingTables

◆ raytracingTestOutputTable

CoreGraphics::ResourceTableId Raytracing::raytracingTestOutputTable

◆ [struct]

struct { ... } Raytracing::state

◆ toplevelAccelerationStructures

Util::FixedArray<CoreGraphics::TlasId> Raytracing::toplevelAccelerationStructures

◆ topLevelNeedsBuild

bool Raytracing::topLevelNeedsBuild

◆ topLevelNeedsReconstruction

bool Raytracing::topLevelNeedsReconstruction

◆ topLevelNeedsUpdate

bool Raytracing::topLevelNeedsUpdate