Modelo de reflexión de Phong
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 los gráficos por computadora en 3D, a veces se lo denomina "sombreado Phong", especialmente 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 doctorado de 1975. disertación. Se publicó junto con un método para interpolar el cálculo de 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 que no sea el 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.
Descripción
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 reflejos especulares pequeños e intensos, mientras que las superficies opacas tienen reflejos grandes que se desvanecen más gradualmente. El modelo también incluye un término ambiente para dar cuenta de la pequeña cantidad de luz que se dispersa por toda la escena.
Para cada fuente de luz en la escena, componentes is{displaystyle i_{text{s}}} y id{displaystyle i_{text{d}} se definen como las intensidades (a menudo como valores RGB) de los componentes especulativos y difusos de las fuentes de luz, respectivamente. Un solo mandato ia{displaystyle i_{text{a}} controla la iluminación ambiental; a veces se calcula como una suma de contribuciones de todas las fuentes de luz.
Para cada material de la escena, se definen los siguientes parámetros:
- ks{displaystyle k_{text{s}}, que es una constante de reflexión especular, la relación de reflexión del término especulativo de la luz entrante,
- kd{displaystyle k_{text{d}}, que es una constante de reflexión difusa, la relación de reflexión del término difuso de la luz entrante (reflexión lambertiana),
- ka{displaystyle k_{text{a}}, que es una constante de reflexión ambiental, la relación de reflexión del término ambiente presente en todos los puntos de la escena renderizada, y
- α α {displaystyle alpha }, que es un shininess constante para este material, que es más grande para superficies que son más suaves y más parecidos al espejo. Cuando esta constante es grande el punto culminante es pequeño.
Además, tenemos
- luces{displaystyle {text{lights}}}, que es el conjunto de todas las fuentes de luz,
- L^ ^ m{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}, que es el vector de dirección desde el punto en la superficie hacia cada fuente de luz (m{displaystyle m} especifica la fuente de luz),
- N^ ^ {displaystyle {hat {N}}}, que es lo normal en este punto en la superficie,
- R^ ^ m{fnMicrosoft Sans Serif}}, que es la dirección que un rayo de luz perfectamente reflejado tomaría desde este punto en la superficie, y
- V^ ^ {displaystyle {hat {fn}}, que es la dirección apuntando hacia el espectador (como una cámara virtual).
Luego el modelo de reflexión Phong proporciona una ecuación para calcular la iluminación de cada punto de superficie Ip{displaystyle Yo...:
- Ip=kaia+.. m▪ ▪ luces()kd()L^ ^ m⋅ ⋅ N^ ^ )im,d+ks()R^ ^ m⋅ ⋅ V^ ^ )α α im,s).{displaystyle Yo... {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {cdot {hat {fn}} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {R}_{m}cdot {hat {fn}}}} {fnMicrosoft Sans Serif}} {fnMicrosoft Sans Serif}} {fnMicrosoft Sans Serif}} {fnMicrosoft Sans Serif}} {fnMicrosoft Sans Serif}}}} {fnMicrosoft Sans Serif}} {f}}} {f}}}}}}} {f}}}}}}}}}} {f}}}}}}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}} {f} {f}}}}}}}}}}}}} {f}} {f}}}}}}}}}}\\\\\f}}}}}}}}}}}}}}}}}}}}}}}}}}}}\\\f}}}}}}}}
donde la dirección vector R^ ^ m{fnMicrosoft Sans Serif}} se calcula como el reflejo de L^ ^ m{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} sobre la superficie caracterizada por la superficie normal N^ ^ {displaystyle {hat {N}}} utilizando
- R^ ^ m=2()L^ ^ m⋅ ⋅ N^ ^ )N^ ^ − − L^ ^ m{displaystyle {hat {}_{m}=2({hat {fn}cdot {fnh} {fn}} {fn}} {fn}} {fn}} {fn}}} {fn}fn}} {fn}fnfn}}cdot {cdot {f}} {cdot} {fn}}}}} {f}}}f} {cdot} {cdot} {cdot} {f} {f}} {f}} {f}}f}}}} {cdot} {cdot} {f}}f}}}}}}}}}}}} {cdot} {cdot} {cdot {f} {cdot {cdot {cdot {cdot {cdot {cdot {cdot}}}f}}}}}}}}}}}}}} {N}-{hat {L}_{m}
y los sombreros indican que los vectores están normalizados. El término difuso no se ve afectado por la dirección del espectador (V^ ^ {displaystyle {hat {fn}}). El término especulativo es grande sólo cuando la dirección del espectador (V^ ^ {displaystyle {hat {fn}}) está alineado con la dirección de reflexión R^ ^ m{fnMicrosoft Sans Serif}}. Su alineación es medida por el α α {displaystyle alpha } poder del cosino del ángulo entre ellos. El cosino del ángulo entre los vectores normalizados R^ ^ m{fnMicrosoft Sans Serif}} y V^ ^ {displaystyle {hat {fn}} es igual a su producto de puntos. Cuando α α {displaystyle alpha } es grande, en el caso de un reflejo casi parecido al espejo, el punto de vista especulativo será pequeño, porque cualquier punto de vista no alineado con el reflejo tendrá un cosino menos que uno que se acerca rápidamente cero cuando se eleva a un alto poder.
Aunque la formulación anterior es la forma común 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 a menudo es el caso en gráficos de computadora, esta ecuación se modela por separado para intensidades R, G y B, permitiendo diferentes reflexiones constantes ka,{displaystyle k_{text{a}},} kd{displaystyle k_{text{d}} y ks{displaystyle k_{text{s}} para los diferentes canales de color.
alteraciones computacionalmente más eficientes
Al implementar el modelo de reflexión Phong, hay una serie de métodos para aproximar el modelo, en lugar de implementar las fórmulas exactas, que pueden acelerar el cálculo; Por ejemplo, el modelo de reflexión Blinn -Phong es una modificación del modelo de reflexión Phong, que es más eficiente si el espectador y la fuente de luz se tratan para estar en el infinito.
Otra aproximación que aborda el cálculo de la exponencia en el término especular es lo siguiente: teniendo en cuenta que el término especular debe tenerse en cuenta solo si su producto de puntos es positivo, puede aproximarse como
- max()0,R^ ^ m⋅ ⋅ V^ ^ )α α =max()0,1− − λ λ )β β γ γ =()max()0,1− − λ λ )β β )γ γ .. max()0,1− − β β λ λ )γ γ {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}=máx(0,1-lambda)} {betagamma }=left(max(0,1-lambda)}{gamma }beta }
Donde λ λ =1− − R^ ^ m⋅ ⋅ V^ ^ {displaystyle lambda =1-{hat {R}_{m}cdot {fnK}, y β β =α α /γ γ {displaystyle beta =alpha /gamma,} es un número real que no tiene que ser un entero. Si γ γ {displaystyle gamma } es elegido para ser un poder de 2, es decir, γ γ =2n{displaystyle gamma =2^{n} Donde n{displaystyle n} es un entero, entonces la expresión ()1− − β β λ λ )γ γ {displaystyle (1-beta lambda)^{gamma } puede ser calculado más eficientemente por squaring ()1− − β β λ λ )n{displaystyle (1-beta lambda) No. veces, es decir.
- ()1− − β β λ λ )γ γ =()1− − β β λ λ )2n=()1− − β β λ λ )2⋅ ⋅ 2⋅ ⋅ ...... ⋅ ⋅ 2⏞ ⏞ n=()...... ()()1− − β β λ λ )2)2...... )2⏞ ⏞ n.{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fn} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} ^{n}
Esta aproximación del término especulativo sostiene para un número suficientemente grande, entero γ γ {displaystyle gamma } (típicamente, 4 o 8 serán suficientes).
Además, el valor λ λ {displaystyle lambda } puede ser aproximado como λ λ =()R^ ^ m− − V^ ^ )⋅ ⋅ ()R^ ^ m− − V^ ^ )/2{displaystyle lambda =({hat {R}_{m}-{hat {V})cdot ({hat {R}_{m}-{hat {V}})/2}, o como λ λ =()R^ ^ m× × V^ ^ )⋅ ⋅ ()R^ ^ m× × V^ ^ )/2.{displaystyle lambda =({hat {R}_{m}times {hat {V})cdot ({hat {R}_{m}times {hat {V}})/2.} Este último es mucho menos sensible a los errores de normalización en R^ ^ m{fnMicrosoft Sans Serif}} y V^ ^ {displaystyle {hat {fn}} que Phong λ λ =1− − R^ ^ m⋅ ⋅ V^ ^ {displaystyle lambda =1-{hat {R}_{m}cdot {fnK} es, y prácticamente no requiere R^ ^ m{fnMicrosoft Sans Serif}} y V^ ^ {displaystyle {hat {fn}} para ser normalizado excepto para mallas triángulo muy resolviendo.
Este método sustituye algunas multiplicaciones por una exponenciación variable y elimina la necesidad de una normalización vectorial precisa basada en raíces cuadradas recíprocas.
Modelo de reflexión Phong inversa
El modelo de reflexión de Phong en combinación con el sombreado de Phong es una aproximación al sombreado de objetos en la vida real. Esto significa que la ecuación de Phong puede relacionar el sombreado visto en una fotografía con las superficies normales del objeto visible. Inverso se refiere al deseo de estimar las superficies normales 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 superficial (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 el número 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 deseamos calcular lo normal N=[Nx,Nz]{displaystyle N=[N_{x},N_{z}} en una línea en el objeto. Asumimos sólo una luz, sin reflexión especulativa y parámetros de reflexión uniformes conocidos (aproximados). Luego podemos simplificar la ecuación de Phong para:
- Ip()x)=Ca+Cd()L()x)⋅ ⋅ N()x)){displaystyle I_{p}(x)=C_{a}+C_{d}(L(x)cdot N(x)}
Con Ca{displaystyle C_{a} una constante igual a la luz ambiente y Cd{displaystyle C_{d} una constante igual a la reflexión de la difusión. Podemos reescribir la ecuación para:
- ()Ip()x)− − Ca)/Cd=L()x)⋅ ⋅ N()x){displaystyle (I_{p}(x)-C_{a}/C_{d}=L(x)cdot N(x)}
Que se puede reescribir para una línea a través del objeto cilíndrico como:
- ()Ip− − Ca)/Cd=LxNx+LzNz{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 L=[0.71,0.71]{displaystyle L=[0.71,0.71] tenemos dos ecuaciones con dos desconocidos.
- ()Ip− − Ca)/Cd=0.71Nx+0.71Nz{displaystyle (I_{p}-C_{a})/C_{d}=0.71N_{x}+0.71N_{z}
- 1=()Nx2+Nz2){displaystyle 1={sqrt}}}}
Debido a las potencias de dos en la ecuación, hay dos soluciones posibles 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. Así, 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 N=[Nx,NSí.,Nz]{displaystyle N=[N_{x},N_{y},N_{z}}. Entonces las dos ecuaciones todavía permiten que la normalidad gira alrededor del vector de la vista, por lo que se necesitan restricciones adicionales de información geométrica previa. Por ejemplo, en el reconocimiento facial, esas limitaciones geométricas se pueden obtener utilizando el análisis principal de componentes (PCA) en una base de datos de mapas de profundidad de caras, permitiendo sólo soluciones normales de superficie que se encuentran en una población normal.
aplicaciones
El modelo de reflexión Phong se usa a menudo junto con las superficies de sombreado de phong a sombra en el software de gráficos de computadora 3D. Además de esto, también se puede usar para otros fines. Por ejemplo, se ha utilizado para modelar el reflejo de la radiación térmica de las sondas pioneras en un intento de explicar la anomalía pionera.
Contenido relacionado
Pontiac (automóvil)
Transporte en Arabia Saudita
Codigo de DIVISION DE ACCESO multiple