diff -r 0b8b968b42d1 -r 3763b26244f0 TODO --- a/TODO Sun Dec 30 00:11:47 2007 +0100 +++ b/TODO Thu Jan 03 18:06:34 2008 +0100 @@ -1,33 +1,33 @@ Bugs ==== - * concurrent read? (concurrent write should not occur) + * bad sphere/box transmisivity + Inside-out transition is ignored as every second intersection is ignored to avoid duplicit + intersect points. This solution should be replaced by moving ray origin a little forward, which + should work as well and without side-effects. Future Plans ============ + * namespace * kd-tree: - optimize structures - - optimize construction: do not use bounding boxes of shapes, instead implement box-shape intersection + - optimize construction: use box-shape intersection instead of bounding boxes of shapes - optimize traversal -- no std::vector - save/load - * textures (3D procedural, pixmaps later) - * update Python binding: Camera, new classes - * namespace + * textures (3D procedural, pixmaps) + * update Python binding: Camera, other new classes * stochastic oversampling * absorbtion of refracted rays in dense materials (can be computed using shape distance and some 'absorbance' constant) + * implement efficient AABB-ray intersection using Plucker coordinates + * generalization: Camera "shader" (ray generator), surface shader and maybe light & background shaders New Classes? ============ -container.h -- Container -kdtree.h -- KdTree shapes.h -- Triangle, Sphere scene.h -- Ray, Light, Camera, Scene material.h -- Material, Texture -matrix.h -- Matrix -vector.h -- Vector3 reader.h -- Reader, WavefrontReader -KdTree top wf = new WavefrontReader() wf.setContainer(top) wf.setTransform(monkey_pos_matrix) @@ -35,11 +35,8 @@ // more transform&reads destroy wf -top.optimize() -- i.e. build tree - Scene scene -- container with shapes, a camera and lights scene = new Scene() -scene.setTop(top) -- top object in hierarchy scene.setCamera(new Camera(eye, u, v, p)) scene.addLight(new PointLight(pos, color)) rt.setScene(scene)