도구스개발

퐁 조명 모델 계산기

법선·광원·시점 벡터와 재질 계수(주변광·확산광·반사광, 광택 지수)를 넣어 퐁/블린-퐁 조명 방정식으로 픽셀 밝기를 구합니다. 3D 그래픽스에서 표면 하나에 빛이 어떻게 떨어지는지 보여줍니다.

법선 벡터 N

광원 방향 L(표면에서 광원 쪽)

시점 방향 V(표면에서 카메라 쪽)

최종 밝기 (블린-퐁)

0.7344

퐁 방식은 0.6354입니다.

N·L (확산광 각도)0.8081
R·V (퐁 반사각)0.8081
N·H (블린-퐁 반사각)0.9508
주변광0.15
확산광0.4849
반사광(퐁 · 블린-퐁)0.0005 · 0.0996
계산 근거밝기 = kₐ·Iₐ + k_d·I·max(0,N·L) + kₛ·I·max(0,R·V 또는 N·H)^shininess= 0.15 + 0.4849 + 0.0996 = 0.7344
확산광은 램버트의 코사인 법칙을 그대로 씁니다. 빛이 표면에 수직으로 떨어질수록(N과 L이 나란할수록) 밝고, 비스듬할수록 어둡습니다. 광원이 표면 뒤에 있으면(N·L이 음수이면) 확산광·반사광 모두 0으로 잘라 주변광만 남게 됩니다.
퐁과 블린-퐁은 반사광 계산법만 다릅니다. 퐁은 반사벡터 R(광원이 표면에서 거울처럼 튕겨 나가는 방향)과 시점벡터의 각도를 쓰고, 블린-퐁은 광원·시점의 중간 방향인 반각벡터 H와 법선의 각도를 씁니다. 계산이 더 가벼운 블린-퐁이 실시간 그래픽스에서 더 널리 쓰입니다.

사용 방법

  1. 1표면 법선(N)·광원 방향(L)·시점 방향(V) 벡터를 입력합니다(자동으로 단위벡터로 바뀝니다).
  2. 2재질 계수(주변광·확산광·반사광)와 광택 지수를 정합니다.
  3. 3N·L(확산광 각도)·R·V(퐁 반사각)·N·H(블린-퐁 반사각)와 최종 밝기를 확인합니다.
  4. 4광원 방향을 법선과 어긋나게 바꿔가며 밝기가 어떻게 줄어드는지 봅니다.

자주 묻는 질문

3D 표면 한 점의 밝기를 주변광(ambient)·확산광(diffuse)·반사광(specular) 세 성분의 합으로 계산하는 모델입니다. 각 성분은 법선·광원·시점 벡터의 각도로 정해지며, 실시간 3D 그래픽스에서 표면에 빛이 떨어지는 모습을 흉내 내는 데 널리 씁니다.

램버트의 코사인 법칙 때문입니다. 빛이 표면에 수직으로(N과 L이 나란하게) 떨어질수록 같은 빛 에너지가 더 좁은 면적에 집중되어 밝고, 비스듬할수록 더 넓은 면적에 퍼져 어둡습니다. N·L이 음수면(광원이 표면 뒤에 있으면) 확산광에 전혀 기여할 수 없어 0으로 자릅니다.

반사광(하이라이트)을 계산하는 방법만 다릅니다. 퐁은 반사벡터 R(광원이 표면에서 거울처럼 튕겨 나가는 방향)과 시점벡터의 각도(R·V)를 쓰고, 블린-퐁은 광원벡터와 시점벡터의 중간 방향인 반각벡터 H와 법선의 각도(N·H)를 씁니다. 블린-퐁이 계산이 더 가볍고 비슷한 하이라이트를 내 실시간 그래픽스에서 더 널리 쓰입니다.

반사광 하이라이트가 얼마나 좁고 강하게 맺히는지를 정합니다. 값이 클수록(예: 100 이상) 하이라이트가 작고 날카로워져 매끈한 금속·유리 같은 느낌을 주고, 값이 작을수록(예: 10 이하) 하이라이트가 넓고 부드러워져 무광 재질 같은 느낌을 줍니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 입력한 법선·광원·시점 벡터는 계산 전에 자동으로 단위벡터로 정규화됩니다.
  • 광원이 표면 뒤에 있으면(N·L≤0) 확산광·반사광 모두 0이 되어 주변광만 남습니다.
  • 실제 렌더링에서는 R·G·B 채널마다 따로 계산하지만, 이 계산기는 밝기 하나만 다룹니다.
  • 입력한 값은 브라우저 안에서만 계산되며 서버로 전송되지 않습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.