XSIforum.com

Reflexiones más realistas.

0 Usuarios y 1 Visitante están viendo este tema.

Reflexiones más realistas.
« en: 03 Febrero 2010, 11:55:07 »
Buenas,

Si os fijáis, cuando iluminamos una escena, los objetos que tienen reflexión parecen igualmente reflexivos tanto por las zonas donde incide la luz como por las zonas que están en penumbra. Esto no queda muy realista, ya que donde la luz no llega no debería de apreciarse el reflejo tan drásticamente como en las zonas donde la luz impacta directamente.

He creado un sencillo shader para poder controlar esto de forma muy fácil, y que permita añadir más realismo a nuestras escenas.
No es un shader físicamente correcto, ya que un objeto es igualmente reflexivo en todo su área, independientemente de donde le incida la luz. La diferencia es la propia luz, que es la que nos deja ver el reflejo o no.
Por eso, este shader falsea la realidad para lograr este efecto, pero el shader en si no es físicamente realista. Pero bueno, lo que importa es que cumple su cometido :)


Toda la parte derecha de la esfera está en penumbra, ya que la luz solo viene de un spot colocado a en la parte izquierda. Sin embargo la reflexión es igual en toda las partes de la esfera. Esto no es correcto.


Utilizando este shader, ya podemos jugar con la cantidad de reflexión que tiene la parte en penumbra.
En este caso, le estoy diciendo que la parte en penumbra no sea nada reflexiva.


Aquí un término medio. Ya empieza  a parecer más realista.


Aquí la construcción del shader. Muy sencillo y útil.


Desde mi blog os podéis descargar la escena de ejemplo.
xuanprada.net

Unaided

  • ***
  • 3293
Re: Reflexiones más realistas.
« Respuesta #1 en: 03 Febrero 2010, 15:31:01 »
En si no es otra cosa que usar el incidence con Surace/Lights para controlar esto, pero gracias por el aporte. )

Re: Reflexiones más realistas.
« Respuesta #2 en: 03 Febrero 2010, 16:20:39 »
Uhm, no estoy deacuerdo... Un objeto refleja menos por la zona de sombra porque lo que refleja en esa zona son cosas oscuras.

Si reflejara cosas claras en la zona de sombra, significaría que debería estar recibiendo iluminación indirecta de esas cosas, por lo que ya no estaría en sombra.

Lo que tú dices es un apaño que puede resultar muy útil, pero hay que tener en cuenta que no es físicamente correcto.

Re: Reflexiones más realistas.
« Respuesta #3 en: 03 Febrero 2010, 16:54:48 »
Si, lo dije en mi primer post, no es real físicamente, pero hace que el ojo humano lo entienda mejor.

Epar

Re: Reflexiones más realistas.
« Respuesta #4 en: 03 Febrero 2010, 18:49:42 »
Hombre, no se que decirte,... una reflexion raytrace deberia reflejar su propia sombra.
Para que las reflexiones (al igual que las transparencias) no sean uniformes usa un Incidenece,....con el que imitas el efecto fressnel.

Pero gracias de todas formas.

Unaided

  • ***
  • 3293
Re: Reflexiones más realistas.
« Respuesta #5 en: 03 Febrero 2010, 22:44:44 »
Mr. White, simular las propiedades físicas en un entorno virtual es la mejor opción para incrementar el tiempo de render y perder control en la misma medida.

Mental Ray es muy potente precisamente por el control que ofrece para conseguir el efecto deseado sin recurrir a complejos cálculos basados en la simulación fisica de la luz.

En definitva es todo un efecto visual, tanto los PBR, como los raytracers, como los scanliners, como el render opengl. Un sombreado Goraud se base simplemente en un efecto optico, que mira por donde hasta el más complejo PBR usa.

En mi opinión, si Xuanprada hubiese no construido, sino programado un shader que consiguiese el mismo efecto, pero basándose en cálculos simulando las propiedades fisicas de la luz, sería un gran error y desperdicio de recursos.

XSI, Maya, o Houdini son potentes por poner al alcance de quienes no tenemos conocimientos avanzados de programación, un acercamiento importante con la construcción de shaders a partir de otros programados. Y si puede ser un "fake" mejor que un cálculo complejo a partir de física.

Se nota que no me gusta la idea de los PBR? xD

Un mundo virtual, es virtual, y es matemáticamente imposible reproducir todas y cada una de las variables del mundo real, punto pelota.