Utility class for creating different kinds of shadow maps (cube, directional, and paraboloid shadow maps) using hardware rasterization.
More...
#include <mitsuba/hw/shadow.h>
Utility class for creating different kinds of shadow maps (cube, directional, and paraboloid shadow maps) using hardware rasterization.
Enumerator |
---|
EDirectional |
Directional (orthographic) shadow map.
|
EParaboloid |
Nonlinear paraboloid shadow map (captures one hemisphere)
|
ECube |
Omnidirectional shadow map, 6 passes.
|
ECubeSinglePass |
Omnidirectional shadow map, 1 pass with geometry shader.
|
EHemicube |
Hemispherical cube shadow map, 5 passes.
|
EHemicubeSinglePass |
Hemispherical cube shadow map, 1 pass with geometry shader.
|
ETypeCount |
Unused.
|
mitsuba::ShadowMapGenerator::ShadowMapGenerator |
( |
Renderer * |
renderer | ) |
|
Create a new shadow map generator.
virtual mitsuba::ShadowMapGenerator::~ShadowMapGenerator |
( |
| ) |
|
|
inlineprotectedvirtual |
Allocate a texture that is suitable for storing the requested type of shadow map and return it.
void mitsuba::ShadowMapGenerator::cleanup |
( |
| ) |
|
Release allocated resources.
Transform mitsuba::ShadowMapGenerator::directionalFindGoodFrame |
( |
const AABB & |
aabb, |
|
|
const Vector & |
d |
|
) |
| const |
Convenience function for computing a transformation that is suitable for creating a directional shadow map.
- Parameters
-
aabb | Axis-aligned bounding box of the world-space content that should be covered |
d | Viewing direction of the shadow map |
virtual const Class* mitsuba::ShadowMapGenerator::getClass |
( |
| ) |
const |
|
virtual |
Retrieve this object's class.
Reimplemented from Object.
size_t mitsuba::ShadowMapGenerator::getShaderCount |
( |
| ) |
const |
Return the number of resident shaders.
void mitsuba::ShadowMapGenerator::init |
( |
| ) |
|
Register the associated GPU programs.
Render a shadow map using the desired technique.
- Parameters
-
renderer | Underlying Renderer instance |
shadowMap | Target texture, which was previously created using allocate() |
type | Desired shadow map type |
trafo | View transformation of the source |
bool mitsuba::ShadowMapGenerator::m_cubeDepthMapsSupported |
|
protected |
int mitsuba::ShadowMapGenerator::m_cubeProjDir |
|
protected |
int mitsuba::ShadowMapGenerator::m_cubeSinglePassProjDir[6] |
|
protected |
int mitsuba::ShadowMapGenerator::m_cubeSinglePassTransform[6] |
|
protected |
int mitsuba::ShadowMapGenerator::m_cubeTransform |
|
protected |
int mitsuba::ShadowMapGenerator::m_hemicubeSinglePassProjDir[5] |
|
protected |
int mitsuba::ShadowMapGenerator::m_hemicubeSinglePassTransform[5] |
|
protected |
int mitsuba::ShadowMapGenerator::m_paraboloidInvDepthRange |
|
protected |
int mitsuba::ShadowMapGenerator::m_paraboloidMinDepth |
|
protected |
Class* mitsuba::ShadowMapGenerator::m_theClass |
|
static |
The documentation for this class was generated from the following file: