DEVNOTES
author Radek Brich <radek.brich@devl.cz>
Thu, 15 May 2008 19:15:57 +0200
branchpyrit
changeset 97 2a853d284a6a
parent 94 4c8abb8977dc
child 98 64638385798a
permissions -rw-r--r--
added bench.py demo which prints tree build and render times added Vertex to python binding, NormalVertex is now its subclass

Classes
-------

vector.h -- vector of three scalars, also used for colour
matrix.h -- matrix class, currently not used
quaternion.h -- quaternion class for camera rotation

container.h  -- container for shapes, base class for octree and kd-tree
octree.h -- Octree space subdivision structure for acceleration of ray-shape intersection search
kdtree.h  -- KdTree space subdivision structure

scene.h -- scene objects: Ray, Light, Camera and shapes
raytracer.h -- ray tracer class
common.h -- Float definition (float/double) and some helper functions


Container Usage
---------------
(Container|Octree|KdTree) top;
scene.setTop(top)  // top object in hierarchy
top.optimize()     // build optimization structure

Rework camera
-------------
Sampler - generate points in screen plane
Camera - transform point from sampler to a ray

New Classes?
------------

scene.h   -- Scene, ...
reader.h  -- Reader, WavefrontReader

wf = new WavefrontReader()
wf.setContainer(top)
wf.setTransform(monkey_pos_matrix)
wf.read("monkey.obj")
// more transform&reads
destroy wf

Scene scene -- container with shapes, a camera and lights
scene = new Scene()
scene.setCamera(new Camera(eye, u, v, p))
scene.addLight(new PointLight(pos, color))
rt.setScene(scene)
rt.render(w,h)