--- a/TODO Sat Mar 29 17:54:27 2008 +0100
+++ b/TODO Sat Mar 29 18:01:45 2008 +0100
@@ -1,15 +1,11 @@
Bugs
====
- * 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.
+ * (none known)
Future Plans
============
* changing main ray tracing algoritm to more flexible architecture with a Sampler object:
- enhance Sampler to support subsampling
- - rewrite pthreads
* namespace
* kd-tree:
- optimize structures
@@ -23,10 +19,6 @@
* implement efficient AABB-ray intersection using Plucker coordinates
* generalization: Camera "shader" (ray generator), surface shader and maybe light & background shaders
-Performance Weak Points
-=======================
- * Raytracer::render -- allocating and deallocating every sample
-
New Classes?
============
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/demos/boxes.py Sat Mar 29 18:01:45 2008 +0100
@@ -0,0 +1,28 @@
+#!/usr/bin/python
+
+import sys
+sys.path.append(open('ModulePath').read().strip())
+
+from raytracer import Raytracer, Material, Box, Light
+import Image
+
+rt = Raytracer()
+
+light1 = Light(position=(0.0, 5.0, -5.0), colour=(0.7, 0.3, 0.6))
+rt.addlight(light1)
+
+light2 = Light(position=(-2.0, 10.0, -2.0), colour=(0.4, 0.6, 0.3))
+rt.addlight(light2)
+
+mat0 = Material(colour=(0.7, 0.7, 0.7))
+mat0.setReflectivity(0.0)
+for x in range(8):
+ for y in range(8):
+ for z in range(8):
+ box = Box(L=(-4.3+x, -4.6+y, -8.6+z), H=(-3.7+x, -4.0+y, -8.0+z), material=mat0)
+ rt.addshape(box)
+
+imagesize = (800, 600)
+data = rt.render(imagesize)
+img = Image.fromstring("RGB", imagesize, data)
+img.save('boxes.png')