Thursday, 21 October 2010

Material Properties

Choosing the right material to represent a particular object is important when producing realistic 3D graphics. Factors like refractive index, specularity, and reflectivity all affect how we perceive an object both in the real world and on screen, so ideally the real world case should be simulated as closely as possible in its computer based counterpart. The three images below show how differing physical features completely change the appearance of a scene. In the top image the sphere is 100% reflective, in the second it is partly transmissive and partly reflective and in the last image, the sphere is fully transmissive with a refractive index of around 1.08. I am pleased with the results I am getting from the raytracer, but adding more features increases the render time dramatically, especially for large numbers of objects. I am looking into porting the library to C++ for use in alchemy, which would show a dramatic increase in speed, possibly rendering scenes like the one below in real time. Till then here is the library.


  1. dude that's really impressive stuff. Cannot even start to comprehend the math needed to do those things you do. Hopefully you might be able to use GPU hardware acceleration with the upcoming flash version pretty soon.

    Keep moving forward! Great work!

  2. Hi Mathieu, thanks for the comment. The beauty of the raytracer is that the maths is actually fairly simple. Just some basic vector manipulation, dot products, cross products and rotation.

    The prospect of GPU acceleration is very exciting. I'm imaginging decent performance for realtime raytracing in flash!