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: