No puedo encontrar una buena razón para esto en ningún lado. El vector de reflexión utilizado en phong tiene una base simple en física. Pero el medio vector utilizado en blinn aparentemente no tiene una base racional, y no constituye una reflexión adecuada. Y, sin embargo, se utiliza en todas las funciones de sombreado llamadas "basadas físicamente". Si hay una buena base física para ello, me gustaría saberlo.
Lo que he podido encontrar son algunas razones:
Es más rápido : hay información mixta sobre esto, pero aun así habría sido una gran razón ... en el año 1998.
Maneja ángulos superiores a 90 grados mejor , por lo que puedo decir, la única razón de esto es porque el término phong se ha utilizado incorrectamente. El producto punto de la reflexión y la vista da un ángulo entre -1 y +1. Por lo general, este ángulo se fija a 0 a 1, esta es la causa directa del problema de 90 grados. Vuelva a normalizar el ángulo en lugar de sujetarlo y obtendrá la cobertura completa de 180 grados. Me niego a creer que una simple operación x * 0.5 + 0.5 haya eludido el mundo de los gráficos durante 40 años.
maneja mejor los bordes : el "problema" de los bordes también existe en la solución blinn, solo en menor grado. La causa principal es la simulación inadecuada de la iluminación del área en el terminador, que debería ser esencial para cualquier sombreador "basado físicamente". Pero incluso en situaciones más simples, una función sigmoidea puede aproximarse correctamente a una línea de terminación suave. Multiplicarlo en un término lambert es incorrecto, ya que atenúa el término especular incorrectamente, esto podría cancelar un término nuevo y conducir a más errores.
Tiene reflejos largos en el borde : me parece que, si bien los reflejos anisotrópicos pueden ser realistas, el parpadeo no es la forma correcta de implementarlos, ya que solo aparecen en el borde. Es simplemente una feliz coincidencia que un error en el término H parezca realista.
Ninguna de estas razones es satisfactoria, quiero resolver esta locura.
Quiero aclarar que no estoy hablando específicamente de blinn y phong , sino de los componentes vectoriales H y R, que se utilizan como base para estos sombreadores y otros.
En realidad, creo que usted mismo enumeró las razones por las cuales Blinn es el valor predeterminado sobre Phong.
De hecho, cada razón que mencionó es, de hecho, un área donde Blinn demuestra ser superior a Phong.
En conjunto, todo esto lleva a que Blinn sea un mejor valor predeterminado que Phong.
¿Blinn es perfecto? ¿Es mejor que Phong?
No.
Pero es un incumplimiento razonable. Siéntase libre de sustituir Phong por Blinn en cualquier renderizador / sombreador que escriba.
fuente
He descubierto la razón por la que se usa el vector H. Desafortunadamente, no es la forma en que se usa en la mayoría de los modelos de sombreado, lo que puede concluirse que es incorrecto.
Para el sombreado con base física, la luz reflejada debe obedecer las ecuaciones de Fresnel. (La mayoría de los sombreadores "basados físicamente" no lo hacen). Las microfacetas también deben obedecer las ecuaciones de Fresnel, que se basan en el ángulo de incidencia de la luz, así como en el índice de refracción de la interfaz para producir un resultado correcto.
De acuerdo con la ley de reflexión, el ángulo de incidencia debe reflejarse con el ángulo de reflexión a lo largo de la superficie normal. Para que un rayo de luz golpee la cámara, lo que sabemos que hizo, debe haber sido reflejado por la luz, de lo que sabemos la dirección. Por lo tanto, la superficie normal debe ser, por deducción, el eje espejo para estas dos direcciones. Esto nos da el medio vector H que se encuentra entre ellos. Calculado normalizando la suma de ambos.
Ahora, al calcular el ángulo entre la dirección de la luz L y el medio vector H, adquirimos el ángulo de incidencia para la reflexión especular de una microfaceta, y podemos atenuarla correctamente utilizando el término fresnel.
Tenga en cuenta que la dirección de la vista es igual a R para esa microfaceta, H no es un término de reflexión. Blinn, Cook, Torrance y Sparrow pueden mamarlo. Phong y Fresnel tenían razón.
fuente