LocalShader Class Reference

#include <LocalShader.h>

Inheritance diagram for LocalShader:

Shader GRAObject GLShader List of all members.

Public Member Functions

 LocalShader (ReflectionModel *m, DiffuseBRDF *db, SpecularBRDF *sb, bool e)
virtual void distributeEnergy (void)
virtual void setScene (Scene *o)
virtual bool setRenderedShape (SceneGraphObject *pShape, const Matrix4 *pTrMat)
virtual Color3f * illuminatePoint (const Vector3 &location, const Vector3 &normal, const Vector3 &eyeDir, float eyeDist, double *pNV, const Matrix4 *pTrMat)=0

Protected Attributes

bool _exploitEnergy
 whether to exploit precomputed energy coats
ReflectionModel_pReflectionModel
SceneGraphObject * _pShape
Scene_pScene
DiffuseBRDF * _pDefaultDiffBRDF
SpecularBRDF * _pDefaultSpecBRDF

Detailed Description

Local shader that ommits surrounding energy.

Definition at line 17 of file LocalShader.h.


Constructor & Destructor Documentation

LocalShader ReflectionModel m,
DiffuseBRDF *  db,
SpecularBRDF *  sb,
bool  e
[inline]
 

Constructor.

Parameters:
m reflection model
db default diffuse BRDF
sb default specular BRDF
e if true then precomputed energy coats are rendered instead of original objects

Definition at line 31 of file LocalShader.h.


Member Function Documentation

virtual void distributeEnergy void   )  [inline, virtual]
 

View-independent global energy distribution in the whole scene (first stage of the global illumination process)

Implements Shader.

Definition at line 41 of file LocalShader.h.

virtual Color3f* illuminatePoint const Vector3 &  location,
const Vector3 &  normal,
const Vector3 &  eyeDir,
float  eyeDist,
double *  pNV,
const Matrix4 *  pTrMat
[pure virtual, inherited]
 

View-restricted illumination of individual points on surface (second stage of the global illumination process). Two combinations of parametters are possible: 1) Vectors are not transformed and the transformation matrix is identical to the matrix of the setRenderedShape() function. 2) Vectors are already transformed and the matrix is NULL.

Parameters:
location point's location on surface (space coords.)
normal normalized normal vector
eyeDir normalized direction from towards viewer
eyeDist distance to viewer
pNV either cross-product of normal and eyeDir or NULL
pTrMat transformation matrix or NULL
Returns:
final color of the point on success, NULL otherwise

Implemented in GLShader, RadShader, and RTShader.

Referenced by RTRender::_render_pixel_point(), and RadShader::illuminatePoint().

virtual bool setRenderedShape SceneGraphObject *  pShape,
const Matrix4 *  pTrMat
[inline, virtual, inherited]
 

Sets the shape of interest used for per-surface point illumination, see illuminatePoint().

Parameters:
pShape shape of interest
pTrMat transformation matrix of the shape

Reimplemented in GLShader, PhotonMapShader, and RadShader.

Definition at line 85 of file Shader.h.

Referenced by GLRender::_render(), GLBVRender::_render(), RTRender::_render_pixel_point(), RadShader::setRenderedShape(), and PhotonMapShader::setRenderedShape().

virtual void setScene Scene o  )  [inline, virtual, inherited]
 

Sets the scene for energy distribution, see distributeEnergy().

Parameters:
o scene

Reimplemented in PhotonMapShader, and RadShader.

Definition at line 67 of file Shader.h.

Referenced by PhotonMapShader::setScene().


Member Data Documentation

bool _exploitEnergy [protected]
 

whether to exploit precomputed energy coats

Definition at line 19 of file LocalShader.h.

Referenced by GLShader::setRenderedShape().

DiffuseBRDF* _pDefaultDiffBRDF [protected, inherited]
 

Definition at line 39 of file Shader.h.

Referenced by PhotonMapShader::distributeEnergy().

SpecularBRDF* _pDefaultSpecBRDF [protected, inherited]
 

Definition at line 40 of file Shader.h.

Referenced by PhotonMapShader::distributeEnergy().

ReflectionModel* _pReflectionModel [protected, inherited]
 

Definition at line 36 of file Shader.h.

Referenced by RadShader::distributeEnergy(), and RTShader::illuminatePoint().

Scene* _pScene [protected, inherited]
 

Definition at line 38 of file Shader.h.

Referenced by PhotonMapShader::_create_maps_per_shape(), PhotonMapShader::_create_scene_maps(), PhotonMapShader::_emit_caustic_photon(), PhotonMapShader::_emit_global_photon(), PhotonMapShader::distributeEnergy(), and RadShader::setScene().

SceneGraphObject* _pShape [protected, inherited]
 

Definition at line 37 of file Shader.h.

Referenced by RTShader::illuminatePoint(), and GLShader::setRenderedShape().


The documentation for this class was generated from the following file:
Generated on Tue Nov 21 15:11:43 2006 for gra by  doxygen 1.4.6