The Dirtchamber
A mixed reality testing environment for real-time global illumination algorithms
Public Member Functions | List of all members
dune::delta_sparse_voxel_octree Class Reference

A Delta Radiance Field of an SVO necessary for Delta Voxel Cone Tracing (DVCT) More...

#include <sparse_voxel_octree.h>

Inheritance diagram for dune::delta_sparse_voxel_octree:
dune::sparse_voxel_octree dune::shader_resource

Public Member Functions

virtual void destroy ()
 Destroy the shader_resource and free all memory.
 
virtual void to_ps (ID3D11DeviceContext *context, UINT volume_start_slot)
 Upload the shader resource to register slot of a pixel shader.
 
- Public Member Functions inherited from dune::sparse_voxel_octree
void set_shader_voxelize (ID3D11VertexShader *vs, ID3D11GeometryShader *gs, ID3D11PixelShader *ps)
 Set the complete voxelization shader. More...
 
void set_shader_inject (ID3D11VertexShader *vs, ID3D11PixelShader *ps, UINT rsm_start_slot)
 Set the complete injection shader. More...
 
void voxelize (ID3D11DeviceContext *context, gilga_mesh &mesh, bool clear=true)
 Voxelize a mesh into a volume with normals and an occupied marker. If clear is true, the volume is cleared before voxelization.
 
virtual void inject (ID3D11DeviceContext *context, directional_light &light)
 Inject a bounce from directional_light into the SVO.
 
void filter (ID3D11DeviceContext *context)
 Pre-filter (i.e. mip-map) the SVO.
 
cb_gi_parametersparameters ()
 Return local cbuffer parameters.
 
const cb_gi_parametersparameters () const
 Return local cbuffer parameters.
 
void set_model_matrix (ID3D11DeviceContext *context, const DirectX::XMFLOAT4X4 &model, const DirectX::XMFLOAT3 &svo_min, const DirectX::XMFLOAT3 &svo_max, UINT svo_parameters_slot)
 Set/get the world -> SVO matrix, which transforms world coordinates to SVO volume coordinates.
 
const DirectX::XMFLOAT4X4 & world_to_svo () const
 Set/get the world -> SVO matrix, which transforms world coordinates to SVO volume coordinates.
 
- Public Member Functions inherited from dune::shader_resource
virtual void to_vs (ID3D11DeviceContext *context, UINT slot)
 Upload the shader resource to register slot of a vertex shader.
 
virtual void to_gs (ID3D11DeviceContext *context, UINT slot)
 Upload the shader resource to register slot of a geometry shader.
 
virtual void to_cs (ID3D11DeviceContext *context, UINT slot)
 Upload the shader resource to register slot of a compute shader.
 

Detailed Description

A Delta Radiance Field of an SVO necessary for Delta Voxel Cone Tracing (DVCT)

This class is an implementation of [Franke 2014]. A DLPV is an LPV that extracts the difference in illumination caused by the introduction of an additional object into a scene. It can be used to correct for this difference, for instance in augmented reality applications.

The mechanic works like this: instead of injecting one RSM, two a rendered. One is rendered with a scene, the other with the same scene and an additional object. By injecting the latter first, and then injecting the former negatively, the delta is extracted and propagated in the volume.

A DLPV also injects direct light to form out rough shadow blobs. Propagation of direct and indirect injects is independend from one another.


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