RTRender Class Reference

#include <RTRender.h>

Inheritance diagram for RTRender:

Render GRAObject List of all members.

Public Types

enum  PixelRend {
  CENTROID, CORNERS, CENTROID_AND_CORNERS, RANDOM,
  STRATIFIED_SAMPLING
}
enum  FBWriteMode { PER_PIXEL, PER_LINE }

Public Member Functions

 RTRender (Intersector *i, int *setStopFlag, const Color3f &background=Color3f(.0,.0,.0), PixelRend pixelRend=CENTROID, unsigned raysPerPixel=1, FBWriteMode fbWriteMode=PER_LINE, unsigned fbWriteElements=1)
virtual void renderScene (Shader &shader, FrameBuffer &fb, Camera &camera, Scene &scene)

Protected Member Functions

void _render_pixel_point (RayIntExplorer &, SceneGraphObject &, Shader &, const Vector3 &, Vector3, Color3f &)
unsigned _render_pixel_centroid (RayIntExplorer &, SceneGraphObject &, Shader &, Camera &, const Vector3 &, unsigned, unsigned, unsigned, unsigned, Color3f &)
unsigned _render_pixel_corners (RayIntExplorer &, SceneGraphObject &, Shader &, Camera &, const Vector3d &, const Vector3d &, const Vector3d &, unsigned, unsigned, unsigned, unsigned, Color3f *, Color3f &, Color3f &)
unsigned _render_pixel_randomly (RayIntExplorer &, SceneGraphObject &, Shader &, Camera &, const Vector3 &, unsigned, unsigned, unsigned, unsigned, Color3f &)
unsigned _render_pixel_stratified (RayIntExplorer &, SceneGraphObject &, Shader &, Camera &, const Vector3d &, const Vector3d &, const Vector3d &, double, double, Color3f &)
virtual void _render (Shader &shader, FrameBuffer &fb, Camera &camera, Scene &scene)

Protected Attributes

Intersector * _pIntersector
Color3f _background
PixelRend _pixelRendering
unsigned _raysPerPixel
FBWriteMode _fbWriteMode
unsigned _fbWriteElements
int * _pStopFlag

Detailed Description

Render for ray-tracing. It casts primary rays, one or more per pixel. Point of impact is then illuminated by shader.

Definition at line 23 of file RTRender.h.


Member Enumeration Documentation

enum FBWriteMode
 

Enumerator:
PER_PIXEL  send colorized pixels to the frame buffer pixel by pixel
PER_LINE  send colorized pixels to the frame buffer per line

Definition at line 33 of file RTRender.h.

enum PixelRend
 

Enumerator:
CENTROID  single ray casted through center of pixel area
CORNERS  four rays casted through corners and interpolated
CENTROID_AND_CORNERS  four rays in corners and one ray in the center of pixel area
RANDOM  random rays casted through pixel area and then interp.
STRATIFIED_SAMPLING  random rays through sub-pixels

Definition at line 25 of file RTRender.h.


Constructor & Destructor Documentation

RTRender Intersector *  i,
int *  setStopFlag,
const Color3f &  background = Color3f(.0,.0,.0),
PixelRend  pixelRend = CENTROID,
unsigned  raysPerPixel = 1,
FBWriteMode  fbWriteMode = PER_LINE,
unsigned  fbWriteElements = 1
[inline]
 

Parameters:
i intersector which computes the closest intersection point
setStopGlag pointer to flag allowing to stop the rendering from outside
background background color of scene
pixelRend pixel rendering
p number of rays casted per pixel
fbWriteMode startegy of frame-buffer updates: per-pixel, per-line
fbWriteElements number of elements (pixels, lines, etc.) written at once

Definition at line 123 of file RTRender.h.


Member Function Documentation

void _render Shader shader,
FrameBuffer fb,
Camera camera,
Scene scene
[protected, virtual]
 

Parameters:
shader shader
fb frame-buffer
camera camera
scene rendered scene

Implements Render.

Definition at line 244 of file RTRender.cc.

References RTRender::_fbWriteElements, RTRender::_fbWriteMode, RTRender::_pIntersector, RTRender::_pixelRendering, Render::_pStopFlag, RTRender::_render_pixel_centroid(), RTRender::_render_pixel_corners(), RTRender::_render_pixel_randomly(), RTRender::_render_pixel_stratified(), RTRender::CENTROID, RTRender::CENTROID_AND_CORNERS, RTRender::CORNERS, FrameBuffer::getHeight(), Camera::getPixelSize(), Camera::getProjectionPlane(), FrameBuffer::getWidth(), RTRender::PER_LINE, RTRender::PER_PIXEL, RTRender::RANDOM, Scene::root(), FrameBuffer::setColor(), and RTRender::STRATIFIED_SAMPLING.

unsigned _render_pixel_centroid RayIntExplorer &  ,
SceneGraphObject &  ,
Shader ,
Camera ,
const Vector3 &  ,
unsigned  ,
unsigned  ,
unsigned  ,
unsigned  ,
Color3f & 
[protected]
 

Definition at line 80 of file RTRender.cc.

References RTRender::_render_pixel_point(), Camera::getProjectionDirection(), Camera::mapPixelToProjPlane(), and Camera::PS_CENTROID.

Referenced by RTRender::_render().

unsigned _render_pixel_corners RayIntExplorer &  ,
SceneGraphObject &  ,
Shader ,
Camera ,
const Vector3d &  ,
const Vector3d &  ,
const Vector3d &  ,
unsigned  ,
unsigned  ,
unsigned  ,
unsigned  ,
Color3f *  ,
Color3f &  ,
Color3f & 
[protected]
 

Definition at line 98 of file RTRender.cc.

References RTRender::_render_pixel_point(), Camera::getProjectionDirection(), Camera::mapPixelToProjPlane(), Camera::PS_LOWER_LEFT_CORNER, Camera::PS_LOWER_RIGHT_CORNER, Camera::PS_UPPER_LEFT_CORNER, and Camera::PS_UPPER_RIGHT_CORNER.

Referenced by RTRender::_render().

void _render_pixel_point RayIntExplorer &  ,
SceneGraphObject &  ,
Shader ,
const Vector3 &  ,
Vector3  ,
Color3f & 
[protected]
 

Definition at line 9 of file RTRender.cc.

References RTRender::_background, RTRender::_pIntersector, Shader::illuminatePoint(), and Shader::setRenderedShape().

Referenced by RTRender::_render_pixel_centroid(), RTRender::_render_pixel_corners(), RTRender::_render_pixel_randomly(), and RTRender::_render_pixel_stratified().

unsigned _render_pixel_randomly RayIntExplorer &  ,
SceneGraphObject &  ,
Shader ,
Camera ,
const Vector3 &  ,
unsigned  ,
unsigned  ,
unsigned  ,
unsigned  ,
Color3f & 
[protected]
 

Definition at line 184 of file RTRender.cc.

References RTRender::_render_pixel_point(), Camera::getProjectionDirection(), Camera::mapPixelToProjPlane(), and Camera::PS_RANDOM.

Referenced by RTRender::_render().

unsigned _render_pixel_stratified RayIntExplorer &  ,
SceneGraphObject &  ,
Shader ,
Camera ,
const Vector3d &  ,
const Vector3d &  ,
const Vector3d &  ,
double  ,
double  ,
Color3f & 
[protected]
 

Definition at line 202 of file RTRender.cc.

References RTRender::_raysPerPixel, RTRender::_render_pixel_point(), Camera::getProjectionDirection(), and Camera::project().

Referenced by RTRender::_render().

virtual void renderScene Shader shader,
FrameBuffer fb,
Camera camera,
Scene scene
[inline, virtual, inherited]
 

To re-implement the rendering method in derived classes use protected function _render() unless you know what you do.

Parameters:
shader shader
fb frame-buffer
camera camera
scene rendered scene

Definition at line 66 of file Render.h.

References Scene::root().

Referenced by GLIrradCacheRender::_render().


Member Data Documentation

Color3f _background [protected]
 

Definition at line 40 of file RTRender.h.

Referenced by RTRender::_render_pixel_point().

unsigned _fbWriteElements [protected]
 

Definition at line 44 of file RTRender.h.

Referenced by RTRender::_render().

FBWriteMode _fbWriteMode [protected]
 

Definition at line 43 of file RTRender.h.

Referenced by RTRender::_render().

Intersector* _pIntersector [protected]
 

Definition at line 39 of file RTRender.h.

Referenced by RTRender::_render(), and RTRender::_render_pixel_point().

PixelRend _pixelRendering [protected]
 

Definition at line 41 of file RTRender.h.

Referenced by RTRender::_render().

int* _pStopFlag [protected, inherited]
 

Definition at line 27 of file Render.h.

Referenced by RTRender::_render().

unsigned _raysPerPixel [protected]
 

Definition at line 42 of file RTRender.h.

Referenced by RTRender::_render_pixel_stratified().


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