[TA100] Figura 2.4 Explicación detallada del modelo de iluminación empírico tradicional

1. modelo de iluminación

● Un modelo informático que simula el proceso de iluminación natural
● Este curso se puede entender de la siguiente manera: el papel de la luz y las superficies de los objetos
● Clasificación
○ Modelo de iluminación basado físicamente (PBR) (con fórmulas para basarlo)
○ Modelo empírico (algunas aproximaciones se hacen), simulación, por lo que será inexacto)

Historia del desarrollo del modelo de iluminación.
Insertar descripción de la imagen aquí

2. Modelo de iluminación local

1. Definición de iluminación local
● Solo se considera la influencia de la fuente de luz y no se consideran múltiples reflejos de luz
● (Concepto correspondiente: iluminación global = iluminación directa + iluminación indirecta)
Insertar descripción de la imagen aquí

①Reflexión difusa

Cálculo: Teorema del coseno de Lambert
Insertar descripción de la imagen aquí
● Suplemento:
○ En primer lugar, corresponde a un concepto de radiometría en GAMES101
■ La irradiancia se traduce como irradiancia
○ Conclusión de la ley del coseno de Lambert: el ángulo entre n (dirección normal) y l (dirección de iluminación) determina la luz y sombra

②Elemento resaltado (reflexión especular)

Insertar descripción de la imagen aquí
● El elemento resaltado está relacionado con la dirección de la luz l
● Suplemento
○ En el modelo blinn-phong, se introduce un "vector de medio rango" para reemplazar el cálculo de la reflexión
○ La función del índice de brillo: controlar el tamaño de la destacar. (Este es el índice p en el modelo de teléfono GAMES101-blinn)

③Luz ambiental

Insertar descripción de la imagen aquí

④Autoiluminación

Insertar descripción de la imagen aquí

3. Descripción general del efecto general de la iluminación local.
Insertar descripción de la imagen aquí

3. Modelo de iluminación clásico

1.modelo Lambert

Insertar descripción de la imagen aquí

//定义顶点shader
			v2f vert(a2v v)
			{
    
    
				v2f o;
				o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
				//把法线转化到世界空间
				float3 worldNormal = mul(v.normal, (float3x3)_World2Object);
				//归一化法线
				worldNormal = normalize(worldNormal);
				//把光照方向归一化
				fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);
				//根据兰伯特模型计算顶点的光照信息,dot可能有负值,小于0的部分可以理解为看不见,直接取0
				fixed3 lambert = max(0.0, dot(worldNormal, worldLightDir));
				//最终输出颜色为lambert光强*材质diffuse颜色*光颜色
				o.color = fixed4(lambert * _Diffuse.xyz * _LightColor0.xyz, 1.0);
				return o;
			}
 
			//定义片元shader
			fixed4 frag(v2f i) : SV_Target
			{
    
    
				return i.color;
			}
 
			//使用vert函数和frag函数
			#pragma vertex vert
			#pragma fragment frag	
 
			ENDCG
		}
 
	}


2.modelo de teléfono

Insertar descripción de la imagen aquí

 //顶点着色器
                v2f vert(a2v v){
    
    
                    v2f o;
                    //顶点转换到裁切空间坐标
                    o.pos = UnityObjectToClipPos(v.vertex);
                    //顶点法线转换到世界空间
                    o.worldNormal = UnityObjectToWorldNormal(v.normal);
                    //顶点位置转换到世界空间坐标
                    o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
                    //顶点着色器纹理的UV坐标
                    o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
                    return o;
                }

                //片元逐像素实现
                fixed4 frag(v2f i) : SV_Target {
    
    
                    //世界空间下法线方向
                    fixed3 worldNormal = normalize(i.worldNormal);
                    //世界空间下光照方向
                    fixed3 worldLightDir = normalize(UnityWorldSpaceLightDir(i.worldPos));
                    
                    //tex2D()纹理采样
                    //得到材质反射率
                    fixed3 albedo = tex2D(_MainTex, i.uv).rgb * _Color.rgb;
                    //得到光照下材质反射率
                    fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz * albedo;
                    //计算环境光
                    fixed3 diffuse = _LightColor0.rgb * albedo * max(0, dot(worldNormal, worldLightDir));

                    fixed3 viewDir = normalize(UnityWorldSpaceLightDir(i.worldPos));
                    fixed3 halfDir = normalize(worldLightDir + viewDir);
                    //计算高光反射
                    fixed3 specular = _LightColor0.rgb * _Specular.rgb * pow(max(0,dot(worldNormal, halfDir)), _Gloss);            
                    return fixed4(ambient + diffuse + specular, 1.0);			
                }
             

3.Modelo de teléfono Blinn

Insertar descripción de la imagen aquí
● El modelo Phong se ha mejorado y los vectores de reflexión no se utilizan para calcular las luces
● Clave: se introduce el vector de rango medio h

● Cálculo del vector de medio rango: Suma la dirección de iluminación y la dirección de observación, y luego normaliza.
● NdotH: Es el coseno del ángulo entre el vector de medio rango y el vector normal. Obtener la dirección destacada

La diferencia entre el modelo 4Phong y el modelo Blinn-Phong

Insertar descripción de la imagen aquí

5.Modelo Gourand

Insertar descripción de la imagen aquí

6.modelo plano

Insertar descripción de la imagen aquí

7. Visualización de los modelos de iluminación mencionados.

Insertar descripción de la imagen aquí

El papel de la conservación de energía en los modelos básicos de iluminación.

Primero comprenda el concepto de conservación de energía en el renderizado.

● En el modelo de iluminación tradicional, la parte de reflexión difusa supone que la luz se reflejará uniformemente en diferentes direcciones.
● Sin embargo, en la teoría de las microsuperficies, se cree que después de alcanzar la escala microscópica, cualquier plano puede representarse mediante pequeños espejos llamados microfacetas. Dependiendo de la rugosidad del plano, la orientación de estos pequeños espejos puede ser bastante inconsistente. Como se muestra en la figura, el efecto es: cuanto más rugoso sea un plano, más caótica será la disposición de las microfacetas en este plano. El impacto de la orientación desordenada de estos pequeños espejos es que cuando nos referimos específicamente a luz especular/reflexión especular, la luz incidente tiende a dispersarse en direcciones completamente diferentes, produciendo así una reflexión especular con un rango de distribución más amplio. Por el contrario, para un plano liso, la luz generalmente tenderá a reflejarse en la misma dirección, lo que resultará en reflejos más pequeños y más nítidos: ● Suponemos
Insertar descripción de la imagen aquí
un parámetro de rugosidad y luego utilizamos métodos estadísticos para realizar una estimación aproximada de la rugosidad de las microfacetas. Con base en la rugosidad de un plano, se calcula la probabilidad de que la dirección de un determinado vector sea consistente con la dirección de orientación promedio del microplano. Este vector es el vector de rango medio h en el modelo de Blinn-Phong.
● Cuanto más consistente sea la dirección de orientación de las microfacetas con la dirección del vector intermedio, más fuerte y nítido será el efecto de reflexión especular. Luego agregue un parámetro de rugosidad entre 0 y 1, para que podamos estimar aproximadamente la orientación de las microfacetas:

El método de aproximación de microfacetas utiliza una forma de conservación de energía: la energía de la luz saliente nunca puede exceder la energía de la luz incidente (excepto en la superficie luminosa). Como se muestra en la figura, podemos ver que a medida que aumenta la rugosidad, el área de reflexión especular aumentará, pero el brillo de la reflexión especular disminuirá. Si la intensidad de reflexión especular (Intensidad especular) de cada píxel es la misma independientemente del tamaño del perfil de reflexión, entonces el plano rugoso emitirá demasiada energía, lo que viola la ley de conservación de energía. Esta es la razón por la que, como podemos ver, la reflexión especular de una superficie lisa es más fuerte y la reflexión de una superficie rugosa es tenue.

Insertar descripción de la imagen aquí
● Conservación de Energía: La energía de la luz saliente nunca puede exceder la energía de la luz incidente (excepto en la superficie luminosa).
● Como se muestra en la figura anterior, a medida que aumenta la rugosidad, el área de reflexión especular aumentará, pero el brillo de la reflexión especular disminuirá. Si la intensidad de reflexión especular (Intensidad especular) de cada píxel es la misma independientemente del tamaño del perfil de reflexión, entonces el plano rugoso emitirá demasiada energía, lo que viola la ley de conservación de energía.

En cuanto al papel de la conservación de energía en el modelo de iluminación tradicional, creo que se puede decir que
● Permitir que la gente conozca las imprecisiones del modelo empírico, a fin de mejorar el modelo para lograr efectos más realistas.
● Introducir el concepto de PBR.
● Para cumplir con la ley de conservación de la energía, debemos distinguir entre reflexión especular (reflexión) y reflexión difusa (refracción).
● Cuando un rayo de luz incide sobre una superficie, se separa en una parte refractada y una parte reflectante.
○ La parte reflejada es la parte de la luz que se reflejará directamente sin entrar en el avión, es lo que llamamos iluminación especular.
○ La parte refractada es la parte restante de la luz que entrará en la superficie y será absorbida, es lo que llamamos iluminación difusa.

Supongo que te gusta

Origin blog.csdn.net/weixin_45810196/article/details/131085739
Recomendado
Clasificación