TODO
branchpyrit
changeset 44 3763b26244f0
parent 40 929aad02c5f2
child 46 6493fb65f0b1
--- 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)