#include <Renderer.h>
Collaboration diagram for Renderer:
Public Member Functions | |
Renderer (const std::string &filename) | |
~Renderer () | |
void | buildScene () |
void | buildScene (const std::string &sceneFile) |
void | render () |
void | renderAnimated () |
void | setupAnimation (std::string filename, unsigned int startframe=0, unsigned int endframe=FRAMES) |
int | setupSupersampling (int samples) |
void | physicsLoad (const std::string &file) |
void | physicsSave (const std::string &file) |
Private Member Functions | |
void | buildTestScene () |
Static Private Member Functions | |
static void * | renderFromTo (void *) |
Private Attributes | |
Camera * | mCamera |
the camera which will be rendered | |
bool | mSupersampled |
bool for supersampled | |
int | mSampleCount |
number of samples when supersampled | |
SampleGenerator * | mSampler |
the sampling class we use for supersampling | |
Scene | mScene |
the scene which we render | |
std::string | mFileName |
the file which we render to | |
CameraAnimator * | mCameraAnimator |
the camera animator | |
unsigned int | mStartFrame |
the start frame for the animation | |
unsigned int | mEndFrame |
the end frame for the animation | |
Classes | |
struct | ThreadArgs |
Definition at line 21 of file Renderer.h.
Renderer::Renderer | ( | const std::string & | filename | ) |
Constructor.
filename | File name to write rendered image |
Definition at line 34 of file Renderer.cpp.
Renderer::~Renderer | ( | ) |
void Renderer::buildScene | ( | ) |
Definition at line 55 of file Renderer.cpp.
References buildTestScene().
Referenced by buildTestScene(), and main().
void Renderer::buildScene | ( | const std::string & | sceneFile | ) |
Build a scene from scene file
Definition at line 356 of file Renderer.cpp.
References SceneBuilder::load(), mCamera, and mScene.
void Renderer::render | ( | ) |
Definition at line 60 of file Renderer.cpp.
References LOG, Renderer::ThreadArgs::mCamera, mCamera, mFileName, Renderer::ThreadArgs::mImage, mMutexImage, mSampleCount, Renderer::ThreadArgs::mSampleCount, mSampler, Renderer::ThreadArgs::mSampler, mScene, Renderer::ThreadArgs::mScene, Renderer::ThreadArgs::mStartY, Renderer::ThreadArgs::mStopY, mSupersampled, Renderer::ThreadArgs::mSupersampled, NUMBER_OF_THREADS, renderFromTo(), Camera::resX(), and Camera::resY().
Referenced by main(), and renderAnimated().
void Renderer::renderAnimated | ( | ) |
renders a scene animated using mCameraAnimator
Definition at line 237 of file Renderer.cpp.
References CameraAnimator::animate(), LOG, mCamera, mCameraAnimator, mEndFrame, mFileName, mScene, mStartFrame, render(), and Scene::step().
Referenced by main().
void Renderer::setupAnimation | ( | std::string | filename, | |
unsigned int | startframe = 0 , |
|||
unsigned int | endframe = FRAMES | |||
) |
setups the mCameraAnimator and start and endframe
Definition at line 368 of file Renderer.cpp.
References mCameraAnimator, mEndFrame, and mStartFrame.
Referenced by main().
int Renderer::setupSupersampling | ( | int | samples | ) |
Set up supersampling, StratifiedSampleGenerator is used for generating samples. Use samples <= 1 to disable it completely.
samples | Number of samples, is rounded down to a quadrat number (1, 4, 9, 16, ...) |
Definition at line 382 of file Renderer.cpp.
References mSampleCount, mSampler, and mSupersampled.
Referenced by buildTestScene(), and parse().
void Renderer::physicsLoad | ( | const std::string & | file | ) | [inline] |
Load physics from file
file | File name to load |
Definition at line 60 of file Renderer.h.
References mScene, and Scene::physicsLoad().
Referenced by parse().
void Renderer::physicsSave | ( | const std::string & | file | ) | [inline] |
Dump physics to file
file | File name to save to |
Definition at line 69 of file Renderer.h.
References mScene, and Scene::physicsDump().
Referenced by parse().
void * Renderer::renderFromTo | ( | void * | ) | [static, private] |
renders the image from ThreadArgs::mStartY to ThreadArgs::mStopY we need this for threads to work needs to be static for pthreads to work
Definition at line 147 of file Renderer.cpp.
References LOG, max(), Renderer::ThreadArgs::mCamera, Renderer::ThreadArgs::mImage, min(), mMutexImage, Renderer::ThreadArgs::mSampleCount, Renderer::ThreadArgs::mSampler, Renderer::ThreadArgs::mScene, Renderer::ThreadArgs::mStartY, Renderer::ThreadArgs::mStopY, Renderer::ThreadArgs::mSupersampled, Scene::rayTrace(), SampleGenerator::samples(), and Image::setPixel().
Referenced by render().
void Renderer::buildTestScene | ( | ) | [private] |
decides which scene to build
Definition at line 270 of file Renderer.cpp.
References buildScene(), and setupSupersampling().
Referenced by buildScene().
Camera* Renderer::mCamera [private] |
the camera which will be rendered
Definition at line 75 of file Renderer.h.
Referenced by buildScene(), render(), renderAnimated(), and ~Renderer().
bool Renderer::mSupersampled [private] |
bool for supersampled
Definition at line 76 of file Renderer.h.
Referenced by render(), and setupSupersampling().
int Renderer::mSampleCount [private] |
number of samples when supersampled
Definition at line 77 of file Renderer.h.
Referenced by render(), and setupSupersampling().
SampleGenerator* Renderer::mSampler [private] |
the sampling class we use for supersampling
Definition at line 78 of file Renderer.h.
Referenced by render(), setupSupersampling(), and ~Renderer().
Scene Renderer::mScene [private] |
the scene which we render
Definition at line 79 of file Renderer.h.
Referenced by buildScene(), physicsLoad(), physicsSave(), render(), and renderAnimated().
std::string Renderer::mFileName [private] |
the file which we render to
Definition at line 80 of file Renderer.h.
Referenced by render(), and renderAnimated().
CameraAnimator* Renderer::mCameraAnimator [private] |
the camera animator
Definition at line 81 of file Renderer.h.
Referenced by renderAnimated(), setupAnimation(), and ~Renderer().
unsigned int Renderer::mStartFrame [private] |
the start frame for the animation
Definition at line 82 of file Renderer.h.
Referenced by renderAnimated(), and setupAnimation().
unsigned int Renderer::mEndFrame [private] |
the end frame for the animation
Definition at line 83 of file Renderer.h.
Referenced by renderAnimated(), and setupAnimation().