--- 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)