Unity/Shader

[5.6] Light 연산 정리

ljw4104 2021. 5. 6. 12:27
  1. 텍스쳐 한 장 받는 Shader 생성
  2. 라이트 이름 설정 : Test
  3. Lighting + Test 이름으로 함수 선언, 반환 타입은 float, 매개변수는 SurfaceOutput, float3 lightDir, float atten
  4. Lambert 공식 : 표면벡터와 조명벡터를 내적 => Option : 내적값에 saturate → 0~1까지 표현
  5. 그 값을 Return
  6. Half-Lambert 공식 : 4번의 것을 saturate하지 않고 내적의 값에 *0.5 +0.5한 값 Return
  7. Lighting 함수 안에서 SurfaceOutput값 사용가능. ex) s.Albedo, s.Alpha...
  8. _LightColor0 : 조명의 색상, 강도가 저장된 내장변수
  9. 감쇠의 Test는 Point Light로 테스트를 하여야됨. (Range를 낮추고)