1 Archivos adjunto(s)
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
-- IMÁGENES ADJUNTAS --
https://foro3d.com/attachment.php?attachmentid=34553
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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 fry.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
Cita:
Vamos a echar una mano a Jandro y a lynx con el fry.
Eso, vamos a hacerles unos cafetitos.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
Cita:
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
Ala que bien. Voy a mirarlo.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
Morcy esa documentación interesa, a ver si pudieras subirlo.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
Vaya, parece que hablas de programar un motor de render como el que se come un caramelo.
Quieres programar tu raytracer? el raytracer minimalista: yopyra
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.