TA/Unity
라이팅 모델
프리랜서 디자이너
2020. 7. 7. 11:38
Lambert 라이팅 모델
float lambert_term = max(0, dot(normal, light_direction));
Half Lambert 라이팅 모델
float halflambert_term = dot(normal, lightdirection) * 0.5f + 0.5f
float halflambert_pow_term = pow(dot(normal, lightdirection) * 0.5f + 0.5f, power);
Wrapped Diffuse
float wrapped_diffuse_term = (dot(normal, lightdirection) + w) / (1+w);
Wrapped Diffuse + 에너지 보존법칙
float3 wrappedDiffuse = LightColour * saturate((dot(N, L) + w) / ((1 + w) * (1 + w)));
http://www.gamedevforever.com/150
Oren-Nayar Reflectance Lighting Model
http://www.gamedevforever.com/93
- 좀 더 거친 표면의 Diffuse 표현 -> Oren-Nayar Model
- 일반적인 표면의 Diffuse 표현 -> Lambert Model
- 좀 더 부드러운 표면의 Diffuse 표현 -> Wrapped Diffuse Model