Ray tracing es una de las técnicas más importantes de las gráficas 3D realistas, en el sentido que simulan la forma en que las escenas reales se crean usando los rayos de luz que entran a través de los ojos de los observadores. La única diferencia es que en general un ray tracer trabaja de manera inversa a los rayos de luz reales, esto es, desde la cámara a la escena. El programa tiene que trazar un rayo de luz desde la cámara hasta el modelo tridimensional y ver qué partes del mismo toca. A partir del color que toca el rayo de luz, se puede trabajar en el color del pixel que intersecta el punto donde la cámara debería estar. Simple en teoría, pero muy complejo de implementar. De hecho, en algunos casos se usa para probar el desempeño del hardware.
Christopher Chedeau y Gauthier Lemoine han implementado un ray tracer en Javascript, usando WebGL y un par de herramientas útiles como glMatrix, Code Mirror y CoffeeScript. Por el momento sólo puede renderear los siguientes tipos de objeto: planos, esferas y cilindros. Sin embargo, su uso es general. En el siguiente demo se puede ver la idea funcionando.
Para hacer incluso más atractiva esta idea, el código fuente de esto está disponible. A todo esto, el sistema parece funcionar en Chrome y Firefox pero no en Internet Explorer 9. No se ve ninguna razón particular para que esto esté ocurriendo.
Fuente: i-programmer