¿Cómo implementaría el efecto de la aberración cromática con sombreadores?
¿La resolución del mundo con diferentes distancias de enfoque para cada color resolvería el problema (tal vez con el uso de un solo paso de representación de profundidad)?
¿Cómo implementaría el efecto de la aberración cromática con sombreadores?
¿La resolución del mundo con diferentes distancias de enfoque para cada color resolvería el problema (tal vez con el uso de un solo paso de representación de profundidad)?
Respuestas:
La aberración cromática se produce cuando una lente no puede enfocar todos los colores al mismo punto focal. Una forma sencilla de simular este efecto y representarlo como un postproceso rápido a pantalla completa es aplicar un desplazamiento a cada canal de color en un sombreador de fragmentos.
Al utilizar un desplazamiento diferente para cada canal, puede lograr un facsímil razonable del efecto deseado. Un ejemplo de esta técnica se puede encontrar aquí ; el sombreador de fragmentos se vería así:
Sin embargo, este simple truco no tiene en cuenta el hecho de que la aberración cromática es un efecto de lente: para obtener una mejor simulación, en realidad querrás hacer algo para que actúe como la lente. Esto es similar a cómo renderiza objetos que son reflexivos o refractivos. En consecuencia, un típico sombreador de reflexión / refracción puede ser la base para implementar la aberración cromática.
Normalmente, usted calcular un único vector de refracción basada en un vector de vista y algunos se define el índice de refracción , el uso de GLSL refractan función en un vertex shader:
Luego usaría ese vector en un sombreador de fragmentos para realizar una búsqueda de textura de cubo (en un mapa de entorno). Por lo general, esto también se realiza junto con un efecto de reflexión, y combinados utilizan un término computado de Fresnel .
Para simular la aberración cromática, puede realizar tres cálculos de vectores de refracción diferentes , cada uno ligeramente compensado a través de diferentes índices de refracción, en el sombreador de vértices:
Esos tres vectores diferentes se pueden usar para realizar tres búsquedas de mapas de cubos diferentes, que se pueden mezclar de forma similar a como se mezclaron los colores en el ejemplo simple:
Para obtener más detalles, el OpenGL Orange Book está disponible y contiene un ejemplo de los efectos básicos de reflexión y refracción, así como un ejemplo del efecto de aberración cromática.
fuente