코가손의 블로그
[ Graphics ] Lighting - 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 벡터 유도과정
내적결과(스칼라) * 벡터 -> 벡터
- 반사벡터 & 바라보는 벡터의 내적
- 빛 집중시키기 -> 제곱
https://www.scratchapixel.com/lessons/3d-basic-rendering/phong-shader-BRDF
최종 결과
'GameDevLog > Graphics' 카테고리의 다른 글
[ Graphics ] 빛의 굴절 (0) | 2023.04.04 |
---|---|
[ Graphics ] Barycentric Coordinates(무게중심 좌표계) (0) | 2023.04.04 |
[ Graphics ] 구-직선 충돌 & 평면-직선 충돌 (0) | 2023.04.03 |
[ Graphics ] 블룸(Bloom) 효과 (0) | 2023.04.02 |
Comments