Hola a todos. En el foro no he visto una sección de programación, así que, lo pongo en este hilo. Este programa lo desarrollé hace dos años para ilustrar las bases de programación de un raytracer, y bueno, por que no compartirlo?
Se llama yeah, one Python raytracer. porque creo que es el primer raytracer hecho en Python (si no es el primero, siempre podemos cambiar el nombre, siguiendo la notación de Jandro por yet another Python raytracer). Quizás porque no es el mejor lenguaje de programación para hacer programas muy eficientes, pero sí es uno de los mejores para entender el código, aunque no sepas de ese lenguaje. Y ese es el objetivo de yopyra, hacer un raytracer que, con sólo 300 líneas de código, cualquier programador pueda entender (siempre que recuerde un poco de geometría 3d).
¿Qué puede hacer yopyra? bueno, no esperéis un motor unbiased, ni métodos de iluminación global. Pero sí hay algunas características interesantes como:
- objetos: soporte de esferas y planos. Se pueden añadir más objetos fácilmente, implementando nuevos objetos en el interfaz abstracto cuerpo, py.
- luces: puntuales y luz ambiental.
- sombras: sombras duras por Raytracing.
- materiales: colores, reflexión difusa y especular, mirror (por trazado de rayos) y transparencia (por trazado de rayos; IOR).
- oversampling: antialiasing no adaptativo.
Si queréis echarle un vistazo y mirar sus posibilidades, está en el siguiente enlace.