RTShader Class Reference

#include <RTShader.h>

Inheritance diagram for RTShader:

GlobalShader Shader GRAObject PhotonMapShader List of all members.

Public Member Functions

 RTShader (RayTracing *m, DiffuseBRDF *db, SpecularBRDF *cb)
virtual void distributeEnergy (void)
virtual Color3f * illuminatePoint (const Vector3 &location, const Vector3 &normal, const Vector3 &eyeDir, float eyeDist, double *pNV, const Matrix4 *pTrMat)
virtual void setScene (Scene *o)
virtual bool setRenderedShape (SceneGraphObject *pShape, const Matrix4 *pTrMat)

Protected Attributes

ReflectionModel_pReflectionModel
SceneGraphObject * _pShape
Scene_pScene
DiffuseBRDF * _pDefaultDiffBRDF
SpecularBRDF * _pDefaultSpecBRDF

Detailed Description

Shader for Whitter ray tracing.

Definition at line 18 of file RTShader.h.


Constructor & Destructor Documentation

RTShader RayTracing m,
DiffuseBRDF *  db,
SpecularBRDF *  cb
[inline]
 

Constructor.

Parameters:
m reflection model
db default diffuse BRDF
sb default specular BRDF

Definition at line 27 of file RTShader.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.

Reimplemented in PhotonMapShader.

Definition at line 36 of file RTShader.h.

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

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 cross-product of normal and eyeDir, or NULL
pTrMat transformation matrix or NULL
Returns:
final color of the point on success, NULL otherwise

Implements Shader.

Definition at line 5 of file RTShader.cc.

References Shader::_pReflectionModel, Shader::_pShape, and ReflectionModel::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

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 files:
Generated on Tue Nov 21 15:11:43 2006 for gra by  doxygen 1.4.6