As a critical part of my next year’s entry I am attempting to make a real time raytracing engine which will render my scene.
The objectives of the render are:
- achieve 15fps at 800x600 on a reasonably modern PC
- reflection
- refraction
- simple shadows
- textures
- bump mapping
- fog
- able to handle spherical and triangle primitives
- use a bounding volume heirachy
I now have the render at an inital stage able to display the bounding volumes (spheres) which represent objects.
- no secondary rays are cast yet.
Currently with no code optimisations and only proof of concept frustrum subdivision optmisation implemented it is able to render a scene of 41 viewable objects out of a total of 32767 objects onto a 800x600 screen in 0.2 seconds using a Pentium 4 duel core 3000 mhz (thus really only 1500 mhz thanks to java not utilising both cores).
This seems holds promise. My biggest concern is whether i am able to reduce reduce the class size to fit in 4k and allow a game as well!
Below is a screen shot thus far:
http://www.imagebee.org/thumbs/8513test1.gif
The magenta areas represent the bounding spheres of the objects, the yellow gridded areas show the frustrum subdivision.
The darker the magenta the further away the object is from the camera.