Classes | |
class | AABB |
Class representing an axis-aligned bounding box (AABB). More... | |
class | Camera |
Class representing a simple perspective camera. More... | |
class | Checker |
Class representing a simple checkerboard material. More... | |
class | Color |
Class representing an RGB color value. More... | |
class | Diffuse |
Simple diffuse (Lambertian) material. More... | |
class | Dummy |
This class represents a dummy node that contains just a transform matrix and no other data. More... | |
class | Image |
Class representing an image of size width x height pixels. More... | |
class | Intersectable |
Interface that needs to be implemented by all intersectable primitives (Plane, Sphere, Triangle). More... | |
class | Intersection |
Class representing a ray/object intersection point. More... | |
class | KDTree |
Class representing a kD-tree acceleration structure for fast ray intersections. More... | |
class | Light |
Base class for classes representing light sources (PointLight). More... | |
class | LightProbe |
Class representing a light probe (environment map). More... | |
class | Material |
Base class for classes representing materials (Diffuse, Phong, Checker). More... | |
class | Matrix |
Class representing a 4x4 transformation matrix. More... | |
class | Vector |
Class representing a 3D vector. More... | |
class | Point |
Class representing a 3D point. More... | |
class | UV |
Class representing a texture coordinate (u,v) pair. More... | |
class | MemPool |
Class implementing a memory pool for fast allocation of objects. More... | |
class | Mesh |
Class representing a triangle mesh. More... | |
class | Node |
Base class for all scene hierarchy nodes (cameras, lights, primitives, etc). More... | |
class | PathTracer |
Class implementing a simple path tracer. More... | |
class | Phong |
Class representing a simple phong material. More... | |
class | Plane |
Class representing a simple rectangular plane. More... | |
class | PointLight |
Class representing a simple point light source. More... | |
class | Primitive |
Base class for classes representing geometry (Mesh, Sphere, Plane). More... | |
class | Ray |
Class representing a ray in 3D space. More... | |
class | Raytracer |
Base class for raytracers, containinng basic functionality needed for implementing various raytracing algorithms (Whitted, Pathtracing). More... | |
class | Scene |
Class representing all scene data. More... | |
class | Sphere |
Class representing a sphere. More... | |
class | Timer |
Class representing a simple timer. More... | |
class | Triangle |
Class representing a single triangle. More... | |
class | WhittedTracer |
Class implementing a simple Whitted-style raytracer. More... | |
Functions | |
Color | operator * (float s, const Color &c) |
Component-wise multiplication with scalar (mixed-mode). | |
std::ostream & | operator<< (std::ostream &os, const Color &c) |
Write color values to an output stream in text format. | |
static float | uniform () |
Returns a uniform random number in the range [0,1). | |
static std::string | int2str (int i) |
Helper function for converting an int to a string. | |
static void | swap (float &a, float &b) |
Swaps two floats. | |
template<class T> | |
T | max (T a, T b) |
Returns the maximum of the two elements. | |
template<class T> | |
T | min (T a, T b) |
Returns the minimum of the two elements. | |
std::ostream & | operator<< (std::ostream &os, const Matrix &A) |
Write matrix elements to an output stream. | |
std::ostream & | operator<< (std::ostream &os, const Vector &A) |
Write elements to an output stream. | |
std::ostream & | operator<< (std::ostream &os, const Point &A) |
Write elements to an output stream. | |
Variables | |
static float | INF = std::numeric_limits<float>::infinity() |
Define positive infinity for floats. | |
static const float | epsilon = 1e-6 |
Small value. | |
static Diffuse | DEFAULT_MATERIAL = Diffuse(Color(0.7f,0.7f,0.7f)) |
Default material is a gray diffuse material. | |
static const char | EXR_OUTPUT_COMMENT [] = "ASR Raytracer" |
This string is stored as a comment in exr files written by this class. | |
static const float | EMPTY_BONUS = 0.1f |
Nodes in the tree which are completely empty are assigned a bonus between 0 and 1 during tree construction as they will speed up traversal by cutting of empty portions of the scene. | |
static const float | INTERSECTION_COST = 80.0f |
The cost of performing a ray/object intersection. | |
static const float | TRAVERSAL_COST = 1.0f |
The cost of traversing into a node in the tree. | |
const float | overlap = 1e-3 |
Triangle overlap distance to avoid problems at edges. |