코가손의 블로그

[ Graphics ] Lighting - Phong Reflection Model 본문

GameDevLog/Graphics

[ Graphics ] Lighting - Phong Reflection Model

Cogason 2023. 4. 3. 14:13

Phong Reflection Model

Ambient

기본적인 간접 조명

 

 

Diffuse

난반사광

표면의 Normal 과 표면에서 빛으로 향하는 벡터의 각도 차이로 밝기 결정

- 반사지점 정점의 Normal벡터 & 물체에서 빛을 향하는 벡터를  내적

const vec3 dirToLight = glm::normalize(light.pos - hit.point);
const float diff = glm::max(dot(dirToLight, hit.normal), 0.0f);

 

 

Specular

정반사광

표면의 Normal 과 빛의 위치, 카메라 위치로 밝기 결정

표면에서 반사된 빛 & 카메라의 FrontVector 로 반사되는 빛의 양 계산

 

Reflection 벡터 유도과정

r벡터와 카메라향하는 벡터의 각도차이가 광량

내적결과(스칼라) * 벡터 -> 벡터

 

 

- 반사벡터 & 바라보는 벡터의 내적 

- 빛 집중시키기 -> 제곱

https://www.scratchapixel.com/lessons/3d-basic-rendering/phong-shader-BRDF

제곱 적용

 

 

최종 결과

 

Comments