GClasses
|
Represents a scene that you can ray-trace. More...
#include <GRayTrace.h>
Public Types | |
enum | RenderMode { FAST_RAY_TRACE, QUALITY_RAY_TRACE, PATH_TRACE } |
Public Member Functions | |
GRayTraceScene (GRand *pRand) | |
GRayTraceScene (GDomNode *pNode, GRand *pRand) | |
~GRayTraceScene () | |
GDomNode * | serialize (GDom *pDoc) |
Marshal this object into a DOM, which can then be converted to a variety of serial formats. | |
void | flushObjects () |
Deletes all the materials and objects. (Leaves the lights and camera as they are.) | |
void | swapObjects (GRayTraceScene *pOther) |
Swap all matrials, meshes and objects with the other scene. (Leaves the camera and lights as they are.) | |
void | setRenderMode (RenderMode eMode) |
Specify whether to emphasize quality or speed. | |
void | render () |
This method calls RenderBegin, then calls RenderLine until the whole image has been rendered. | |
void | renderBegin () |
Call this before calling RenderLine(). It resets the image and computes values necessary for rendering. | |
bool | renderLine () |
Call this to render a singe horizontal line of the image. Returns true if there's still more rendering to do. Returns false if it's done. You must call RenderBegin() once before you start calling this method. | |
void | drawWireFrame () |
This draws a wire frame of the scene. This is a fast way to ensure your camera is looking where you think it is looking before you perform a long render. | |
unsigned int | renderSinglePixel (int x, int y) |
This calls RenderBegine and then renders a single pixel. It's not efficient to call this method for every pixel. The only purpose for this method is to make debugging the ray tracer easier. Pick a pixel that isn't rendered the way you want and step through the ray tracing process to see why. | |
GImage * | image () |
Returns the rendered image (or partially rendered image). Returns NULL if Render() or RenderBegin() has not been called yet. | |
GImage * | releaseImage () |
void | setBackgroundColor (G3DReal a, G3DReal r, G3DReal g, G3DReal b) |
void | setAmbientLight (G3DReal r, G3DReal g, G3DReal b) |
GRayTraceColor * | ambientLight () |
GRayTraceCamera * | camera () |
GRand * | rand () |
void | activateDistanceMap () |
G3DReal * | distanceMap () |
void | addMaterial (GRayTraceMaterial *pMaterial) |
void | addMesh (GRayTraceTriMesh *pMesh) |
void | addObject (GRayTraceObject *pObject) |
void | addLight (GRayTraceLight *pLight) |
size_t | materialCount () |
size_t | meshCount () |
size_t | objectCount () |
size_t | lightCount () |
GRayTraceMaterial * | material (size_t n) |
GRayTraceTriMesh * | mesh (size_t n) |
GRayTraceObject * | object (size_t n) |
GRayTraceLight * | light (size_t n) |
std::vector< GRayTraceMaterial * > & | materials () |
GRayTraceColor * | backgroundColor () |
GRayTraceBoundingBoxBase * | boundingBoxTree () |
void | setToneMappingConstant (G3DReal c) |
size_t | materialIndex (GRayTraceMaterial *pMaterial) |
size_t | meshIndex (GRayTraceTriMesh *pMesh) |
size_t | objectIndex (GRayTraceObject *pObj) |
unsigned int | renderPixel (GRayTraceRay *pRay, G3DVector *pScreenPoint, G3DReal *pDistance) |
unsigned int | renderPixelAntiAliassed (GRayTraceRay *pRay, G3DVector *pScreenPoint, G3DReal *pDistance) |
unsigned int | renderPixelPathTrace (GRayTraceRay *pRay, G3DVector *pScreenPoint) |
Protected Attributes | |
GRayTraceColor | m_backgroundColor |
GRayTraceColor | m_ambientLight |
std::vector< GRayTraceMaterial * > | m_materials |
std::vector< GRayTraceTriMesh * > | m_meshes |
std::vector< GRayTraceObject * > | m_objects |
std::vector< GRayTraceLight * > | m_lights |
GRayTraceCamera * | m_pCamera |
GRayTraceBoundingBoxBase * | m_pBoundingBoxTree |
G3DReal | m_toneMappingConstant |
RenderMode | m_eMode |
Rendering values. | |
GImage * | m_pImage |
G3DReal * | m_pDistanceMap |
int | m_nY |
G3DVector | m_pixSide |
G3DVector | m_pixDX |
G3DVector | m_pixDY |
GRand * | m_pRand |
Represents a scene that you can ray-trace.
GClasses::GRayTraceScene::GRayTraceScene | ( | GRand * | pRand | ) |
GClasses::GRayTraceScene::~GRayTraceScene | ( | ) |
void GClasses::GRayTraceScene::activateDistanceMap | ( | ) |
void GClasses::GRayTraceScene::addLight | ( | GRayTraceLight * | pLight | ) |
void GClasses::GRayTraceScene::addMaterial | ( | GRayTraceMaterial * | pMaterial | ) |
void GClasses::GRayTraceScene::addMesh | ( | GRayTraceTriMesh * | pMesh | ) |
void GClasses::GRayTraceScene::addObject | ( | GRayTraceObject * | pObject | ) |
GRayTraceColor* GClasses::GRayTraceScene::ambientLight | ( | ) | [inline] |
GRayTraceColor* GClasses::GRayTraceScene::backgroundColor | ( | ) | [inline] |
GRayTraceBoundingBoxBase* GClasses::GRayTraceScene::boundingBoxTree | ( | ) | [inline] |
GRayTraceCamera* GClasses::GRayTraceScene::camera | ( | ) | [inline] |
G3DReal* GClasses::GRayTraceScene::distanceMap | ( | ) | [inline] |
void GClasses::GRayTraceScene::drawWireFrame | ( | ) |
This draws a wire frame of the scene. This is a fast way to ensure your camera is looking where you think it is looking before you perform a long render.
void GClasses::GRayTraceScene::flushObjects | ( | ) |
Deletes all the materials and objects. (Leaves the lights and camera as they are.)
GImage* GClasses::GRayTraceScene::image | ( | ) | [inline] |
Returns the rendered image (or partially rendered image). Returns NULL if Render() or RenderBegin() has not been called yet.
GRayTraceLight* GClasses::GRayTraceScene::light | ( | size_t | n | ) |
size_t GClasses::GRayTraceScene::lightCount | ( | ) |
GRayTraceMaterial* GClasses::GRayTraceScene::material | ( | size_t | n | ) |
size_t GClasses::GRayTraceScene::materialCount | ( | ) |
size_t GClasses::GRayTraceScene::materialIndex | ( | GRayTraceMaterial * | pMaterial | ) |
std::vector<GRayTraceMaterial*>& GClasses::GRayTraceScene::materials | ( | ) | [inline] |
GRayTraceTriMesh* GClasses::GRayTraceScene::mesh | ( | size_t | n | ) |
size_t GClasses::GRayTraceScene::meshCount | ( | ) |
size_t GClasses::GRayTraceScene::meshIndex | ( | GRayTraceTriMesh * | pMesh | ) |
GRayTraceObject* GClasses::GRayTraceScene::object | ( | size_t | n | ) |
size_t GClasses::GRayTraceScene::objectCount | ( | ) |
size_t GClasses::GRayTraceScene::objectIndex | ( | GRayTraceObject * | pObj | ) |
GRand* GClasses::GRayTraceScene::rand | ( | ) | [inline] |
GImage* GClasses::GRayTraceScene::releaseImage | ( | ) | [inline] |
void GClasses::GRayTraceScene::render | ( | ) |
This method calls RenderBegin, then calls RenderLine until the whole image has been rendered.
void GClasses::GRayTraceScene::renderBegin | ( | ) |
Call this before calling RenderLine(). It resets the image and computes values necessary for rendering.
bool GClasses::GRayTraceScene::renderLine | ( | ) |
Call this to render a singe horizontal line of the image. Returns true if there's still more rendering to do. Returns false if it's done. You must call RenderBegin() once before you start calling this method.
unsigned int GClasses::GRayTraceScene::renderPixel | ( | GRayTraceRay * | pRay, |
G3DVector * | pScreenPoint, | ||
G3DReal * | pDistance | ||
) |
unsigned int GClasses::GRayTraceScene::renderPixelAntiAliassed | ( | GRayTraceRay * | pRay, |
G3DVector * | pScreenPoint, | ||
G3DReal * | pDistance | ||
) |
unsigned int GClasses::GRayTraceScene::renderPixelPathTrace | ( | GRayTraceRay * | pRay, |
G3DVector * | pScreenPoint | ||
) |
unsigned int GClasses::GRayTraceScene::renderSinglePixel | ( | int | x, |
int | y | ||
) |
This calls RenderBegine and then renders a single pixel. It's not efficient to call this method for every pixel. The only purpose for this method is to make debugging the ray tracer easier. Pick a pixel that isn't rendered the way you want and step through the ray tracing process to see why.
Marshal this object into a DOM, which can then be converted to a variety of serial formats.
void GClasses::GRayTraceScene::setBackgroundColor | ( | G3DReal | a, |
G3DReal | r, | ||
G3DReal | g, | ||
G3DReal | b | ||
) | [inline] |
void GClasses::GRayTraceScene::setRenderMode | ( | RenderMode | eMode | ) | [inline] |
Specify whether to emphasize quality or speed.
void GClasses::GRayTraceScene::setToneMappingConstant | ( | G3DReal | c | ) | [inline] |
void GClasses::GRayTraceScene::swapObjects | ( | GRayTraceScene * | pOther | ) |
Swap all matrials, meshes and objects with the other scene. (Leaves the camera and lights as they are.)
RenderMode GClasses::GRayTraceScene::m_eMode [protected] |
Rendering values.
std::vector<GRayTraceLight*> GClasses::GRayTraceScene::m_lights [protected] |
std::vector<GRayTraceMaterial*> GClasses::GRayTraceScene::m_materials [protected] |
std::vector<GRayTraceTriMesh*> GClasses::GRayTraceScene::m_meshes [protected] |
int GClasses::GRayTraceScene::m_nY [protected] |
std::vector<GRayTraceObject*> GClasses::GRayTraceScene::m_objects [protected] |
GRayTraceCamera* GClasses::GRayTraceScene::m_pCamera [protected] |
G3DReal* GClasses::GRayTraceScene::m_pDistanceMap [protected] |
GImage* GClasses::GRayTraceScene::m_pImage [protected] |
G3DVector GClasses::GRayTraceScene::m_pixDX [protected] |
G3DVector GClasses::GRayTraceScene::m_pixDY [protected] |
G3DVector GClasses::GRayTraceScene::m_pixSide [protected] |
GRand* GClasses::GRayTraceScene::m_pRand [protected] |