Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - IRTHUS

#1
Programación gráfica / Re: RayTracing & PathTracing
04 de Julio de 2011, 09:29:48 AM
Hola, me he mirado  lo del Cycles, muy wuapo, por cierto funcionara desde CPU y/o GPU, se puede descargar una versión beta desde aquí:
http://www.graphicall.org/
Sobre el tema de RayTracing combinado con PathTracing, me han orientado bastante bien desde otro hilo en codepixel, supongo que no pasa nada por poner el link aquí, a todos nos interesa aprender:
http://groups.google.com/group/codepixel/browse_thread/thread/342bff583b257b70/cb65af0c14c3266f?hl=es&show_docid=cb65af0c14c3266f

Y haciendo una búsqueda en google sobre "Path Tracing Next Event Estimator", encontré este paper sobre path tracing y mas cosas muy explicativo con gráficos y pseudocodigo:
http://www.cs.dartmouth.edu/~fabio/teaching/graphics08/lectures/18_PathTracing_Web.pdf
#2
Programación gráfica / RayTracing & PathTracing
30 de Junio de 2011, 04:36:21 PM
Bueno creo que finalmente lo comprendido. XD. Es un error mio de concepto.

El Path Tracing Original, tal y como explicas en tus diapositivas, solo busca la luz de forma completamente indirecta, y ya esta. Pero yo me he empeñado en mezclar conceptos, XD. Intentaba buscar con rayos primarios la luz (RayTracing), para luego recursivamente buscar luz indirecta con rayos secundarios (PathTracing). Osea que hacia una mezcla mal hecha de RayTracing + PathTracing.

De hecho ayer empece un render que a la hora, hora y media ya lucia como se ve aqui:

Pero después de dejarlo toda la maldita noche el ruido de estos puntitos no desaparecía. PD: (en JPEG no se nota tanto)

He cambiado el código suprimiendo la luz directa (RayTracing y atenuación por distancia) solo dejando la luz indirecta (PathTracing). Y aunque la imagen tarda mas en definirse, esta es mucho mas homogénea. He aquí 2 ejemplos, aunque tienen ruido todavía se las ve con una tendencia a "homogeneizarse".



Con lo que ahora he entendido tiene mas sentido lo que han puesto en la wiki de codepixel:
http://wiki.codepixel.com/index.php/Ecuaci%C3%B3n_de_renderizado
2 Formulas:
Una para samplear superficies: (RayTracing con la atenuación por distancia)
Y la otra para samplear Hemisferios: (PathTracing solo los cosenos o productos escalares)

Gracias tu diapositivas me han hecho pensar, XD. Supongo que sera posible mezclar correctamente los  2 algoritmos pero tendra que hacerse bien sino las dos iluminaciones no coinciden y producen ruido que no desaparece.
#3
Programación gráfica / Re: RayTracing & PathTracing
30 de Junio de 2011, 02:02:42 PM
A ver creo que no me entiendes, ese es principalmente mir problema, que carezco de conocimientos teóricos sobre el comportamiento de la luz. He intentado documentarme con explicaciones científicas: Fresnel, Radiosidad, Radiancia ,etc. Y también con temas adaptados a la infografía como: Ecuación de Render, BRDFs varios (phong,lambert,etc). Pero lo único que consigo con tanto material es confundirme aun mas.

Y lo que comentaba o preguntaba en mi primer post es si estaba haciendo bien o mal desde el punto de vista físico, la atenuación de la luz para rayos directos e indirectos. Y la verdad aun no lo tengo claro, XD. En cualquier caso gracias por responder.

Volviendo al problema. En otro foro me han comentado que existen varias formas de "samplear" las superficies si estas son emisoras o no de luz, concretamente si se samplea una superficie o un hemisferio. Aquí esta el enlace:
http://groups.google.com/group/codepixel/browse_thread/thread/342bff583b257b70?hl=es
#4
Programación gráfica / Re: RayTracing & PathTracing
29 de Junio de 2011, 03:22:04 PM
Para que veáis el problema que tengo os muestro una imagen aplicando las 2 atenuaciones en la iluminación indirecta:
#5
Programación gráfica / Re: RayTracing & PathTracing
29 de Junio de 2011, 02:49:01 PM
Merci por la respuesta pero el caso es que estoy intentando precisamente eso, que sea físicamente correcto,XD. Y phong es un modelo aproximado no basado en la física, hasta donde yo tengo entendido. Mi problema es el de la atenuación por distancia, que funciona bien para la iluminación directa pero mal para la indirecta.

La solución temporal que he adoptado es:
-Luz Directa: Atenuar por angulo (COSENO) y por distancia (1/d^2)
-Luz Indirecta: solamente atenúo por angulo (COSENO).

Aquí os dejo unos renders:

#6
Programación gráfica / RayTracing & PathTracing
28 de Junio de 2011, 10:19:57 PM
Buenas haber si podeis hecharme un cable con esto. Mi dilema empieza en que estoy implementando un pathtracing, y tengo algunas dudas a la hora de entender las ecuaciones diferenciales, integrales, etc. Sobre iluminación global. Mas concretamente la ecuación de rendering, jeje.

Entiendo la filosofía de la ecuación, por asi decirlo. "Luz saliente en el punto X y dirección W es igual a la luz emitida en el punto X hacia W  as el sumatorio(integral) de todo un hemisferio de las luces incidentes y reflejadas hacia W aplicando la ley del coseno y una BRDF, bla bla bla bla, jeje. Pero me cuesta concretar a la hora de sacar una ecuación "programable".

Mi problema actual  y concreto, es que para los rayos primarios y la iluminación directa aplico el COSENO sobre la normal de la superficie respecto la dirección del rayo de sombra(luz), y luego divido por el CUADRADO de la distancia. Hasta ahí bien, pero cuando lanzo rayos secundarios para la luz indirecta si aplico la "Ley inversa de los cuadrados", o atenuación en función de la distancia. Entonces aparece luz en las esquinas. he deducido que es porque cuando la distancia es menor que la unidad la funcion (1/d^2) devuelve números muy grandes en vez de pequeños que es el objetivo de atenuar. Si elimino la atenuación por distancia, dejando sola la atenuación angular, la imagen "parece" correcta, pero no soporto no saber si lo estoy haciendo bien.

Haber si podéis orientarme un poco porque los papers que leo son un poco cripticos con tanta integral y diferenciales, jeje. Merci por todo.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.