Lighitng Model - NPR

비 물리기반

Lambert - 람버트

  • Johann Heinrich Lambert
  • 1760 - Photometria
half NdotL = max(0.0, dot(N, L));
half diffuse = NdotL;

Minnaert - 미네르트

half NdotL = max(0.0, dot(N, L));
half NdotV = max(0.0, dot(N, V));
half diffuse = NdotL * pow(NdotL * NdotV, _MinnaertDarkness);

Phong - 퐁

  • 1973 - Bui Tuong Phong
half3 R = reflect(-L, N);
half RdotV = max(0.0f, dot(R, V));
half specular = pow(RdotV, _SpecularPower) * _SpecularNormFactor;

Blinn Phong - 블린 퐁

  • 1977 - Jim Blinn
half3 H = normalize(V + L); 
half NdotH = max(0.0, dot(N, H));

half specular = pow(NdotH ,_SpecularPower) * _SpecularNormFactor;

Strauss - 스트라우스

Gooch - 구치

Half Lambert & Wrapped Lambert - 하프 람버트 & 와프드 람버트

// half lambert
half NdotL = max(0.0, dot(N, L));
half diffuse = pow(NdotL * 0.5 + 0.5, 2);

// wrapped lambert
half diffuse = pow(NdotL * wrapValue + (1.0 - wrapValue), 2);
half diffuse = max(0.0, (NdotL + _wrapped) / (1.0 - _wrapped));
// ref: https://blog.naver.com/eryners/220144182154
// Harf Lambert사용시 명암 차이가 너무 없어져서 무게감이 없어보인다.
half diffuse = ​pow((dot(N, L) * 0.5) + 0.5, 4)  // Half Lambert + Pow
half diffuse = max(0, ((dot(L, N) + warp) / (1 + wrap + wrap^2)) ^ (1 + wrap));

LUT

  • Look Up Texture : 룩업텍스쳐
  • Ramp Texture라고도 함
    • Ramp : 증감. 경사(gradient)

Lake

BARLA