Skip to content

그림자 생성 (1) ~ 3D 그래픽에서 두 종류의 그림자(그늘 陰과 그림자 影)의 존재

[칼럼 핵심 요약]
현재의 3D 그래픽스에서 가장 중요한 테마 중 하나가 그림자 생성이다. 씬의 리얼리티를 연출하는 요소로서 지금 빠뜨릴 수 없는 존재가 되고 있다. 이번부터는 최근 3D 게임에 자주 사용되는 전형적인 그림자 생성 기법의 화제를 다루어 보겠습니다.

🌐 원문 링크: 影の生成(1)~3Dグラフィックスにおける2つのカゲの存在 (Mynavi News)
📅 원문 발행일: 2008-06-06 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)

  • 섀도우 맵의 한계와 진화: 본문에서 다루는 캐스케이드 섀도우 맵(CSM)과 VSM 등은 여전히 실시간 렌더링의 주력이지만, 해상도 에일리어싱과 자가 차폐 오류(Shadow Acne)의 구조적 한계를 갖습니다.
  • 하드웨어 가속 레이트레이싱 섀도우: 현재는 DXR/Vulkan RT를 이용한 실시간 광선 추적 섀도우(Ray-Traced Soft Shadows) 및 가상화 그림자 맵(Virtual Shadow Maps, VSM in UE5)을 통해 해상도 제약 없는 완벽한 반그림자(Penumbra) 연산이 실시간으로 이루어집니다.

📖 본문 해설

[원문 리드문] > 현재의 3D 그래픽스에서 가장 중요한 테마 중 하나가 그림자 생성이다. 씬의 리얼리티를 연출하는 요소로서 지금 빠뜨릴 수 없는 존재가 되고 있다. 이번부터는 최근 3D 게임에 자주 사용되는 전형적인 그림자 생성 기법의 화제를 다루어 보겠습니다.

현재의 3D 그래픽스에서 가장 중요한 테마 중 하나가 그림자 생성이다. 씬의 리얼리티를 연출하는 요소로서, 지금 빠뜨릴 수 없는 존재가 되어 있어, 3D 게임 그래픽스의 설계를 할 때에 있어서도, 어떤 그림자 생성 기법을 실장할지가, 가장 중요한 검토 항목이 되고 있다.

이번부터는 최근 3D 게임에 자주 사용되는 전형적인 그림자 생성 기법의 화제를 다루어 보겠습니다.

3D 그래픽에서 두 종류의 그림자(그늘 陰과 그림자 影)의 존재

현재의 실시간 3D 그래픽스에 있어서의 "그림자(카게)"는 크게 나누면 2가지의 것이 있다.

일본어에서도 카게(그림자)는 "음"의 글자를 쓰는 그림자과 "그림자"의 글자를 쓰는 그림자가 있지만, 실시간 3D 그래픽스에 있어서의 2 종류의 카게(그림자)는, 이 일본어의 그림자의 정의와 대응하고 있다.

하나는 라이팅(셰이딩(Shading))의 결과로 어두워지는 ‘음’이다.

현재의 3D 그래픽스는 폴리곤, 혹은 픽셀 단위의 라이팅을 실시하지만, 그 때, 폴리곤이나 픽셀이, 빛에 닿고 있는지, 없는지를 계산해, 그 폴리곤이나 픽셀의 밝기를 결정하고 있다. 빛이 비치지 않는 곳은 당연히 어두워진다. 이것이 "그늘"이며, 이 그늘은 특별한 처리를 하지 않아도 보통으로 렌더링하면 스스로 낼 수 있는 그늘(음)이다.

또 하나는 무언가에 의해 차폐되어 생기는 '그림자'다. 맑은 날, 밖으로 나오면 자신의 몸이 태양으로부터의 빛을 차폐하고 있는 것으로 지면에 자신의 몸의 형태의 그림자가 생기는데, 이 「그림자」다.

실은 현재의 실시간 3D 그래픽스의 기본 렌더링 파이프라인에서는, 이 차폐되어 생기는 그림자에 대해서는 전혀 고려되고 있지 않다. 즉, 보통으로 렌더링하는 것만으로는, 「그림자」는 나오지 않는 것이다.

반대로 말하면 ‘그림자’를 내기 위해서는 뭔가 다른 처리를 하여 생성해 줘야 하는 것이다. 이번부터 테마로 하는 것은 「그늘」이 아니라, 이쪽의 「그림자」 편이다.

이 「그림자」의 생성은 의외로 고부하의 처리이며, GPU가 고성능이 아닌 1990년대의 3D게임에서는, 이 그림자 생성을 실시하고 있지 않은 타이틀이 대부분이었다. 초대 플레이 스테이션 시대의 게임 소프트를 보면, 「그림자」가 없는 것이 많다는 것을 깨닫게 될 것이다.

현재 3D 게임 그래픽 등에서 사용되는 '그림자' 생성은 대략적으로 생각하면 약 3종류로 분류할 수 있다.

이들에 대해서는 다음 번 이후 하나씩 소개해 보겠습니다. (계속)

두 종류의 그림자(그늘 陰과 그림자 影) "그늘"과 "그림자"두 종류의 그림자(그늘 陰과 그림자 影) "그늘"과 "그림자"

🔍 [인포그래픽 도해 한국어 번역: 3D 그래픽스의 두 가지 그림자 - 음(陰)과 영(影)]

  • 좌측 음 (Shading / 그늘): 물체 표면이 빛을 등져서 스스로 어두워지는 라이팅의 결과 (I=NL0). 기본 렌더링으로 자동 생성.
  • 우측 영 (Shadow / 그림자): 다른 물체나 자신의 몸체에 의해 빛이 가로막혀(차폐) 지면이나 타 물체에 드리워지는 그림자. 별도의 섀도우 알고리즘(섀도우 맵/섀도우 볼륨) 필수.

(트라이Z 니시카와 젠지)


🔗 연관 지식 베이스 (Wiki)

Based on Zenji Nishikawa's 3D Graphics Maniax series. Translated & Knowledge-Based for Korean Game Developers.