Quieres programar tu raytracer el raytracer minimalista: yopyra

morcy - 01/08/2006 19:48
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[/i]). 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[/i], ni métodos de [i]iluminación global[/i]. Pero sí hay algunas características interesantes como:

Si queréis echarle un vistazo y mirar sus posibilidades, está en el siguiente enlace.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #34553

elGordo - 02/08/2006 08:16
Vaya, que interesante Morcy. En cuanto tenga un ratón le echo un vistazo (y hago los tests de settings con Yafray que pides). Un saludo.
koex - 02/08/2006 09:37
Muy interesante. Gracias por compartirlo Morcy, aunque no soy programador le echaré un vistazo, últimamente me estoy metiendo en el mundo pitonero para hacer mis pinitos. Saludos.
morcy - 02/08/2006 09:49
Muchas gracias compañeros. Si vais mejorando algo, me enviáis el resultado. Vamos a echar una mano a Jandro y a lynx con el [i]fry[/i].
Caronte - 02/08/2006 09:51

Vamos a echar una mano a Jandro y a lynx con el [i]fry[/i].

Eso, vamos a hacerles unos cafetitos.
morcy - 02/08/2006 09:57
Vaya, sí, hay que ponerse muy en serio para poder echar un cable. No es para nada trivial. Yo en su momento estuve mirando un poco por dentro Yafray y la verdad, no era nada sencillo.
Caronte - 02/08/2006 10:11

Vaya, sí, hay que ponerse muy en serio.

El código ya es complicado de por sí, pero si le añadimos el hecho de que al optimizar para velocidad, todo se complica aún más.
koex - 02/08/2006 10:16
He mandado la noticia a dotpy, net, a la espera de que el amigo karlsberg la publique. Seguro que a más de uno le será de utilidad.
[offtopic]sobre Yafray, lynx se ha puesto muy en serio con no repetir la historia del código intocable de Yafray, va lento, pero seguro. No creo que tarde mucho en sacar algo para trastear. Ya hay algunas imágenes con su motor rondando por el foro de Yafray y prometen mucho.[/offtopic]. Saludos.
damiles - 02/08/2006 18:07
Me parece muy interesante, le echaré un vistazo cuando pueda, pero lo que si estaría bien es crear un hilo de programación, ahí sí que metería mano con ganas.
morcy - 02/08/2006 18:31
Tengo algo de documentación de la asignatura que doy de síntesis de imagen 3d, si hay gente interesada puedo hacer una recopilación de mis apuntes recordando geometría espacial y explicando el algoritmo.
HalfVector - 02/08/2006 21:35
Por si a alguien le interesa, un buen libro introductorio sobre Raytracing sería an introduction todo Raytracing, de Andrew s. Glassner, que es la recopilación de varios cursos sobre Raytracing que se impartieron en el Siggraph a partir de 1986. Trata los temas más básicos del Raytracing. Muy importante los capítulos dedicados a los diferentes tipos de intersecciones.

También hay una buena serie de tutoriales (gratuito) escritos por jacco biker, aquí. Este cubre algunos temas avanzados como software-shadows, particionamiento espacial para acelerar el trazado de rayos, mapeado de texturas, etc.

Luego hay libros más avanzados como physically-based image synthesis: from theory todo implementation, de Matt pharr y Greg humphreys. Este trata temas mucho más complejos, más parecidos a los problemas que se presentan al implementar un renderer tipo Vray o Mental Ray. Saludos.
morcy - 02/08/2006 21:48
Sí, de libros tengo algunos. El pbrt por ejemplo, pero no es un libro para el absolutamente novato. Para empezar, uno que está muy bien es realistic Ray Tracing de shirley y morley, con código muy bien explicado. Orientado casi en exclusiva al tema del Photon Mapping está el realistic image synthesis using Photon Mapping del inventor de Photon Mapping (Jensen).

Libros más teóricos, están la serie de Andrew glassner principles of digital image synthesis (o algo así), que son dos volúmenes.

Y bueno, en realidad hay mucho material por ahí. El tema está en digerirlo.
Pepius - 02/08/2006 23:17
Ala que bien. Voy a mirarlo.
koex - 03/08/2006 23:20
Morcy esa documentación interesa, a ver si pudieras subirlo.
EXA - 19/03/2007 15:59
Muy interesante tengo la idea de hacer mi propio motor de render, a ver si logro bajar tiempos. Vray es insoportable ya. Saludos a todos.
slash - 21/03/2007 00:05
Vaya, parece que hablas de programar un motor de render como el que se come un caramelo.
Pepius - 21/03/2007 07:52
Realmente no conozco tus capacidades como programador, pero vas a tener difícil ni siquiera acercarte a Vray. A parte que Vray lleva años de desarrollo y una plantilla remunerada y cualificada detrás, como podrás comprobar, yopyra no postura ni GI ni Ambient Occlusion, solo por citar algunos. Un saludo.