쉐이더: 퐁 셰이딩 — 부드러운 음영의 표준
공은 동글동글한데, 컴퓨터 속 공은 왜 각졌을까?
게임 속 캐릭터의 얼굴을 떠올려 보세요. 볼이 매끈하고 둥글게 보이죠?
그런데 놀라운 비밀이 하나 있어요. 컴퓨터는 사실 둥근 것을 그릴 줄 몰라요. 컴퓨터가 그릴 수 있는 건 납작한 삼각형뿐이에요.
종이접기로 공을 만든다고 생각해 보세요. 납작한 종이를 아무리 많이 접어 붙여도, 가까이서 보면 각이 져 있어요. 컴퓨터 속 공도 똑같아요. 수많은 납작한 조각(폴리곤)을 붙여서 만든 거예요.
그럼 어떻게 매끈해 보이게 만들까요? 여기서 등장하는 마법이 바로 퐁 셰이딩(Phong shading)이에요. 베트남 출신의 컴퓨터 그래픽 개척자, 부이 뜨엉 퐁(Bui Tuong Phong)이라는 사람이 발명했답니다.
비교해 보면 한눈에 보여요

왼쪽 그림은 플랫 셰이딩이에요. 조각 하나하나가 그대로 보여서, 축구공처럼 각이 져 있죠.
오른쪽 그림이 퐁 셰이딩이에요. 똑같은 조각으로 만들었는데도 매끈매끈해요!
중요한 건 이거예요. 모양은 하나도 바꾸지 않았어요. 조각 수를 늘린 것도 아니에요. 단지 색을 칠하는 방법만 바꿨을 뿐인데, 각진 게 사라진 것처럼 보이는 거죠. 마치 화장으로 얼굴 윤곽을 다르게 보이게 하는 것과 비슷해요.
먼저 알아야 할 것: 법선이라는 화살표
퐁 셰이딩을 이해하려면 법선(노멀)이라는 걸 알아야 해요. 어렵게 들리지만 사실 간단해요.
법선은 "이 표면이 어느 쪽을 바라보고 있나요?"를 알려주는 화살표예요.
책상 위에 연필을 세워 보세요. 연필은 하늘을 가리키죠? 그 연필이 바로 책상 표면의 법선이에요. 벽에 연필을 꽂으면 옆을 가리킬 거예요. 표면이 향한 방향에 따라 화살표 방향이 달라져요.
컴퓨터는 이 화살표를 보고 밝기를 정해요. 화살표가 빛(태양이나 전등)을 똑바로 바라보면 밝게, 빛을 등지고 있으면 어둡게 칠하는 거예요. 우리가 해를 마주 보면 얼굴이 환해지고, 등을 돌리면 그늘이 지는 것과 같아요.
퐁 셰이딩의 핵심: 화살표를 부드럽게 섞기
플랫 셰이딩은 조각 하나에 화살표 하나만 써요. 그래서 조각 전체가 같은 밝기로 칠해지고, 옆 조각과 밝기가 뚝 끊겨요. 각져 보이는 이유가 바로 이거예요.
퐁 셰이딩은 다르게 해요. 조각의 꼭짓점마다 화살표를 두고, 그 사이의 점(픽셀) 하나하나마다 화살표를 부드럽게 섞어서 새로 만들어요.
물감을 섞는 것과 비슷해요. 왼쪽 끝이 파란색이고 오른쪽 끝이 노란색이면, 그 사이는 점점 초록색으로 변해가죠? 퐁 셰이딩은 색 대신 화살표의 방향을 그렇게 점점 변하게 섞는 거예요. 이렇게 사이 값을 만들어내는 걸 어려운 말로 보간(interpolation)이라고 해요.
정리하면 퐁 셰이딩은 이런 순서로 일해요.
- 조각의 꼭짓점마다 화살표(법선)를 준비해요.
- 조각 안의 픽셀 하나하나마다, 주변 꼭짓점의 화살표를 섞어서 그 자리만의 화살표를 새로 만들어요.
- 그 화살표와 빛의 방향을 비교해서, 픽셀마다 밝기를 따로따로 계산해요.
픽셀마다 화살표가 조금씩 다르니까, 밝기도 조금씩 부드럽게 변해요. 그래서 각진 티가 사라지는 거예요.
이름이 헷갈려요: 퐁이 만든 건 두 가지
퐁 아저씨는 사실 발명품을 두 개 남겼어요. 이름이 비슷해서 어른들도 자주 헷갈린답니다.
- 퐁 셰이딩(퐁 보간) — 방금 배운 것. 화살표를 픽셀마다 부드럽게 섞는 방법이에요. "어디에 화살표를 둘까?"에 대한 답이죠.
- 퐁 반사 모델 — 화살표와 빛으로 "그래서 얼마나 밝게 칠할까?"를 계산하는 공식이에요. 반짝이는 하이라이트(사과의 반질반질한 빛 점 같은 것)를 만드는 걸로 유명해요.
둘은 짝꿍이에요. 화살표를 부드럽게 섞고(퐁 셰이딩), 그 화살표로 밝기를 계산하면(퐁 반사 모델), 매끈하고 반짝이는 표면이 완성돼요. 그래서 "퐁 셰이딩"이라는 말이 이 둘을 합친 것을 가리킬 때도 있어요.
직접 써 보면 어떨까?
쓸 때 좋은 점: 폴리곤을 늘리지 않아도 매끈해진다는 게 정말 커요. 조각 수를 열 배로 늘려서 컴퓨터를 힘들게 하는 대신, 색칠 방법만 바꾸면 되니까요. 특히 반짝이는 하이라이트가 살아나요. 꼭짓점에서만 밝기를 계산하는 옛날 방식(구로 셰이딩)은 조각 한가운데 떠 있는 작은 하이라이트를 통째로 놓쳐버리는데, 퐁 셰이딩은 픽셀마다 계산하니까 하이라이트가 조각 어디에 있든 또렷하게 잡혀요. 금속이나 플라스틱처럼 반질거리는 물건을 만들 때 차이가 확 느껴져요.
쓸 때 힘든 점: 계산이 많아요. 꼭짓점 세 개만 계산하면 되던 걸, 조각을 덮는 수천 개 픽셀마다 전부 계산해야 하니까요. 요즘 그래픽카드는 워낙 빨라서 괜찮지만, 옛날 게임기나 저사양 기기에서는 이것 때문에 화면이 버벅여서 결국 싼 방식으로 되돌리기도 했어요. 그리고 한 가지 함정이 있는데, 테두리는 여전히 각져 있어요. 색칠만 부드럽게 한 거라서, 공의 실루엣(윤곽선)을 보면 다각형 티가 그대로 나요. "분명 퐁 셰이딩을 켰는데 왜 가장자리가 울퉁불퉁하지?" 하고 한참 헤매게 되는 부분이에요. 이건 조각 수를 늘려야만 해결돼요.
오늘 배운 것 정리
- 컴퓨터 속 물체는 사실 납작한 조각들로 만들어져 있어요.
- 법선은 표면이 어느 쪽을 보는지 알려주는 화살표예요.
- 퐁 셰이딩은 이 화살표를 픽셀마다 부드럽게 섞어서, 각진 물체를 매끈해 보이게 해요.
- 모양이 바뀌는 건 아니에요. 색칠하는 방법이 바뀌는 거예요.
오늘 밤 게임을 켜면 캐릭터의 매끈한 볼을 한번 자세히 봐 주세요. 그 뒤에는 픽셀마다 화살표를 섞고 있는, 50년 전 퐁 아저씨의 아이디어가 지금도 열심히 일하고 있답니다.
출처
리깅 파이프라인 자동화 도구
반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.
리깅 도구 보기