Bugs ==== * (none known) Future Plans ============ * enhance Sampler to support subsampling * namespace * kd-tree: - optimize structures - optimize construction: use box-shape intersection instead of bounding boxes of shapes - save/load * textures (3D procedural, pixmaps) * Python binding for all 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? ============ shapes.h -- Triangle, Sphere scene.h -- Ray, Light, Camera, Scene material.h -- Material, Texture 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) constructors have zero or one parameter by default -- the object to copy data from more parameters -- the data (ray origin and direction)