File List

Here is a list of all files with brief descriptions:
AABB.cpp [code]
AABB.h [code]
AABB.inl [code]
AbsorbentBSDF.cpp [code]Ideal, cool, black-body absorbent material (absorbs all incoming light)
AbsorbentBSDF.h [code]
accel.h [code]Convenience header which includes all public acceleration headers
AggregateBSDF.cpp [code]Linear combination of different BSDF implementations, where the coefficients are determined either a priori (inherent property described in scenefile) or via a texture map lookup
AggregateBSDF.h [code]
algebra.h [code]Convenience header which includes all headers in the linear algebra package (Matrix.h, Vector.h, and Point.h)
arch.h [code]Contains architechure-specific definitions
ArgsParser.cpp [code]
ArgsParser.h [code]
BidirectionalPathTracer.cpp [code]
BidirectionalPathTracer.h [code]
Blob.cpp [code]Blobby isosurface composed of a set of MetaObjects, all of which combine to form a scalar field whose contour at this blob's threshold value defines the surface. Upon initialization (Blob::init), the implicit surface is polygonized into triangles using a variant of the well-known Marching Cubes algorithm
Blob.h [code]
BoxFilter.cpp [code]2D symmetric box filter (unweighted area filtering)
BoxFilter.h [code]
BSDF.cpp [code]
BSDF.h [code]Abstract representation of a BSDF defined at a single point on a surface in 3-space
Camera.cpp [code]Abstract camera that all Milton cameras subclass, representing a mapping from film-space to world-space and vice-versa. Cameras may optionally also specify an OpenGL preview projection matrix that can be used by OpenGLRenderer. Film-space is represented by (slightly modified) Normalized Device Coordinates (NDC), which are unit film-plane coordinates, with (x,y) both ranging inbetween 0 and 1. NDC lie in the unit square [0,1]^2, where [0,0] gets mapped to the upper left corner of the corresponding Viewport/Image, and [1,1] is the lower right corner. NDC film-space allows for mapping rendering results onto an arbitrarily-sized Viewport/Image
Camera.h [code]
cameras.h [code]Convenience header which includes all public camera headers
Canvas.cpp [code]
Canvas.h [code]
ColorUtils.cpp [code]
ColorUtils.h [code]
common.h [code]Contains includes and definitions used throughout this project
Cone.cpp [code]Representation of a vertical 3D cone enclosed in the unit box (-.5,-.5,-.5) to (.5,.5,.5) -- the tip is at (0,.5,0)
Cone.h [code]
ContUniformSampler.cpp [code]Represents a continuous uniform distribution X ~ U(min, max) f(x) = 1 / (max - min)
ContUniformSampler.h [code]
core.h [code]Convenience header which includes all core public milton headers
Cube.cpp [code]Representation of a unit cube in 3-space from (-.5,-.5,-.5) to (.5,.5,.5)
Cube.h [code]
Cylinder.cpp [code]Representation of a vertical 3D cylinder enclosed in the unit box (-.5,-.5,-.5) to (.5,.5,.5)
Cylinder.h [code]
DefaultRenderOutput.cpp [code]Records point samples from a renderer and reconstructs the underlying image, using a default reconstruction reconstruction filter
DefaultRenderOutput.h [code]
DielectricBSDF.cpp [code]Wavelength-dependent, thin dielectric BSDF defined at a single point on a surface in 3-space. The opacity input controls the transmittance versus reflectance of different wavelengths. A pure specular mirror may be obtained by creating a dielectric BSDF with zero opacity. Conversely, a purely transparent surface may be obtained by creating a dielectric with full opacity. Note that a completely transparent surface will still reflect some light (in proportion to Fresnel's Laws) because refraction is undefined past a critical angle when light is traveling between a lighter and denser medium. When this happens, some light is reflected regardless of the opacity parameter, and this is typically known as total internal reflection
DielectricBSDF.h [code]
DiffuseBSDF.cpp [code]Ideal diffuse BSDF (lambertian) defined at a single point on a surface in 3-space
DiffuseBSDF.h [code]
DirectIllumination.cpp [code]Interface for estimating direct illumination from all luminaires in a scene to a given surface point on a surface
DirectIllumination.h [code]
DiscreteUniformSampler.cpp [code]Represents a discrete uniform distribution X ~ U(min, max) p(x) = 1 / (max - min)
DiscreteUniformSampler.h [code]
DissolveSampleGenerator.cpp [code]
DissolveSampleGenerator.h [code]Cool dissolve effect which generates point samples uniformly over a given 2D domain. The order in which the samples are generated looks random, but it is actually quite deterministic and guaranteed to "visit" every bucket in the domain
dynamic.h [code]Convenience header which includes all public dynamic plugin headers
DynamicPlugin.h [code]
Emitter.cpp [code]
Emitter.h [code]Abstract representation of emittance defined at a single point on a surface in 3-space (describing a light)
EmitterSampler.cpp [code]Sampler which selects a point on an emitter (light source) in the scene with probability proportional to radiant exitance
EmitterSampler.h [code]
EnvironmentMap.cpp [code]Environment map using latitude-longitude format. An environment map roughly models distant illumination surrounding a scene by conceptually surrounding the scene with a spherical emitter that emits light inwards according to a distribution defined by a 2D 'environment' texture map that is projected onto the surface of the sphere. Note the term HDR environment map is thrown around a lot; the only difference is that the underlying environment texture is stored in some type of high dynamic range format, such as OpenEXR or HDR
EnvironmentMap.h [code]
Event.cpp [code]Represents a single event which was sampled from a Sampler. The internal value of this event is stored in a variant using boost::any, where the concrete value of type T can be extracted using Event<T>::getValue()
Event.h [code]
ExponentialSampler.cpp [code]Represents an exponential distribution: X ~ Exp(lambda) ; lambda > 0 f(x) = lambda * exp(-lambda * x) ; x >= 0 E(X) = 1 / lambda Var(X) = 1 / (lambda ^ 2)
ExponentialSampler.h [code]
exrinput.cpp [code]
exrinput.h [code]
FileRenderOutput.cpp [code]Records point samples from a renderer and naively reconstructs the underlying image by storing samples into the bin/pixel which they fall into, overwriting previous samples, and not using any reconstruction filter. Writes results out to the given file in a custom format upon completion of rendering
FileRenderOutput.h [code]
Filter.cpp [code]Templated representation of an N-dimensional filter function in T^N
Filter.h [code]
filters.h [code]Convenience header which includes all Filter implementations
Fresnel.h [code]
GaussianFilter.cpp [code]2D discrete, symmetric gaussian filter (separable like most of the other filters, but we're not taking advantage of this to make the filter framework cleaner and more cohesive), centered at the origin
GaussianFilter.h [code]
generators.h [code]Convenience header which includes all SampleGenerator implementations
GLState.cpp [code]Utility wrapper classes for accessing and synchronizing OpenGL state in a cleaner, more object-oriented manner, grouping similar state items with each other
GLState.h [code]
Gui.cpp [code]
Gui.h [code]
HDRImage.cpp [code]HDR image class supporting a 128- or 256-bit RgbaHDR pixel format
HDRImage.h [code]
HDRImage.inl [code]HDR image class supporting a 128- or 256-bit RgbaHDR pixel format
HDRUtils.cpp [code]
HDRUtils.h [code]
HilbertSampleGenerator.cpp [code]Recursive space-filling L-System represented graphically
HilbertSampleGenerator.h [code]
IFeatures.cpp [code]Utility base class for managing large amounts of (possibly) optional functionality in a clean and consistent manner. The template type 'Feature' needs to support bitwise computations
IFeatures.h [code]
Image.cpp [code]Abstract image class supporting a standard 32-bit Rgba pixel format, as well as an extended, 128- or 256-bit floating-point RgbaHDR pixel format for high dynamic range images
image.h [code]Convenience header which includes all public milton image headers
Image.h [code]
Image.inl [code]Abstract image class supporting a standard 32-bit Rgba pixel format, as well as an extended, 128- or 256-bit floating-point RgbaHDR pixel format for high dynamic range images
ImageCanvas.cpp [code]
ImageCanvas.h [code]
Implicit.cpp [code]Abstract representation of an implicit shape in 3-space
Implicit.h [code]
IndexOfRefraction.cpp [code]Catalog of various common indices of refraction
IndexOfRefraction.h [code]
InstancedShape.cpp [code]Acts as a proxy for a shape which has been instanced
InstancedShape.h [code]
Intersectable.cpp [code]Interface for an intersectable object in 3-space, with some extra functionality specific to accelerating spatial intersection queries
Intersectable.h [code]
IPathGenerator.h [code]
JitteredSampleGenerator.cpp [code]Jittered point sample generation over a given 2D domain where M*N samples are generated randomly within M*N uniformly-spaced subdomains
JitteredSampleGenerator.h [code]
JointContUniformSampler.cpp [code]Represents a uniform distribution on [min,max)^N ; N > 0, which could be used, for example, for choosing a random UV coordinate (e.g, where N = 2, min = 0, max = 1)
JointContUniformSampler.h [code]
JointEvent.cpp [code]Represents a single event which was sampled from a JointSampler. The internal value of this event is stored in a variant using boost::any, where the concrete value of type T can be extracted using Event<T>::getValue()
JointEvent.h [code]
JointSampler.cpp [code]Represents an abstract joint random variable that can be sampled according to several discrete/continuous probability distribution(s)
JointSampler.h [code]
kdTreeAccel.cpp [code]An N-dimensional kd-Tree is an axis-aligned binary spatial partitioning data structure. Each internal node is split along one of the N principle axes, where the split plane is typically chosen at each node based on some sort of heuristic. This kd-Tree implementation supports several common split plane generation methods, namely: spatial midpoint, median of geometry, and surface area heuristic (SAH). Note that a kd-Tree constructed by choosing the spatial midpoint along the current split axis as the next split plane is equivalent to an Octree. Also note that though the SAH produces the best quality tree overall with respect to visibility tests, it can take a long time to build and is thus mainly suitable for static scenes (whereas other acceleration data structures may be more appropriate for dynamic geometry & animations). The SAH kd-Tree may be tweaked with several parameters. See kdTreeAccelParams for more info. The O(nlog n) SAH construction has been implemented as opposed to the O(n) or O(n^2) alternatives (using std::sort for internal sorting). This choice was made because the O(n) solutions which exist both have large constants (which diminish their utility in practice), and are nowhere near as readable or easy to understand as the relatively straightforward O(nlog n) alternative
kdTreeAccel.h [code]
KernelFilter.cpp [code]2D discrete, symmetric filter which can be compactly / efficiently stored / applied using a 2D kernel (array)
KernelFilter.h [code]
LanczosSincFilter.cpp [code]2D symmetric Lanczos filter whose aim is to approximate a truncated sinc (the ideal reconstruction filter) while minimizing the amount of visible ringing resulting from the truncation
LanczosSincFilter.h [code]
loaders.h [code]Convenience header which includes all public loader headers
Log.cpp [code]
Log.h [code]
Log.inl [code]Unified logging functionality for Milton debugging output
LSystem.cpp [code]Models a Lindenmayer System, which may be used to simulate a varient of effects in Nature, such as plant growth and fractals
LSystem.h [code]
main.cpp [code]
MarchingCubes.cpp [code]Marching Cubes is a well-known algorithm for generating a polygonal approximation to an isosurface defined over a scalar field. This class is a fairly standard implementation of Marching Cubes in 3D that generates triangular meshes as output
MarchingCubes.h [code]
MarchingCubesData.inl [code]
Material.cpp [code]Abstract representation of a surface Material, defined without respect to the underlying surface (loose coupling between Shapes and Materials from the point-of-view of a Material, but all Shapes know about their surface Material). Materials subclass PropertyMap, and it is through this interface that Material properties may be set (ex: diffuse color, texture/bump/color map(s), index of refraction of interior volume, etc.)
Material.h [code]
materials.h [code]Convenience header which includes all public Material headers, including BSDFs, Emitters, and Sensors
Matrix.cpp [code]Provides basic functionality for a templated, arbitrarily-sized matrix
Matrix.h [code]
Matrix.inl [code]Provides basic functionality for a templated, arbitrarily-sized matrix
Mesh.cpp [code]Representation of a triangular mesh stored in the obj format. It consists of a list of vertices's and a list of faces that contain indices in the vertex list
Mesh.h [code]
MeshLoader.cpp [code]Static class which loads mesh data from external files in either OBJ or PLY formats (file extensions '.obj' and '.ply' respectively)
MeshLoader.h [code]
MeshLoaderOBJ.cpp [code]
MeshLoaderOBJ.h [code]Loads OBJ meshes from an external source ('.obj' file extension). Wrapper around obj-parser-0.1
MeshLoaderPLY.cpp [code]Loads PLY meshes from an external source ('.ply' file extension). Wrapper around ply-parser-0.1
MeshLoaderPLY.h [code]
MeshTriangle.cpp [code]Basic representation of a MeshTriangle with optional UV coordinates
MeshTriangle.h [code]
MetaBall.cpp [code]A MetaObject exerts a positive or negative 'charge' in a scalar field, whose isocontours (level sets) define blobby surfaces with different threshold values corresponding to the contour level. MetaObjects positively or negatively affect their neighboring MetaObjects depending on their 'strength' and 'negative' attributes. A MetaBall exerts a non-zero charge (aka influence) over a spherical region emanating from a single point, 'position', out to a maximum distance of 'radius'
MetaBall.h [code]
MetaObject.cpp [code]A MetaObject exerts a positive or negative 'charge' in a scalar field, whose isocontours (level sets) define blobby surfaces with different threshold values corresponding to the contour level. MetaObjects positively or negatively affect their neighboring MetaObjects depending on their 'strength' and 'negative' attributes. 'strength' defines the initial charge of the object, and 'negative' is a boolean which defaults to false, denoting whether or not this MetaObject has a positive or a negative impact on surrounding MetaObjects. MetaObject is an abstract class, and specific implementations define how its initial charge dissipates throughout the field
MetaObject.h [code]
milton.h [code]Convenience header which includes all public headers used throughout the Milton library
MiltonApp.cpp [code]Main entrypoint for Qt-based frontend which comes bundled with Milton (including a non-graphical 'nox' mode for remote / batch rendering)
MiltonApp.h [code]
MiltonJSONSceneLoader.cpp [code]Scene loader for Milton JSON scene format
MiltonJSONSceneLoader.h [code]
MiltonParams.h [code]
MitchellFilter.cpp [code]2D symmetric Mitchell filter which is parameterized to tradeoff between 'ringing' and 'blurring' that other filters tend towards in difficult reconstruction cases
MitchellFilter.h [code]
ModifiedPhongBSDF.cpp [code]Physically-correct modified phong model for glossy/specular surfaces, defined at a single point on a surface in 3-space. The modified phong model has two inputs: Kd, and Ks in [0, 1] subject to Kd + Ks <= 1, where Kd and Ks represent the diffuse and specular reflectivity of the surface respectively (fraction of incoming energy that is reflected diffusely/specularly). A third input, n, represents the specular shininess of the surface, where higher values of n correspond to tighter / sharper specular highlights, and lower values of n correspond to wider / glossier highlights
ModifiedPhongBSDF.h [code]
MultipleImportanceSampler.cpp [code]"Optimally" combines samples taken from multiple sampling distributions with respect to a function, 'f', whose value we are trying to integate over a given domain,'D'. D is assumed to be the union of the domains of the individual underlying distributions. The goal of importance sampling is to reduce variance while approximating the integral of f over D by drawing random samples across D according to some probability density function p which is proportional to f. By drawing more samples from the regions where f is large (concentrating our sampling effort on the "important" regions of the domain), and similarly drawing less samples from the regions where f is small (focusing less effort in the "unimportant" regions of the domain), the variance of our estimate overall is reduced, as long as we compensate for our uneven sampling rate by weighting each sample by the inverse probability with which it was sampled. Think of importance sampling this way: if we have only one shot at sampling f (only one sample because of very limited 'resources'), we would like to concentrate that one sample in the region of the domain that will contribute the most to the value of the integral we are ultimately trying to approximate. By biasing our sampling technique to weigh "important", "large" regions of the domain with respect to f, we get more bang for our buck and correspondingly end up with a much lower variance estimator. If we were to instead naively sample uniformly across the domain, D, there's a good chance that our one, precious sample would be wasted by sampling a location, x, that is unimportant, where f(x) is relatively small. A perfect estimator would take samples from a distribution p, across D, whose probabilities were distributed directly proportional to f. This is, however, unreasonable, since if we knew the exact values of f across D, we wouldn't have to approximate the integral of f over D in the first place. We can, however, still greatly reduce variance by using knowledge about f to guide our sampling process and instead, sample according to either an approximation of f, or possibly according to some factorization of f into separate functions f1, f2, etc, some of which may be easier to draw samples from. As long as our sampling process attempts to draw samples from areas in D where f is "known" to be large and avoids regions in D where f is "known" to be small, our sampler will be more efficient and our overall variance will be reduced
MultipleImportanceSampler.h [code]
Mutation.h [code]
NaiveRenderOutput.cpp [code]Records point samples from a renderer and naively reconstructs the underlying image by storing samples into the bin/pixel which they fall into, overwriting previous samples, and not using any reconstruction filter
NaiveRenderOutput.h [code]
NaiveSpatialAccel.cpp [code]Naive/identity spatial acceleration (no acceleration) which runs through all primitives linearly when testing for intersections
NaiveSpatialAccel.h [code]
NormalSampler.cpp [code]
NormalSampler.h [code]Represents a normal distribution: X ~ N(u, sigma^2) f(x) = 1/(sqrt(2*pi*sigma^2)*exp(-(x-u)^2/(2*sigma^2))) The normal distribution (aka Gaussian) is parameterized by its mean and variance and is referred to as the standard normal distribution when when it has mean zero and variance one. The normal distribution is probably the single most important distribution in all of probability because of its ubiquity in describing natural phenomena and because of the Central Limit Theorem, which says that the sum of a sufficiently large number of iid random variables, each with finite mean and varirance, will be approximately normally distributed. This allows one to study almost any distribution in terms of one, standard normal, distribution, simplifying many computations and proofs all over both applied and theoretical statistics
NullEmitter.cpp [code]Null emitter which doesn't emit any light, defined at a single point in 3-space
NullEmitter.h [code]
NullSensor.cpp [code]
NullSensor.h [code]Null sensor which doesn't emit any importance
OmniEmitter.cpp [code]Point emitter / light which emits light uniformly in every direction, defined at a single point in 3-space (omnidirectional)
OmniEmitter.h [code]
OpenGLCanvas.cpp [code]Provides an OpenGL rendering view
OpenGLCanvas.h [code]
OpenGLRenderer.cpp [code]OpenGL preview renderer
OpenGLRenderer.h [code]
OrientedEmitter.cpp [code]
OrientedEmitter.h [code]Area emitter/light which emits light uniformly across a 2D domain, defined at a single point in 3-space, and restricted to the local positive hemisphere (oriented along hemisphere about local surface normal)
outputs.h [code]Convenience header which includes all public render output headers
Path.cpp [code]Core data structure for manipulating a sequence x0,x1,...,xk of points on scene surfaces. Paths are the central unit in the path integral formulation of light transport, upon which path tracing, bidirectional path tracing, and MLT are all founded
Path.h [code]
PathTracer.cpp [code]Unbiased path tracer with support for efficient direct illumination
PathTracer.h [code]
PathVertex.cpp [code]
PathVertex.h [code]A Path is composed of zero or more PathVertex vertices stored in a PathVertexList. Each PathVertex stores the underlying SurfacePoint, representing a single point on a surface (and all relevant associated metadata, eg, UV coords, normal, BSDF, etc.). In addition to storing the underlying SurfacePoint, each PathVertex also stores a set of carefully chosen, local values which facilitate efficient computation of the unweighted, bidirectional contributions of all possible combinations of light and eye subpaths. Specifically, 'alphaL' and 'alphaE' store the cumulative light and eye contributions respectively, with respect to this vertex' index within its parent Path
PinholeCamera.cpp [code]Basic pinhole camera using perspective projection (aka Camera Obscura)
PinholeCamera.h [code]
Plane.cpp [code]Representation of a unit plane in the y=0 plane from (-.5,0,-.5) to (.5,0,.5)
Plane.h [code]
Point.cpp [code]Provides basic functionality for a homogeneous point
Point.h [code]
Point.inl [code]Provides basic functionality for a homogenous Point
PointSample.cpp [code]Represents the value of a generic function ({x,y} -> any) evaluated at a particular 2D point
PointSample.h [code]
PointSampleRenderer.cpp [code]Abstraction of renderers which construct their output by point sampling a 2D domain (the film plane). The steps of generating point samples across this domain (SampleGenerator), evaluating the samples (PointSampleRenderer/SampleConsumer), and storing/using the evaluated samples (RenderOutput) have been abstracted from each other
PointSampleRenderer.h [code]
PointShape.cpp [code]Representation of a single point in 3-space (used to represent point lights and pinhole cameras)
PointShape.h [code]
ProgressiveFilterValue.h [code]
PropertyMap.cpp [code]Bare-bones map used throughout Milton for holding custom initialization parameters/options/information
PropertyMap.h [code]
Random.cpp [code]Provides static functionality for generating base random numbers, wrapping around boost::random, shared by all Samplers
Random.h [code]
Ray.cpp [code]
Ray.h [code]
RayCaster.cpp [code]Simple, non-recursive raycaster
RayCaster.h [code]
RayTracer.cpp [code]Abstract ray tracing engine, with the following concrete implementations: WhittedRayTracer, StochasticRayTracer
RayTracer.h [code]
ReconstructionRenderOutput.cpp [code]Records point samples from a renderer and attempts to reconstruct the underlying image by filtering samples with a reconstruction filter
ReconstructionRenderOutput.h [code]
Renderer.cpp [code]Abstract rendering engine which attempts to evaluate a rendering equation over a given 2D domain (the film plane) and pipes its output to an equally abstract RenderOutput (generally an image wrapper, but allowing for distributed rendering)
Renderer.h [code]
renderers.h [code]Convenience header which includes all public renderer headers
RenderOutput.cpp [code]Records point samples from a renderer which may be used to construct an output image on a local or distributed machine
RenderOutput.h [code]
RenderThread.cpp [code]
RenderThread.h [code]Intermediary for communicating/blocking between Gui and non-Gui threads in Qt
ResourceManager.cpp [code]Static resource manager synchronized across all Milton threads, containing references to loaded images, global logging utilities, and user-definable options which may be used to affect Milton functionality. Many user-definable options that are supported are aimed at dynamic, on-the-fly debugging changes (whether or not to preview kd-Trees built from Meshes, for instance)
ResourceManager.h [code]
Rgba.h [code]32-bit and HDR (128- or 256-bit floating point) Rgba structs
Rgba.inl [code]32-bit and 128-bit Rgba structs
RgbaImage.cpp [code]Image class supporting a standard 32-bit Rgba pixel format
RgbaImage.h [code]
RgbaImage.inl [code]Image class supporting a standard 32-bit Rgba pixel format
rgbe.cpp [code]Utilities for reading and writing Ward's rgbe image format
rgbe.h [code]Utilities for reading and writing Ward's rgbe image format
SampleConsumer.cpp [code]Threaded point sample evaluation (represents the 'consumer' in the classic producer/consumer problem)
SampleConsumer.h [code]
SampleGenerator.cpp [code]
SampleGenerator.h [code]Point sample generation over the 2D unit interval [0,1]^2
SampleGeneratorThread.cpp [code]Threaded PointSample generation over the 2D unit interval [0,1]^2 (represents the 'producer' in the classic producer/consumer problem)
SampleGeneratorThread.h [code]
Sampler.cpp [code]Represents an abstract random variable that can be sampled according to some discrete/continuous probability distribution
Sampler.h [code]
ScalarField.cpp [code]Represents a possibly bounded 3D scalar field (function from R^3 -> R which may be non-zero only within a bounded domain -- its AABB or Axis-Aligned-Bounding-Box)
ScalarField.h [code]
Scene.cpp [code]Contains all primitive and material data representing a given 3D scene
Scene.h [code]
SceneGraph.cpp [code]Bare-bones scene graph used during scene parsing
SceneGraph.h [code]
SceneLoader.cpp [code]Abstract scene loader
SceneLoader.h [code]
Sensor.cpp [code]Representation of importance defined at a single point on a surface in 3-space (describing a sensor / camera)
Sensor.h [code]
SensorSampler.h [code]
Shape.cpp [code]Abstract representation of a shape in 3-space
Shape.h [code]
shapes.h [code]Convenience header which includes all supported Shape headers
ShapeSet.cpp [code]Represents a collection of shapes which all have the same transformation
ShapeSet.h [code]
SharedLibrary.cpp [code]
SharedLibrary.h [code]
SharedLibraryCommon.h [code]
SharedLibraryManager.cpp [code]
SharedLibraryManager.h [code]
SharedLibraryPlatform.cpp [code]
SharedLibraryPlatform.h [code]
SIMD.cpp [code]Contains useful/common definitions for working with SSE intrinsics
SIMD.h [code]Contains useful/common definitions for working with SSE intrinsics
sort.cpp [code]
sort.h [code]
SpatialAccel.cpp [code]Generic interface for intersection acceleration data structures used for ray visibility testing and sampling during rendering
SpatialAccel.h [code]
SpectralSampleSet.cpp [code]Templated set of spectral values (wavelength-dependeht), sampled at N distinct wavelengths. Specific SpectralSampleSet instances include SpectralRadianceSet, in which each sample represents the radiance at a single wavelength with units Watts / (m^2 sr), and SpectralScalarSet, where each wavelength-dependent sample represents a unitless scalar that can be used to attenuate SpectralRadianceSet
SpectralSampleSet.h [code]
SpectralSampleSet.inl [code]Templated set of spectral values (wavelength-dependeht), sampled at N distinct wavelengths. Specific SpectralSampleSet instances include SpectralRadianceSet, in which each sample represents the radiance at a single wavelength with units Watts / (m^2 sr), and SpectralScalarSet, where each wavelength-dependent sample represents a unitless scalar that can be used to attenuate SpectralRadianceSet
Sphere.cpp [code]Representation of a 3D sphere with radius .5, enclosed in the unit box (-.5,-.5,-.5) to (.5,.5,.5)
Sphere.h [code]
stats.h [code]Convenience header which includes all statistics package headers
StochasticSampleGenerator.cpp [code]Stochastic point sample generation over a given 2D domain where samples are generated completely randomly over the entire domain
StochasticSampleGenerator.h [code]
SuperSampleGenerator.cpp [code]Brute force super sampling, where sub-bin (sub-pixel) sampling is done via an auxillary SampleGenerator
SuperSampleGenerator.h [code]
SurfacePoint.cpp [code]Core class representing a single point on the surface of a Shape, which was likely generated by either an intersection with a Ray or random sampling on the surface of the shape. SurfacePoint encapsulates all of the different information about a surface point and is used for shading evaluation (BSDF), emittance evaluation (Emitter), and so-called importance evaluation (Sensor)
SurfacePoint.h [code]
ThinLensCamera.cpp [code]Thin lens camera approximation supporting common camera inputs and allowing for depth of field
ThinLensCamera.h [code]
Timer.h [code]
Transformable.cpp [code]Represents a Shape which is defined in its own local "object space" and knows how to transform itself into the global "world space"
Transformable.h [code]
Transformable.inl [code]Represents a Shape which is defined in its own local "object space" and knows how to transform itself into the global "world space"
Triangle.cpp [code]Basic representation of a Triangle with optional UV coordinates
Triangle.h [code]
TriangleFilter.cpp [code]2D symmetric triangle filter (aka linear/tent filter)
TriangleFilter.h [code]
UniformOnSphereSampler.cpp [code]Represents a uniform distribution on the surface of an N-dimensional unit sphere (with parameter N > 0 and radius = 1)
UniformOnSphereSampler.h [code]
UniformSampleGenerator.cpp [code]
UniformSampleGenerator.h [code]Uniform point sample generation over the unit interval, where samples are generated uniformly in a grid over the entire domain
UniformSampler.cpp [code]Represents a uniform distribution (either discrete or continuous)
UniformSampler.h [code]
utilities.h [code]Contains utility definitions used throughout all of my projects
utils.h [code]Convenience header which includes all public milton utility headers
UV.h [code]
Vector.cpp [code]Provides basic functionality for a constant-sized Vector
Vector.h [code]
Vector.inl [code]Provides basic functionality for a constant-sized Vector
Vector3.h [code]Standard specialized implementation of a 3-element vector
Vector3.inl [code]Standard specialized implementation of a 3-element vector
Vector3SSE.cpp [code]Specialized implementation of Vector3, accelerated to support efficient SIMD vectorization via SSE intrinsics
Vector3SSE.h [code]Specialized implementation of Vector3, accelerated to support efficient SIMD vectorization via SSE intrinsics
Vector3SSE.inl [code]Specialized implementation of Vector3, accelerated to support efficient SIMD vectorization via SSE intrinsics
Viewport.h [code]
Visualization.cpp [code]
Visualization.h [code]Extracts out non-essential functionality (visualizations, user interaction) from Canvases
WeightedEvent.h [code]
WhittedRayTracer.cpp [code]Classic Whitted-style raytracer; for a concise introduction to raytracing, see http://www.raytracing.co.uk/study/ray_intro.htm
WhittedRayTracer.h [code]

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6