Modelo de reflexión de Phong

Algoritmo de sombreado en gráficos por computadora
Ilustración visual de la ecuación de Phong: aquí la luz es blanca, los colores ambiental y difuso son azules y el color especular es blanco, reflejando una pequeña parte de la luz que llega a la superficie, pero solo en áreas muy específicas. La intensidad del componente difuso varía con la dirección de la superficie y el componente ambiental es uniforme (independientemente de la dirección).

El modelo de reflexión Phong (también llamado iluminación Phong o iluminación Phong ) es un modelo empírico de la iluminación local de puntos en una superficie diseñado por el investigador de gráficos por computadora Bui Tuong Phong . En gráficos por computadora en 3D , a veces se lo denomina "sombreado Phong", en particular si el modelo se usa con el método de interpolación del mismo nombre y en el contexto de sombreadores de píxeles u otros lugares donde un cálculo de iluminación puede denominarse " sombreado ".

Historia

El modelo de reflexión de Phong fue desarrollado por Bui Tuong Phong en la Universidad de Utah , quien lo publicó en su tesis doctoral de 1975. [1] [2] Se publicó junto con un método para interpolar el cálculo para cada píxel individual que se rasteriza a partir de un modelo de superficie poligonal; la técnica de interpolación se conoce como sombreado de Phong , incluso cuando se utiliza con un modelo de reflexión distinto al de Phong. Los métodos de Phong se consideraron radicales en el momento de su introducción, pero desde entonces se han convertido en el método de sombreado de referencia de facto para muchas aplicaciones de renderizado. Los métodos de Phong han demostrado ser populares debido a su uso generalmente eficiente del tiempo de cálculo por píxel renderizado.

Conceptos

La reflexión de Phong es un modelo empírico de iluminación local. Describe la forma en que una superficie refleja la luz como una combinación de la reflexión difusa de las superficies rugosas con la reflexión especular de las superficies brillantes. Se basa en la observación informal de Phong de que las superficies brillantes tienen pequeños reflejos especulares intensos , mientras que las superficies opacas tienen grandes reflejos que se desvanecen de forma más gradual. El modelo también incluye un término ambiental para tener en cuenta la pequeña cantidad de luz que se dispersa por toda la escena.

Para cada fuente de luz de la escena, los componentes y se definen como las intensidades (a menudo como valores RGB ) de los componentes especulares y difusos de las fuentes de luz, respectivamente. Un único término controla la iluminación ambiental; a veces se calcula como una suma de las contribuciones de todas las fuentes de luz. i s {\displaystyle i_{\text{s}}} i d {\displaystyle i_{\text{d}}} i a {\displaystyle i_{\text{a}}}

Para cada material de la escena, se definen los siguientes parámetros:

a s {\displaystyle k_{\text{s}}} , que es una constante de reflexión especular, la relación de reflexión del término especular de la luz entrante,
a d {\displaystyle k_{\text{d}}} , que es una constante de reflexión difusa, la relación de la reflexión del término difuso de la luz entrante ( reflectancia lambertiana ),
a a {\displaystyle k_{\text{a}}} , que es una constante de reflexión ambiental, la relación de reflexión del término ambiental presente en todos los puntos de la escena representada, y
alfa {\estilo de visualización \alpha} , que es una constante de brillo para este material, que es mayor para superficies que son más lisas y más parecidas a un espejo. Cuando esta constante es grande, el brillo especular es pequeño.
Vectores para calcular el sombreado Phong y Blinn–Phong

Además, hay

luces {\displaystyle {\text{luces}}} , que es el conjunto de todas las fuentes de luz,
yo ^ metro {\displaystyle {\hat {L}}_{m}} , que es el vector de dirección desde el punto de la superficie hacia cada fuente de luz ( especifica la fuente de luz), metro {\estilo de visualización m}
norte ^ {\displaystyle {\hat {N}}} , que es lo normal en este punto de la superficie,
R ^ metro {\displaystyle {\hat {R}}_{m}} , que es la dirección que tomaría un rayo de luz perfectamente reflejado desde este punto de la superficie, y
V ^ {\displaystyle {\hat {V}}} , que es la dirección que apunta hacia el espectador (como una cámara virtual).

Luego, el modelo de reflexión de Phong proporciona una ecuación para calcular la iluminación de cada punto de la superficie : I pag {\displaystyle I_{\text{p}}}

I pag = a a i a + metro luces ( a d ( yo ^ metro norte ^ ) i metro , d + a s ( R ^ metro V ^ ) alfa i metro , s ) . {\displaystyle I_{\text{p}}=k_{\text{a}}i_{\text{a}}+\sum _{m\;\in ​​\;{\text{luces}}}(k_{\text{d}}({\hat {L}}_{m}\cdot {\hat {N}})i_{m,{\text{d}}}+k_{\text{s}}({\hat {R}}_{m}\cdot {\hat {V}})^{\alpha }i_{m,{\text{s}}}).}

donde el vector de dirección se calcula como la reflexión de sobre la superficie caracterizada por la normal de la superficie utilizando R ^ metro {\displaystyle {\hat {R}}_{m}} yo ^ metro {\displaystyle {\hat {L}}_{m}} norte ^ {\displaystyle {\hat {N}}}

R ^ metro = 2 ( yo ^ metro norte ^ ) norte ^ yo ^ metro {\displaystyle {\hat {R}}_{m}=2({\hat {L}}_{m}\cdot {\hat {N}}){\hat {N}}-{\hat {L}}_{m}}

Los sombreros indican que los vectores están normalizados . El término difuso no se ve afectado por la dirección del observador ( ). El término especular es grande solo cuando la dirección del observador ( ) está alineada con la dirección de reflexión . Su alineación se mide por la potencia del coseno del ángulo entre ellos. El coseno del ángulo entre los vectores normalizados y es igual a su producto escalar . Cuando es grande, en el caso de una reflexión casi similar a un espejo, el resaltado especular será pequeño, porque cualquier punto de vista no alineado con la reflexión tendrá un coseno menor que uno que se acerca rápidamente a cero cuando se eleva a una alta potencia. V ^ {\displaystyle {\hat {V}}} V ^ {\displaystyle {\hat {V}}} R ^ metro {\displaystyle {\hat {R}}_{m}} alfa {\estilo de visualización \alpha} R ^ metro {\displaystyle {\hat {R}}_{m}} V ^ {\displaystyle {\hat {V}}} alfa {\estilo de visualización \alpha}

Aunque la formulación anterior es la forma habitual de presentar el modelo de reflexión de Phong, cada término solo debe incluirse si el producto escalar del término es positivo. (Además, el término especular solo debe incluirse si el producto escalar del término difuso es positivo).

Cuando el color se representa como valores RGB , como suele ser el caso en los gráficos de computadora , esta ecuación generalmente se modela por separado para las intensidades R, G y B, lo que permite diferentes constantes de reflexión y para los diferentes canales de color . a a , {\displaystyle k_{\text{a}},} a d {\displaystyle k_{\text{d}}} a s {\displaystyle k_{\text{s}}}

Al implementar el modelo de reflexión de Phong, existen varios métodos para aproximar el modelo, en lugar de implementar las fórmulas exactas, lo que puede acelerar el cálculo; por ejemplo, el modelo de reflexión de Blinn-Phong es una modificación del modelo de reflexión de Phong, que es más eficiente si se considera que el espectador y la fuente de luz están en el infinito.

Otra aproximación [3] que aborda el cálculo de la exponenciación en el término especular es la siguiente: Considerando que el término especular debe tomarse en cuenta solo si su producto escalar es positivo, se puede aproximar como

máximo ( 0 , R ^ metro V ^ ) alfa = máximo ( 0 , 1 la ) β gamma = ( máximo ( 0 , 1 la ) β ) gamma máximo ( 0 , 1 β la ) gamma {\displaystyle \max(0,{\hat {R}}_{m}\cdot {\hat {V}})^{\alpha }=\max(0,1-\lambda )^{\beta \gamma }=\left(\max(0,1-\lambda )^{\beta }\right)^{\gamma }\approx \max(0,1-\beta \lambda )^{\gamma }}

donde , y es un número real que no tiene por qué ser un entero. Si se elige que sea una potencia de 2, es decir, donde es un entero, entonces la expresión se puede calcular de manera más eficiente elevando al cuadrado por , es decir, la = 1 R ^ metro V ^ {\displaystyle \lambda =1-{\hat {R}}_{m}\cdot {\hat {V}}} β = alfa / gamma {\displaystyle \beta =\alfa /\gamma \,} gamma {\estilo de visualización \gamma} gamma = 2 norte {\displaystyle \gamma = 2^{n}} norte {\estilo de visualización n} ( 1 β la ) gamma {\displaystyle (1-\beta \lambda )^{\gamma }} ( 1 β la )   norte {\displaystyle (1-\beta \lambda )\ n}

( 1 β la ) gamma = ( 1 β la ) 2 norte = ( 1 β la ) 2 2 2 norte = ( ( ( 1 β la ) 2 ) 2 ) 2 norte . {\displaystyle (1-\beta \lambda )^{\gamma }\,=\,(1-\beta \lambda )^{2^{n}}\,=\,(1-\beta \lambda ) ^{\overbrace {\scriptstyle 2\,\cdot \,2\,\cdot \,\dots \,\cdot \,2} ^{n}}\,=\,(\dots ((1-\beta \lambda )\overbrace {^{2})^{2}\dots )^{2}} ^{n}.}

Esta aproximación del término especular es válida para un número entero suficientemente grande (normalmente, 4 u 8 serán suficientes). gamma {\estilo de visualización \gamma}

Además, el valor se puede aproximar como , o como Este último es mucho menos sensible a los errores de normalización en y que el producto escalar basado en Phong [ cita necesaria ] , y prácticamente no requiere que y se normalicen [ cita necesaria ] excepto para mallas triangulares de muy baja resolución. la {\estilo de visualización \lambda} la = ( R ^ metro V ^ ) ( R ^ metro V ^ ) / 2 {\displaystyle \lambda =({\hat {R}}_{m}-{\hat {V}})\cdot ({\hat {R}}_{m}-{\hat {V}})/2} la = ( R ^ metro × V ^ ) ( R ^ metro × V ^ ) / 2. {\displaystyle \lambda =({\hat {R}}_{m}\times {\hat {V}})\cdot ({\hat {R}}_{m}\times {\hat {V}})/2.} R ^ metro {\displaystyle {\hat {R}}_{m}} V ^ {\displaystyle {\hat {V}}} la = 1 R ^ metro V ^ {\displaystyle \lambda =1-{\hat {R}}_{m}\cdot {\hat {V}}} R ^ metro {\displaystyle {\hat {R}}_{m}} V ^ {\displaystyle {\hat {V}}}

Este método sustituye unas cuantas multiplicaciones por una exponenciación variable y elimina la necesidad de una normalización vectorial precisa basada en la raíz cuadrada recíproca.

Modelo inverso

El modelo de reflexión de Phong en combinación con el sombreado de Phong es una aproximación del sombreado de los objetos en la vida real. Esto significa que la ecuación de Phong puede relacionar el sombreado que se ve en una fotografía con las normales de la superficie del objeto visible. Inversa se refiere al deseo de estimar las normales de la superficie dada una imagen renderizada, natural o hecha por computadora.

El modelo de reflexión de Phong contiene muchos parámetros, como el parámetro de reflexión difusa de la superficie ( albedo ), que puede variar dentro del objeto. Por lo tanto, las normales de un objeto en una fotografía solo se pueden determinar introduciendo información adicional, como la cantidad de luces, las direcciones de la luz y los parámetros de reflexión.

Por ejemplo, tenemos un objeto cilíndrico, por ejemplo un dedo, y queremos calcular la normal de una línea sobre el objeto. Suponemos que hay una sola luz, ninguna reflexión especular y parámetros de reflexión uniformes conocidos (aproximados). Podemos entonces simplificar la ecuación de Phong a: norte = [ norte incógnita , norte el ] {\displaystyle N=[N_{x},N_{z}]}

I pag ( incógnita ) = do a + do d ( yo ( incógnita ) norte ( incógnita ) ) {\displaystyle I_{p}(x)=C_{a}+C_{d}(L(x)\cdot N(x))}

Con una constante igual a la luz ambiental y una constante igual a la reflexión por difusión, podemos reescribir la ecuación de la siguiente manera: do a Estilo de visualización C_{a} do d Estilo de visualización C_{d}

( I pag ( incógnita ) do a ) / do d = yo ( incógnita ) norte ( incógnita ) {\displaystyle (I_{p}(x)-C_{a})/C_{d}=L(x)\cdot N(x)}

Lo cual puede reescribirse para una línea que pase por el objeto cilíndrico como:

( I pag do a ) / do d = yo incógnita norte incógnita + yo el norte el {\displaystyle (I_{p}-C_{a})/C_{d}=L_{x}N_{x}+L_{z}N_{z}}

Por ejemplo, si la dirección de la luz está 45 grados por encima del objeto, obtenemos dos ecuaciones con dos incógnitas. yo = [ 0,71 , 0,71 ] {\displaystyle L=[0,71,0,71]}

( I pag do a ) / do d = 0,71 norte incógnita + 0,71 norte el {\displaystyle (I_{p}-C_{a})/C_{d}=0,71N_{x}+0,71N_{z}}
1 = ( norte incógnita 2 + norte el 2 ) {\displaystyle 1={\sqrt {(N_{x}^{2}+N_{z}^{2})}}}

Debido a las potencias de dos en la ecuación, hay dos posibles soluciones para la dirección normal. Por lo tanto, se necesita cierta información previa de la geometría para definir la dirección normal correcta. Las normales están directamente relacionadas con los ángulos de inclinación de la línea sobre la superficie del objeto. Por lo tanto, las normales permiten el cálculo de las alturas relativas de la superficie de la línea sobre el objeto utilizando una integral de línea, si asumimos una superficie continua.

Si el objeto no es cilíndrico, tenemos tres valores normales desconocidos . Entonces, las dos ecuaciones aún permiten que la normal rote alrededor del vector de vista, por lo que se necesitan restricciones adicionales a partir de información geométrica previa. Por ejemplo, en el reconocimiento facial, esas restricciones geométricas se pueden obtener utilizando el análisis de componentes principales (PCA) en una base de datos de mapas de profundidad de rostros, lo que permite solo soluciones normales de superficie que se encuentran en una población normal. [4] norte = [ norte incógnita , norte y , norte el ] {\ Displaystyle N = [N_ {x}, N_ {y}, N_ {z}]}

Aplicaciones

El modelo de reflexión de Phong se utiliza a menudo junto con el sombreado de Phong para sombrear superficies en software de gráficos por ordenador en 3D . Aparte de esto, también se puede utilizar para otros fines. Por ejemplo, se ha utilizado para modelar la reflexión de la radiación térmica de las sondas Pioneer en un intento de explicar la anomalía de Pioneer . [5]

Véase también

Referencias

  1. ^ Bui Tuong Phong, Iluminación para imágenes generadas por computadora, Comunicaciones de ACM 18 (1975), n.º 6, 311–317.
  2. ^ Facultad de Informática de la Universidad de Utah, http://www.cs.utah.edu/school/history/#phong-ref
  3. ^ Lyon, Richard F. (2 de agosto de 1993). "Reformulación del sombreado Phong para simplificar el renderizador de hardware" (PDF) . Consultado el 7 de marzo de 2011 .
  4. ^ Auge, BJ; Spreeuwers, LJ; Veldhuis, RNJ (septiembre de 2009). Jiang, Xiaoyi; Petkov, Nicolai (eds.). Corrección de iluminación basada en modelos para imágenes faciales en escenarios no controlados. Apuntes de conferencias sobre informática. vol. 5702, págs. 33–40. Código bibliográfico : 2009LNCS.5702.....J. doi :10.1007/978-3-642-03767-2. hdl : 11693/26732 . ISBN 978-3-642-03766-5.
  5. ^ F. Francisco; O. Bertolami; PJS Gil; J. Páramos (2012). "Modelado de la contribución térmica reflectiva a la aceleración de la nave espacial Pioneer". Avances en la investigación espacial . 49 (3): 337–346. arXiv : 1103.5222 . Código Bibliográfico :2012AdSpR..49..579S. doi :10.1016/j.asr.2011.10.016.
  • Modelo de reflexión de Phong en Matlab
  • Modelo de reflexión de Phong en GLSL
Obtenido de "https://es.wikipedia.org/w/index.php?title=Modelo_de_reflexión_de_Phong&oldid=1253952959"