¿Cómo puedo crear un sombreador que reproduzca este efecto de iluminación en el terreno?

8

Vea la luz que cae de la colisión sobre los adoquines reflectantes

Observe cómo la reflexión es más fuerte donde el ángulo entre el sol, el suelo y el visor es más agudo.

Observe la forma en que la fuente de luz principal en cada imagen se refleja en el suelo, en función de la distancia entre la fuente de luz y el espectador (?).

¿Es este un mapa especular (golpeado)? El efecto se ve por todas partes en World of Warcraft; Lo recuerdo específicamente en la nieve en Dun Morogh y en las orillas del lago Darrowmere. Se requiere mirar directamente hacia el sol. El efecto también es comúnmente en la superficie del agua en RL y en CG. Específicamente, quiero construir el efecto donde la reflexión es más intensa en la superficie del suelo más cerca de la fuente de luz, y se cae al acercarse al espectador.

Ingeniero
fuente
2
phong en una protuberancia superficie mapeada
monstruo de trinquete

Respuestas:

14

Me imagino que si iba a construir un sombreador de este tipo, hay ciertos fenómenos con los que comenzaré.

Primero, la luz solar es direccional, lo que significa que no tiene posición ni atenuación.

En segundo lugar, el componente difuso simplemente se calcula tomando un producto de puntos entre la dirección del sol y las normales de la superficie, agregando un mapeo normal podría agregar detalles.

La parte difícil es modelar el componente especular direccional del sol. Entonces, para lograr un efecto similar, lo dividiría en problemas más pequeños:

  • El primero son las microfacetas de la superficie, esto puede simularse utilizando cualquier variación de mapeo de relieve o normal, esto puede aplicarse tanto al componente difuso como especular.
  • La segunda parte es la distribución desigual de la iluminación especular. Esto se puede hacer usando algún tipo de mapas especulares.
  • Ahora, la parte más difícil es el mapa especular direccional que se puede lograr utilizando el modelo de iluminación anisotrópica Ward , que le brinda dos parámetros para controlar la anisotropía de la reflexión especular, es decir, Ax, Ayen la siguiente ecuación de Wards.

Ecuación de Ward

Dónde:

  • El término especular es cero si dot ( N , L ) <0 o dot ( N , R ) <0.
  • El vector R es el reflejo del espejo del vector de luz de la superficie.
  • L es la dirección desde el punto de superficie a la luz.
  • H es la dirección del medio ángulo.
  • N es la superficie normal.
  • X e Y son dos vectores ortogonales en el plano normal que especifican las direcciones anisotrópicas, los vectores tangente y bitangente se pueden usar como X,Yvectores, especialmente porque el espacio tangente es tan común en los gráficos de computadora que podría calcularse en cualquier motor (generalmente calculado basado en coords de textura).

ingrese la descripción de la imagen aquí

Observe en la imagen cómo la iluminación especular es direccional a diferencia de la luz especular común de Phong. Aquí hay un artículo sobre el modelo Ward y cómo lograr diferentes efectos. EDITAR Más información sobre la idoneidad de la BRDF en términos de reducción de la intensidad de la luz más cerca del espectador, se puede encontrar aquí .

Ward anisotrópico especular

Finalmente, otros dos puntos (opcionales) que supongo que podrían agregar a la imagen final,

  • Primero, estoy seguro de que usar la oclusión ambiental ayudará a obtener resultados más creíbles.
  • El segundo es que la implementación de algún tipo de reflexión de Fresnel podría agregar un efecto agradable a la imagen, especialmente en escenas de agua y hielo.
concepto3d
fuente
1
+1 Buena respuesta concept3d, y lamento un poco que hayas hecho todo lo posible para escribirla - @JoshPetrie modificó el título de mi pregunta de "QUÉ (es este sombreador)" a "CÓMO (lo construyo) ". Por lo tanto, sus esfuerzos pueden ser algo en vano, sin embargo, parece haber hecho cosas buenas para su representante, y es un buen recurso.
Ingeniero
@NickWiggill no hay problema, permanecerá aquí como un buen recurso :)
concept3d
@JoshPetrie aunque la edición de alguna manera invalidó mi respuesta, la pregunta en su forma actual es un poco más razonable.
concept3d
1
Voy a aceptar el tuyo en su lugar. La razón es que mencionas BRDF y ese es exactamente el tipo de concepto que tenía en mente, y después de leerlo, puedo ver que esto es precisamente lo que necesito. He editado su respuesta con más detalles sobre BRDF.
Ingeniero
1
@NickWiggill Gracias por agregar más detalles. Más información nunca es mala :)
concept3d
3

El reflejo en sí mismo es solo el reflejo especular que se obtiene como resultado de las funciones de su modelo de iluminación específico.

Hay muchos modelos diferentes de iluminación de diferentes niveles de complejidad que producirán una forma de reflexión similar a esta, pero un aspecto similar a esto ya se puede lograr con un modelo de iluminación simple , que es (ahora) probablemente el más modelo básico de iluminación utilizado por motores gráficos, y muy probablemente también utilizado por World of Warcraft.

No será físicamente correcto y completamente igual a sus imágenes, pero se verá muy similar . El ejemplo de Concept3D del modelo Ward es más físicamente correcto y funciona para tipos de superficie más complejos (a saber, materiales donde las protuberancias microscópicas en sus superficies no están distribuidas uniformemente, pero tienen diferentes distribuciones de probabilidad), pero no conozco ningún ejemplo concreto de los renderizadores en tiempo real que lo utilizan, debido a las bajas ganancias en términos de calidad / rendimiento.

En la práctica, estos tipos de reflejos en las superficies se complementan con texturas especulares / brillantes y normales adicionales, que modifican el brillo / rugosidad de una superficie y la dirección de las normales de la superficie, respectivamente, que son ambas entradas a las ecuaciones de iluminación. de modelos típicos de iluminación. Esto se hace porque en el mundo real, las propiedades físicas de la superficie con mayor frecuencia (excepto tal vez algo como plástico o un espejo) no permanecen iguales en toda la superficie, sino que pueden variar enormemente de un píxel a otro.

TravisG
fuente
Bien, gracias Travis. ¿Prevé que haya algún problema con mi uso de blinn + phong junto con algún tipo de textura de máscara para renderizar píxeles solo cuando sea necesario en el terreno, creando así la granularidad subyacente a la reflexión especular?
Ingeniero
Si esos píxeles no se iluminan después de ser descartados debido a la textura de la máscara, probablemente se verá mal / raro. La forma habitual es, de hecho, una combinación de un mapa de relieve y un mapa especular para la superficie que cambia algunas de las entradas de la ecuación de iluminación.
TravisG
0

Mapeo de relieve especular (mapeo normal) o mapeo de paralaje.

Celestis
fuente
77
Desarrollar esto con evidencia o referencias lo haría una respuesta mucho mejor.
MichaelHouse