Resaltado especular

Punto brillante de luz que aparece en los objetos brillantes cuando se iluminan
Reflejos especulares en un par de esferas

Un punto de luz especular es el punto brillante que aparece en los objetos brillantes cuando se iluminan (por ejemplo, consulte la imagen de la derecha). Los puntos de luz especular son importantes en los gráficos de computadora en 3D , ya que brindan una pista visual clara de la forma de un objeto y su ubicación con respecto a las fuentes de luz en la escena.

Microfacetas

El término especular significa que la luz se refleja perfectamente de forma especular desde la fuente de luz hasta el observador. La reflexión especular solo es visible cuando la normal de la superficie está orientada exactamente a la mitad entre la dirección de la luz entrante y la dirección del observador; esto se llama dirección de medio ángulo porque divide en dos (en dos) el ángulo entre la luz entrante y el observador. Por lo tanto, una superficie que refleja especularmente mostraría un reflejo especular como la imagen reflejada perfectamente nítida de una fuente de luz. Sin embargo, muchos objetos brillantes muestran reflejos especulares borrosos.

Esto se puede explicar por la existencia de microfacetas . Suponemos que las superficies que no son perfectamente lisas están compuestas por muchas facetas muy pequeñas, cada una de las cuales es un reflector especular perfecto. Estas microfacetas tienen normales que se distribuyen alrededor de la normal de la superficie lisa que se aproxima. El grado en que las normales de las microfacetas difieren de la normal de la superficie lisa está determinado por la rugosidad de la superficie. En los puntos del objeto donde la normal lisa está cerca de la dirección del medio ángulo, muchas de las microfacetas apuntan en la dirección del medio ángulo y, por lo tanto, el resaltado especular es brillante. A medida que uno se aleja del centro del resaltado, la normal lisa y la dirección del medio ángulo se alejan; el número de microfacetas orientadas en la dirección del medio ángulo disminuye y, por lo tanto, la intensidad del resaltado cae a cero.

El reflejo especular suele reflejar el color de la fuente de luz, no el color del objeto que refleja. Esto se debe a que muchos materiales tienen una fina capa de material transparente sobre la superficie del material pigmentado. Por ejemplo, el plástico está formado por pequeñas perlas de color suspendidas en un polímero transparente y la piel humana suele tener una fina capa de aceite o sudor sobre las células pigmentadas. Estos materiales mostrarán reflejos especulares en los que todas las partes del espectro de color se reflejan por igual. En materiales metálicos como el oro, el color del reflejo especular reflejará el color del material.

Modelos

Existen varios modelos diferentes para predecir la distribución de las microfacetas. La mayoría supone que las normales de las microfacetas se distribuyen uniformemente alrededor de la normal; estos modelos se denominan isotrópicos . Si las microfacetas se distribuyen con preferencia por una determinada dirección a lo largo de la superficie, la distribución es anisotrópica .

NOTA: En la mayoría de las ecuaciones, cuando dice significa ( A ^ B ^ ) {\displaystyle ({\hat {A}}\cdot {\hat {B}})} max ( 0 , ( A ^ B ^ ) ) {\displaystyle \max(0,({\hat {A}}\cdot {\hat {B}}))}

Distribución de Phong

En el modelo de reflexión de Phong , la intensidad del reflejo especular se calcula como:

k s p e c = R V cos n β = ( R ^ V ^ ) n {\displaystyle k_{\mathrm {spec} }=\|R\|\|V\|\cos ^{n}\beta =({\hat {R}}\cdot {\hat {V}})^{n}}

Donde R es la reflexión especular del vector de luz sobre la superficie y V es el vector del punto de vista.

En el modelo de sombreado de Blinn-Phong , la intensidad de un reflejo especular se calcula como:

k s p e c = N H cos n β = ( N ^ H ^ ) n {\displaystyle k_{\mathrm {spec} }=\|N\|\|H\|\cos ^{n}\beta =({\hat {N}}\cdot {\hat {H}})^{n}}

Donde N es la normal de la superficie lisa y H es la dirección del medio ángulo (el vector de dirección a mitad de camino entre L , el vector de la luz, y V , el vector del punto de vista).

El número n se denomina exponente de Phong y es un valor elegido por el usuario que controla la aparente suavidad de la superficie. Estas ecuaciones implican que la distribución de las normales de las microfacetas es una distribución aproximadamente gaussiana (para valores grandes ) o una distribución aproximadamente de tipo II de Pearson del ángulo correspondiente. [1] Si bien se trata de una heurística útil y produce resultados creíbles, no es un modelo basado en la física . n {\displaystyle n}

Otra fórmula similar, pero calculada de forma diferente:
k = ( L R ) n = [ L ( E 2 N ( N E ) ) ] n , {\displaystyle k=({\vec {L}}\cdot {\vec {R}})^{n}=[{\vec {L}}\cdot ({\vec {E}}-2{\vec {N}}({\vec {N}}\cdot {\vec {E}}))]^{n},}
donde R es un vector de reflexión del ojo, E es un vector del ojo ( vector de vista ), N es un vector normal de la superficie . Todos los vectores están normalizados ( ). L es un vector de luz. Por ejemplo, entonces: E = N = 1 {\displaystyle \|{\vec {E}}\|=\|{\vec {N}}\|=1} N = { 0 ; 1 ; 0 } ; E = { 3 2 ; 1 2 ; 0 } ; L = { 0.6 ; 0.8 ; 0 } ; n = 3 {\displaystyle {\vec {N}}=\{0;\;1;\;0\};\;\;{\vec {E}}=\{{\frac {\sqrt {3}}{2}};\;{\frac {1}{2}};\;0\};\;\;{\vec {L}}=\{-0.6;\;0.8;\;0\};\;\;n=3}
k = [ L ( E 2 N ( N E ) ) ] n = [ L ( E 2 N ( 0 3 2 + 1 0.5 + 0 0 ) ) ] 3 = {\displaystyle k=[{\vec {L}}\cdot ({\vec {E}}-2{\vec {N}}({\vec {N}}\cdot {\vec {E}}))]^{n}=[{\vec {L}}\cdot ({\vec {E}}-2{\vec {N}}(0\cdot {\frac {\sqrt {3}}{2}}+1\cdot 0.5+0\cdot 0))]^{3}=}
= [ L ( E N ) ] 3 = [ L ( { 3 2 0 ; 1 2 1 ; 0 0 } ) ] 3 = [ 0.6 3 2 + 0.8 ( 0.5 ) + 0 0 ] 3 = ( 0.5196 0.4 ) 3 = 0.9196 3 = 0.7777. {\displaystyle =[{\vec {L}}\cdot ({\vec {E}}-{\vec {N}})]^{3}=[{\vec {L}}\cdot (\{{\frac {\sqrt {3}}{2}}-0;\;{\frac {1}{2}}-1;\;0-0\})]^{3}=[-0.6\cdot {\frac {\sqrt {3}}{2}}+0.8\cdot (-0.5)+0\cdot 0]^{3}=(-0.5196-0.4)^{3}=0.9196^{3}=0.7777.}
La fórmula aproximada es la siguiente:
k = ( N H ) n = ( N ( ( L + E ) / 2 ) ) n = ( N ( ( { 0.6 + 3 2 ; 0.8 + 0.5 ; 0 + 0 } ) / 2 ) ) 3 = ( N ( ( { 0.266 ; 1.3 ; 0 } ) / 2 ) ) 3 = {\displaystyle k=({\vec {N}}\cdot {\vec {H}})^{n}=({\vec {N}}\cdot (({\vec {L}}+{\vec {E}})/2))^{n}=({\vec {N}}\cdot ((\{-0.6+{\frac {\sqrt {3}}{2}};\;0.8+0.5;\;0+0\})/2))^{3}=({\vec {N}}\cdot ((\{0.266;\;1.3;\;0\})/2))^{3}=}
= ( N ( { 0.133 ; 0.65 ; 0 } ) ) 3 = ( 0 0.133 + 1 0.65 + 0 ) 3 = 0.65 3 = 0.274625. {\displaystyle =({\vec {N}}\cdot (\{0.133;\;0.65;\;0\}))^{3}=(0\cdot 0.133+1\cdot 0.65+0)^{3}=0.65^{3}=0.274625.}
Si el vector H está normalizado entonces H { 0.133 ; 0.65 ; 0 } H = H { 0.133 ; 0.65 ; 0 } 0.133 2 + 0.65 2 = H { 0.133 ; 0.65 ; 0 } 0.668 = { 0.20048 ; 0.979701 ; 0 } , {\displaystyle {\frac {{\vec {H}}\{0.133;\;0.65;\;0\}}{\|{\vec {H}}\|}}={\frac {{\vec {H}}\{0.133;\;0.65;\;0\}}{\sqrt {0.133^{2}+0.65^{2}}}}={\frac {{\vec {H}}\{0.133;\;0.65;\;0\}}{0.668}}=\{0.20048;0.979701;0\},}
k = ( N H ) n = ( 0 0.2 + 1 0.9797 + 0 0 ) 3 = 0.979701 3 = 0.940332. {\displaystyle k=({\vec {N}}\cdot {\vec {H}})^{n}=(0\cdot 0.2+1\cdot 0.9797+0\cdot 0)^{3}=0.979701^{3}=0.940332.}

Distribución gaussiana

Se puede crear un modelo ligeramente mejor de distribución de microfacetas utilizando una distribución gaussiana . [ cita requerida ] La función habitual calcula la intensidad del reflejo especular como:

k s p e c = e ( ( N , H ) m ) 2 {\displaystyle k_{\mathrm {spec} }=e^{-\left({\frac {\angle (N,H)}{m}}\right)^{2}}}

donde m es una constante entre 0 y 1 que controla la aparente suavidad de la superficie. [2]

Distribución de Beckmann

Un modelo basado físicamente de la distribución de microfacetas es la distribución de Beckmann: [3]

k s p e c = exp ( tan 2 ( α ) / m 2 ) π m 2 cos 4 ( α ) ,   α = arccos ( N H ) {\displaystyle k_{\mathrm {spec} }={\frac {\exp {\left(-\tan ^{2}(\alpha )/m^{2}\right)}}{\pi m^{2}\cos ^{4}(\alpha )}},~\alpha =\arccos(N\cdot H)}

donde m es la pendiente rms de las microfacetas de la superficie (la rugosidad del material). [4] En comparación con los modelos empíricos anteriores, esta función "da la magnitud absoluta de la reflectancia sin introducir constantes arbitrarias; la desventaja es que requiere más cálculos". [5] Sin embargo, este modelo se puede simplificar ya que . Observe también que el producto de y una función de distribución de superficie está normalizada sobre la semiesfera que obedece esta función. tan 2 ( α ) / m 2 = 1 cos 2 ( α ) cos 2 ( α ) m 2 {\displaystyle \tan ^{2}(\alpha )/m^{2}={\frac {1-\cos ^{2}(\alpha )}{\cos ^{2}(\alpha )m^{2}}}} cos ( α ) {\displaystyle \cos(\alpha )}

Distribución anisotrópica de Heidrich-Seidel

La distribución Heidrich–Seidel [6] es una distribución anisotrópica simple, basada en el modelo Phong. Se puede utilizar para modelar superficies que tienen pequeñas ranuras o fibras paralelas, como el metal cepillado , el satén y el cabello.

Parámetros

Parámetros de entrada:

  • D = Dirección del hilo (en los documentos originales aparece como T )
  • s = exponente de brillo. Los valores están entre 0 e infinito.
  • N = Normal de superficie real
  • L = Vector del punto a la luz
  • V = Vector desde el punto hasta el espectador
  • T = Dirección de la rosca basada en la normal de la superficie real.
  • P = Proyección del vector L sobre el plano normal T (en el artículo original aparece como N' ).
  • R = Rayo de luz entrante reflejado contra T. El rayo de luz entrante es igual a L negativo .

Todos los vectores son unitarios.

Condiciones

Si no se cumplen algunas de las condiciones de la lista, el color es cero.

  • 0 < N V {\displaystyle 0<N\cdot V}
  • 0 < P V {\displaystyle 0<P\cdot V}
  • 0 < R V {\displaystyle 0<R\cdot V}

Nota: Esta lista no está optimizada.

Fórmula

Primero debemos corregir la dirección original de la fibra D para que sea perpendicular a la normal de la superficie real N. Esto se puede hacer proyectando la dirección de la fibra sobre el plano con la normal N :

T = D + ( D N ) N D + ( D N ) N {\displaystyle T={\frac {D+(-D\cdot N)*N}{\|D+(-D\cdot N)*N\|}}}

Se espera que la fibra sea cilíndrica. Tenga en cuenta que la normal de la fibra depende de la posición de la luz. La normal de la fibra en un punto determinado es:

P = L + ( L T ) T L + ( L T ) T {\displaystyle P={\frac {L+(-L\cdot T)*T}{\|L+(-L\cdot T)*T\|}}}

Rayo reflejado necesario para el cálculo especular:

R = L + 2 ( L P ) P L + 2 ( L P ) P {\displaystyle R={\frac {-L+2*(L\cdot P)*P}{\|-L+2*(L\cdot P)*P\|}}}
Cálculo final
k d i f f = L P {\displaystyle k_{\mathrm {diff} }=L\cdot P}
k s p e c = ( V R ) s {\displaystyle k_{\mathrm {spec} }=(V\cdot R)^{s}}

Mejoramiento

El cálculo de R y P es una operación costosa. Para evitar su cálculo, la fórmula original se puede reescribir de la siguiente forma:

Difuso
k d i f f = L P = L L + ( L T ) T L + ( L T ) T = . . . = 1 ( L T ) 2 {\displaystyle k_{\mathrm {diff} }=L\cdot P=L\cdot {\frac {L+(-L\cdot T)*T}{\|L+(-L\cdot T)*T\|}}=...={\sqrt {1-(L\cdot T)^{2}}}}
De espejo
k s p e c = ( V R ) s = ( 1 ( L T ) 2 1 ( V T ) 2 ( L T ) ( V T ) ) s = [ sin ( ( L , T ) ) sin ( ( V , T ) ) cos ( ( L , T ) ) cos ( ( V , T ) ) ] s = ( cos ( ( L , T ) + ( V , T ) ) ) s {\displaystyle {\begin{aligned}k_{\mathrm {spec} }&{}=(V\cdot R)^{s}\\&{}=({\sqrt {1-(L\cdot T)^{2}}}*{\sqrt {1-(V\cdot T)^{2}}}-(L\cdot T)*(V\cdot T))^{s}\\&{}=\left[\sin(\angle (L,T))\sin(\angle (V,T))-\cos(\angle (L,T))\cos(\angle (V,T))\right]^{s}\\&{}=(-\cos(\angle (L,T)+\angle (V,T)))^{s}\end{aligned}}}

Comentarios

La T se puede observar como una distribución normal y, después, es posible aplicar otra BRDF que no sea Phong. La distribución anisotrópica se debe utilizar junto con una distribución isotrópica como la distribución Phong para producir el reflejo especular correcto. k s p e c {\displaystyle k_{\mathrm {spec} }}

Distribución anisotrópica de Ward

La distribución anisotrópica de Ward [1] utiliza dos parámetros controlables por el usuario α x y α y para controlar la anisotropía. Si los dos parámetros son iguales, se obtiene un resalte isotrópico. El término especular en la distribución es:

k s p e c = ρ s ( N L ) ( N V ) N L 4 π α x α y exp [ 2 ( H X α x ) 2 + ( H Y α y ) 2 1 + ( H N ) ] {\displaystyle k_{\mathrm {spec} }={\frac {\rho _{s}}{\sqrt {(N\cdot L)(N\cdot V)}}}{\frac {N\cdot L}{4\pi \alpha _{x}\alpha _{y}}}\exp \left[-2{\frac {\left({\frac {H\cdot X}{\alpha _{x}}}\right)^{2}+\left({\frac {H\cdot Y}{\alpha _{y}}}\right)^{2}}{1+(H\cdot N)}}\right]}

El término especular es cero si N · L < 0 o N · V < 0. Todos los vectores son vectores unitarios. El vector V es la dirección de observación, L es la dirección desde el punto de la superficie hasta la luz, H es la dirección del semiángulo entre V y L , N es la normal de la superficie y X e Y son dos vectores ortogonales en el plano normal que especifican las direcciones anisotrópicas.

Modelo de Cook-Torrance

El modelo de Cook-Torrance [5] utiliza un término especular de la forma

k s p e c = F π D G ( V N ) ( N L ) {\displaystyle k_{\mathrm {spec} }={\frac {F}{\pi }}{\frac {DG}{(V\cdot N)(N\cdot L)}}} .

Aquí, D es el factor de distribución de Beckmann, como se indicó anteriormente, y F es el término de Fresnel . Por razones de rendimiento, en gráficos 3D en tiempo real, se suele utilizar la aproximación de Schlick para aproximar el término de Fresnel.

G es el término de atenuación geométrica, que describe el sombreado propio debido a las microfacetas y tiene la forma

G = min ( 1 , 2 ( H N ) ( V N ) V H , 2 ( H N ) ( L N ) V H ) {\displaystyle G=\min {\left(1,{\frac {2(H\cdot N)(V\cdot N)}{V\cdot H}},{\frac {2(H\cdot N)(L\cdot N)}{V\cdot H}}\right)}} .

En estas fórmulas, V es el vector hacia la cámara o el ojo, H es el vector de medio ángulo, L es el vector hacia la fuente de luz y N es el vector normal, y α es el ángulo entre H y N.

Utilizando múltiples distribuciones

Si se desea, se pueden combinar diferentes distribuciones (normalmente, utilizando la misma función de distribución con diferentes valores de m o n ) utilizando un promedio ponderado. Esto resulta útil para modelar, por ejemplo, superficies que tienen pequeñas zonas lisas y rugosas en lugar de una rugosidad uniforme.

Véase también

Referencias

  1. ^ Richard Lyon, "Reformulación del sombreado Phong para simplificar el renderizador de hardware", Informe técnico de Apple n.° 43, Apple Computer, Inc. 1993 PDF
  2. ^ Glassner, Andrew S. (ed.). Introducción al trazado de rayos. San Diego: Academic Press Ltd, 1989. pág. 148.
  3. ^ Petr Beckmann, André Spizzichino, La dispersión de ondas electromagnéticas desde superficies rugosas, Pergamon Press, 1963, 503 pp (republicado por Artech House, 1987, ISBN  978-0-89006-238-8 ).
  4. ^ Foley et al. Gráficos por computadora: principios y práctica . Menlo Park: Addison-Wesley, 1997. pág. 764.
  5. ^ ab R. Cook y K. Torrance. "Un modelo de reflectancia para gráficos por computadora". Computer Graphics (SIGGRAPH '81 Proceedings), Vol. 15, No. 3, julio de 1981, págs. 301–316.
  6. ^ Heidrich, Wolfgang; Seidel, Hans-Peter. "Representación eficiente de superficies anisotrópicas mediante hardware de gráficos por ordenador" (PDF) . Grupo de gráficos por ordenador, Universidad de Erlangen . Archivado desde el original (PDF) el 1 de noviembre de 2011.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Specular_highlight&oldid=1248112617"