하프 람베르트 라이트모델. 함수와 라이트모델 적용 기본 코드.

하프 람베르트 라이트모델.
함수와 라이트모델 적용 기본 코드.

uniform float HalfLambertPower
<
string UIName = "Half Lambert Power";
string UIType = "FloatSpinner";
float UIMin = 0.0f;
float UIMax = 10.0f;
float UIStep = 0.1;
> = 2;

float halflambert(float3 normal, float3 lightvec) 
{
  normal = normalize(normal);
  lightvec = normalize(lightvec);
  
  float NL = dot(lightvec,normal);   //dot product for base diffuse light
  float HalfLamb = (NL * 0.5f)+0.5f; //magic formula!
  HalfLamb = pow(HalfLamb,HalfLambertPower);    //power halflambert 

  return  saturate(HalfLamb); 
}

outColor.rgb = (diffuseHalfLambert + ambientColor) * (shaderColor * colorMap.rgb) + totalSpec;


Game Developer Leegoon copyright all right reserved since 2010.

Comments