Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mitsuba::VPLShaderManager::VPLConfiguration Struct Reference

Describes the configuration of a (vpl, bsdf, emitter) shader chain triplet. More...

#include <mitsuba/hw/vpl.h>

Public Member Functions

 VPLConfiguration ()
 Dummy constructor. More...
 
 VPLConfiguration (Shader *vpl, Shader *bsdf, Shader *emitter, bool faceNormals)
 Create a new configuration for the given (vpl, bsdf, emitter) triplet. More...
 
void generateCode (std::ostringstream &oss, std::string &vplEvalName, std::string &bsdfEvalName, std::string &emitterEvalName) const
 Generate GLSL code for the entire shader chain. More...
 
void resolve (GPUProgram *program)
 Resolve all parameters of the shader chain. More...
 
void bind (const VPLConfiguration &targetConf, int textureUnitOffset)
 Bind all referenced resources (textures etc) More...
 
void unbind ()
 Release resources that were bound by bind() More...
 
std::string toString () const
 Generate a textual summary of the entire shader chain. More...
 

Public Attributes

DependencyNode vpl
 
DependencyNode bsdf
 
DependencyNode emitter
 
bool faceNormals
 
GPUProgramprogram
 
int param_instanceTransform
 
int param_vplTransform
 
int param_vplPosition
 
int param_vplDirection
 
int param_camPosition
 
int param_camDirection
 
int param_shadowMap
 
int param_depthRange
 
int param_emitterScale
 
int param_vplPower
 
int param_vplFrame
 
int param_vplUV
 
int param_vplWi
 
int param_minDistSqr
 

Detailed Description

Describes the configuration of a (vpl, bsdf, emitter) shader chain triplet.

Constructor & Destructor Documentation

mitsuba::VPLShaderManager::VPLConfiguration::VPLConfiguration ( )
inline

Dummy constructor.

mitsuba::VPLShaderManager::VPLConfiguration::VPLConfiguration ( Shader vpl,
Shader bsdf,
Shader emitter,
bool  faceNormals 
)
inline

Create a new configuration for the given (vpl, bsdf, emitter) triplet.

Member Function Documentation

void mitsuba::VPLShaderManager::VPLConfiguration::bind ( const VPLConfiguration targetConf,
int  textureUnitOffset 
)
inline

Bind all referenced resources (textures etc)

void mitsuba::VPLShaderManager::VPLConfiguration::generateCode ( std::ostringstream &  oss,
std::string &  vplEvalName,
std::string &  bsdfEvalName,
std::string &  emitterEvalName 
) const
inline

Generate GLSL code for the entire shader chain.

void mitsuba::VPLShaderManager::VPLConfiguration::resolve ( GPUProgram program)
inline

Resolve all parameters of the shader chain.

std::string mitsuba::VPLShaderManager::VPLConfiguration::toString ( ) const
inline

Generate a textual summary of the entire shader chain.

void mitsuba::VPLShaderManager::VPLConfiguration::unbind ( )
inline

Release resources that were bound by bind()

Member Data Documentation

DependencyNode mitsuba::VPLShaderManager::VPLConfiguration::bsdf
DependencyNode mitsuba::VPLShaderManager::VPLConfiguration::emitter
bool mitsuba::VPLShaderManager::VPLConfiguration::faceNormals
int mitsuba::VPLShaderManager::VPLConfiguration::param_camDirection
int mitsuba::VPLShaderManager::VPLConfiguration::param_camPosition
int mitsuba::VPLShaderManager::VPLConfiguration::param_depthRange
int mitsuba::VPLShaderManager::VPLConfiguration::param_emitterScale
int mitsuba::VPLShaderManager::VPLConfiguration::param_instanceTransform
int mitsuba::VPLShaderManager::VPLConfiguration::param_minDistSqr
int mitsuba::VPLShaderManager::VPLConfiguration::param_shadowMap
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplDirection
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplFrame
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplPosition
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplPower
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplTransform
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplUV
int mitsuba::VPLShaderManager::VPLConfiguration::param_vplWi
GPUProgram* mitsuba::VPLShaderManager::VPLConfiguration::program
DependencyNode mitsuba::VPLShaderManager::VPLConfiguration::vpl

The documentation for this struct was generated from the following file: