Polyphase Game Engine
Loading...
Searching...
No Matches
RayTracer Class Reference

#include <RayTracer.h>

Public Member Functions

void CreateStaticRayTraceResources ()
 
void DestroyStaticRayTraceResources ()
 
void CreateDynamicRayTraceResources ()
 
void DestroyDynamicRayTraceResources ()
 
void PathTraceWorld ()
 
void BeginLightBake ()
 
void UpdateLightBake ()
 
void EndLightBake ()
 
bool IsLightBakeInProgress ()
 
float GetLightBakeProgress ()
 
Image * GetPathTraceImage ()
 
LightBakePhase GetLightBakePhase () const
 
void ReadbackLightBakeResults ()
 

Protected Member Functions

void UpdateRayTracingScene (std::vector< RayTraceTriangle > &triangleData, std::vector< RayTraceMesh > &meshData, std::vector< RayTraceLight > &lightData, int32_t *outBakeMeshIndex=nullptr)
 
void UpdateBakeVertexData ()
 
void DispatchNextLightBake ()
 
void DispatchNextBakeDiffuse ()
 
void FinalizeLightBake ()
 
void BindPathTraceDescriptorSet ()
 
void BindBakeDiffuseDescriptorSet ()
 

Protected Attributes

DescriptorSet * mPathTraceDescriptorSet = nullptr
 
Buffer * mRayTraceTriangleBuffer = nullptr
 
Buffer * mRayTraceMeshBuffer = nullptr
 
Buffer * mRayTraceLightBuffer = nullptr
 
UniformBuffer * mRayTraceUniformBuffer = nullptr
 
Buffer * mLightBakeVertexBuffer = nullptr
 
DescriptorSet * mBakeDiffuseDescriptorSet = nullptr
 
Buffer * mBakeAverageBuffer = nullptr
 
Buffer * mBakeDiffuseTriangleBuffer = nullptr
 
Image * mPathTraceImage = nullptr
 
std::vector< Image * > mTextureImages
 
uint32_t mAccumulatedFrames = 0
 
glm::vec3 mPathTracePrevCameraPos = { 0.0f, 0.0f, 0.0f }
 
glm::vec3 mPathTracePrevCameraRot = { 0.0f, 0.0f, 0.0f }
 
LightBakePhase mLightBakePhase = LightBakePhase::Count
 
std::vector< NodePtrmLightBakeNodes
 
std::vector< LightBakeResultmLightBakeResults
 
int32_t mBakingCompIndex = -1
 
int32_t mNextBakingCompIndex = 0
 
int64_t mBakedFrame = -1
 
uint32_t mTotalDiffusePasses = 1
 

Member Function Documentation

◆ BeginLightBake()

void RayTracer::BeginLightBake ( )

◆ BindBakeDiffuseDescriptorSet()

void RayTracer::BindBakeDiffuseDescriptorSet ( )
protected

◆ BindPathTraceDescriptorSet()

void RayTracer::BindPathTraceDescriptorSet ( )
protected

◆ CreateDynamicRayTraceResources()

void RayTracer::CreateDynamicRayTraceResources ( )

◆ CreateStaticRayTraceResources()

void RayTracer::CreateStaticRayTraceResources ( )

◆ DestroyDynamicRayTraceResources()

void RayTracer::DestroyDynamicRayTraceResources ( )

◆ DestroyStaticRayTraceResources()

void RayTracer::DestroyStaticRayTraceResources ( )

◆ DispatchNextBakeDiffuse()

void RayTracer::DispatchNextBakeDiffuse ( )
protected

◆ DispatchNextLightBake()

void RayTracer::DispatchNextLightBake ( )
protected

◆ EndLightBake()

void RayTracer::EndLightBake ( )

◆ FinalizeLightBake()

void RayTracer::FinalizeLightBake ( )
protected

◆ GetLightBakePhase()

LightBakePhase RayTracer::GetLightBakePhase ( ) const

◆ GetLightBakeProgress()

float RayTracer::GetLightBakeProgress ( )

◆ GetPathTraceImage()

Image * RayTracer::GetPathTraceImage ( )

◆ IsLightBakeInProgress()

bool RayTracer::IsLightBakeInProgress ( )

◆ PathTraceWorld()

void RayTracer::PathTraceWorld ( )

◆ ReadbackLightBakeResults()

void RayTracer::ReadbackLightBakeResults ( )

◆ UpdateBakeVertexData()

void RayTracer::UpdateBakeVertexData ( )
protected

◆ UpdateLightBake()

void RayTracer::UpdateLightBake ( )

◆ UpdateRayTracingScene()

void RayTracer::UpdateRayTracingScene ( std::vector< RayTraceTriangle > &  triangleData,
std::vector< RayTraceMesh > &  meshData,
std::vector< RayTraceLight > &  lightData,
int32_t *  outBakeMeshIndex = nullptr 
)
protected

Member Data Documentation

◆ mAccumulatedFrames

uint32_t RayTracer::mAccumulatedFrames = 0
protected

◆ mBakeAverageBuffer

Buffer* RayTracer::mBakeAverageBuffer = nullptr
protected

◆ mBakedFrame

int64_t RayTracer::mBakedFrame = -1
protected

◆ mBakeDiffuseDescriptorSet

DescriptorSet* RayTracer::mBakeDiffuseDescriptorSet = nullptr
protected

◆ mBakeDiffuseTriangleBuffer

Buffer* RayTracer::mBakeDiffuseTriangleBuffer = nullptr
protected

◆ mBakingCompIndex

int32_t RayTracer::mBakingCompIndex = -1
protected

◆ mLightBakeNodes

std::vector<NodePtr> RayTracer::mLightBakeNodes
protected

◆ mLightBakePhase

LightBakePhase RayTracer::mLightBakePhase = LightBakePhase::Count
protected

◆ mLightBakeResults

std::vector<LightBakeResult> RayTracer::mLightBakeResults
protected

◆ mLightBakeVertexBuffer

Buffer* RayTracer::mLightBakeVertexBuffer = nullptr
protected

◆ mNextBakingCompIndex

int32_t RayTracer::mNextBakingCompIndex = 0
protected

◆ mPathTraceDescriptorSet

DescriptorSet* RayTracer::mPathTraceDescriptorSet = nullptr
protected

◆ mPathTraceImage

Image* RayTracer::mPathTraceImage = nullptr
protected

◆ mPathTracePrevCameraPos

glm::vec3 RayTracer::mPathTracePrevCameraPos = { 0.0f, 0.0f, 0.0f }
protected

◆ mPathTracePrevCameraRot

glm::vec3 RayTracer::mPathTracePrevCameraRot = { 0.0f, 0.0f, 0.0f }
protected

◆ mRayTraceLightBuffer

Buffer* RayTracer::mRayTraceLightBuffer = nullptr
protected

◆ mRayTraceMeshBuffer

Buffer* RayTracer::mRayTraceMeshBuffer = nullptr
protected

◆ mRayTraceTriangleBuffer

Buffer* RayTracer::mRayTraceTriangleBuffer = nullptr
protected

◆ mRayTraceUniformBuffer

UniformBuffer* RayTracer::mRayTraceUniformBuffer = nullptr
protected

◆ mTextureImages

std::vector<Image*> RayTracer::mTextureImages
protected

◆ mTotalDiffusePasses

uint32_t RayTracer::mTotalDiffusePasses = 1
protected

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