HXA7241 (logo)

four cornell box variants

PERCEPTUUM - to-do

a global illumination renderer development project

features

projective first hit
rasterization to be done projectively with a mostly realtime-style pipeline. the final part is a triangle subdivision stage to interpolate the illumination over small pixel areas, or selectively ray-trace further into the scene. potential of ~10x speed-up for overall rendering. first half of pipeline is written, subdivision and interpolation part isnt. (transport.)
tracing acceleration by octree
index objects with octrees, each instance having its own octree for its sub-parts. modify object intersection method to use octree tracing algorithm. potential of significant speed-up for overall rendering. octree classes are written, octree traversal and object refactoring isnt. (modelling.)
optimal image accumulation sampling control
use stats on the pixel accumulation to determine where more sampling is needed most, and if satisfactory convergence has been reached. need to use tone mapping info to calculate visible differences. problem is that regions need certain amounts of sampling, not individual pixels - some extrapolation or multiscale analysis is required. (imaging.)
sky illumination
separate from object emission system. simple sun and sky models. non-obvious co-operation with indirect illumination...
window direct illumination special case
allow objects to be tagged as 'window', and be transparent to intersection so direct lighting and therefore sharp shadows can work through windows.
optimal specular integration
needed for glossy surfaces when reflecting small bright areas. make numerical sampling distributions from scattering importance and photon map information. use derivative of the combination plus 1. (interaction, transport.)
photon distribution improvement
guided by the improvement of putting more samples into regions of greater uneveness, and the efficiency of skipping invisible regions. (transport, maybe just EmitterPath class.)
scene file inclusion
have the scene deserializer read in named files to use as part of the scene. needs improved object naming scheme. (modelling: additions and refactors to Scene class.)
standard model format reading/translating
if there was one standard format... but there isnt, so first, which one? must be: popular, have free models available, easy to interpret or have reusable code, not in conflict with perceptuum abstractions. (modelling: disconnected classes.)
displacement mapping
modifying object meshs during read in, based on extra texture map type. (modelling.)
translucent volumes and subsurface scattering
tractable in moderation... (transport, interaction, modelling.)
polarisation
there are a few discussions of this, see glassner 'principles...'. (interation.)
more wavelength samples
just add a few elements to the Light class. i think its that easy, isnt it? but conversion from cie xyz to spectral is ill-defined. (interaction.)
instance overrideable texturing
so an object instance can set its material properties, as well as its position. (modelling.)
lightsource texturing
maybe just one or two methods in Material, but its a bit awkward to write. (modelling.)
open gl acceleration
how much can open gl help raytracing-oriented global illumination? very uncertain.

(wow. theres still so much to do...)

2004-08-22