-
컴퓨터 그래픽스 9장 - 라이팅-Computer Graphics 2024. 5. 4. 20:59
Phong Ligting model
Diffuse Term(난 반사)
- directional light source (e.g. 태양)
1) 멀리서 빛이 비추기 때문에 장면을 구성하는 모든 오브젝트에 입사하는 빛은 같은 방향(각도)을 가진다
2) 난반사 시 모든 방향에 색이 동일하게(동일한 세기로 비추기 때문에) 보임
p가 받는 빛의 양 -> cosθ White(1, 1, 1) 물체에 대해 광원의 Red(1, 0, 0) 빛을 쏘면 내적하여 Red(1, 0, 0)으로 보임 결과:
난반사: max(cosθ, 0)*빛과 색의 내적
Specular Term (정반사)
일정한 방향으로 입사 시 특정한 방향으로 반사됨 reflection vector를 n과 l의 조합으로 구할 수 있다 ρ가 0일 때 최대의 정반사, ρ가 커질수록 작아짐(반비례 관계) 결과:
sh: 물체가 매끈한 정도 ms: 그레이스케일 Ambient and Emissive Terms
Ambient(배경광... 간접 조명) Reflection
모든 방향에서 빛이 들어와, 모든 방향으로 반사됨 -> normal vector 의미 없음
Emissive(발광) Reflection
최종 결과 (Phong Lighting Model)
Per-fragment Lighting
fragment shader는 l, n, r, v를 사용한다
1) 모든 fragment shader는 동일한 light vector를 사용함 -> uniform으로 들어온다
2) n, v은 래스터라이저가 보간해서 주는 normal vector를 준다
3) r은 l, n, v로 자체 계산이 가능하다
l, n, r, v는 world space vector임
정점의 v 벡터 외 fragment a, b에서의 v 벡터는 버텍스 셰이더에서 제공하지 않아서 레스터라이저가 보간하여 구함
'Computer Graphics' 카테고리의 다른 글
컴퓨터 그래픽스 11장 - 오일러 변환과 쿼터니언 - (0) 2024.05.14 컴퓨터 그래픽스 10장 - 출력 병합 - (0) 2024.05.11 컴퓨터 그래픽스 8장 - 이미지 텍스처링 - (0) 2024.05.04 컴퓨터 그래픽스 7장 - 래스터라이저 - (0) 2024.04.29 컴퓨터그래픽스 6장 - OpenGL ES와 셰이더 - (0) 2024.04.29