Ray Tracing - Phong Shading
카테고리: Graphics
태그: DirectX
홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.
🐥 Phong Shading
Phong Shading이란 물체의 색을 결정하는, 라이팅 계산 방법 중 하나이다. 실제 물리적인 현상을 정확히 표현했다기 보다는 현실적인 제약 조건 속에서 택한 효율적인 셰이딩 기법이라고 생각하면 좋다. Phong Shading에서 물체의 색은 Ambient(고유 색) + Diffuse(난반사) + Specular(정반사) 로 결정된다.
Ambient Color
No Ambient | Add Ambient |
---|---|
Ambient Color란 물체가 빛을 받지 않아도 갖고 있는 물체의 고유한 색이다. 현실 세계에서는 약간 이상하게 들리지만 렌더링 과정에서는 필수적인 요소이다. 예를 들어 위 사진의 왼쪽 그림은 ambient color가 없는 경우의 렌더링 결과이다. 자원의 한계 상 모든 반사광을 계산할 수 없기 때문에 빛을 받지 못하는 오브젝트들이 존재하게 된다. 이런 경우 모든 물체가 어느정도의 반사광을 받는다고 가정한 뒤 고유 색(ambient color)를 갖게 해주면 훨씬 자연스러운 결과가 나오게 된다.
- Sphere에 (0.0f, 1.0f, 0.0f)로 Ambient Color 지정
- 입체감 없이 평평하게 느껴진다.
Diffuse
Diffuse | Formula |
---|---|
- Diffuse의 경우 빛이 물체 표면에 의해 난반사되는 효과를 나타낸다.
- 픽셀에서 나간 ray가 물체와 충돌한 지점을 구하고, 그 지점에서 n과 l의 내적값으로 결정
- normal 방향이 라이트의 방향과 비슷할 수록 강해짐
- 90도가 넘어가면 빛을 받지 않는다고 판단해서 0
Specular
Specular | Formula |
---|---|
- Specular는 정반사 효과
- Ray의 방향과 라이트의 방향이 대칭대는 지점을 반짝반짝하게 해줌
- 보통 물체에 따라 n제곱해서 사용한다고 한다.
🐥 Result
댓글 남기기