면마다 계산할까, 픽셀마다 계산할까
조명 공식을 골랐더라도 어디에서 계산할지는 정해야 합니다. 셰이딩 방식은 색이나 법선을 어느 위치에서 계산하고 보간할지 정합니다.
세 가지 방법
- Flat: 면의 대표 법선 등으로 한 면의 색을 일정하게 계산합니다. 삼각형 경계가 또렷하게 드러납니다.
- Gouraud: 꼭짓점에서 조명을 계산한 뒤 내부의 색을 보간합니다.
- Phong 셰이딩: 꼭짓점 법선을 내부로 보간하고 다시 정규화한 뒤, 각 프래그먼트에서 조명을 계산합니다.
Phong 셰이딩은 법선을 보간하는 방식의 이름입니다. 앞 수업의 Phong 조명 모델은 반사광을 계산하는 공식입니다. 둘은 자주 함께 쓰지만 같은 개념은 아닙니다.
작은 반짝임이 사라지는 이유
삼각형의 중앙에만 좁은 하이라이트가 있다고 합시다. 세 꼭짓점은 모두 어둡습니다. Gouraud 방식으로 그 색만 섞으면 중앙의 밝은 점을 놓칠 수 있습니다. Phong 방식은 내부에서도 법선과 시선으로 조명을 계산하므로 그 반짝임을 포착하기 쉽습니다.
색 보간 자체는 다음처럼 생각할 수 있습니다.
a, b, t = 0.2, 1.0, 0.25
print(round((1 - t) * a + t * b, 2))
결과는 0.4입니다. 양끝이 모두 0.2라면 어떤 비율로 섞어도 0.2입니다. 꼭짓점에서 보지 못한 하이라이트가 색 보간만으로 새로 생기지는 않습니다.
확인 문제
법선을 부드럽게 보간하면 폴리곤이 적은 공의 바깥 윤곽까지 둥글어질까요?
해설 보기
아닙니다. 내부의 밝기 변화는 부드러워져도 실제 꼭짓점과 면의 위치는 그대로입니다. 실루엣을 바꾸려면 기하 구조를 더 세밀하게 만들거나 별도의 표면 표현이 필요합니다.