Skip to content

그림자 생성(9)~개량형 깊이 그림자 기법(4)

[칼럼 핵심 요약]
깊이 그림자 기법의 약점은 섀도우 맵의 해상도가 불충분하다고 그림자에 쟈기가 나온다는 것이었다. 다른 해상도가 높은데 그림자에만 자기가 나오는 것은 부자연스럽다.

🌐 원문 링크: 影の生成(9)~改良型デプスシャドウ技法(4) (Mynavi News)
📅 원문 발행일: 2008-08-11 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

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

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

📖 본문 해설

[원문 리드문] > 뎁스 그림자 기법의 약점은 섀도우 맵의 해상도가 불충분하다고 그림자에 쟈기가 나온다는 것이었다. 다른 해상도가 높은데 그림자에만 자기가 나오는 것은 부자연스럽다.

보카시 첨부 뎁스 그림자 기법 ~ 간편하게 소프트 그림자를 얻는다

깊이 그림자 기법의 약점은 섀도우 맵의 해상도가 불충분하다고 그림자에 쟈기가 나온다는 것이었다.

다른 해상도가 높은데 그림자에만 자기가 나오는 것은 부자연스럽다. 그렇다고 해서 비디오 메모리 사용 예산의 관계로부터 섀도우 맵의 용량을 암구름으로 늘릴 수 없는 경우도 있다.

그림자의 쟈기가 눈에 띄는 것은 그림자의 윤곽 부근이므로, 그렇다면, 이 쟈기를 적극적으로 보카해 지워 버리는 것은 어떨까. 즉, 그림자 생성 기법 그 자체를 개량하는 것이 아니라, 생성된 그림자의 쟈기를 포스트 프로세스로 지우려는 아이디어다.

"버추어 파이터(Virtua Fighter) 5"(세가, 2006)에서. 깊이 그림자 기법을 그대로 구현하여 생성하면 이렇게 그림자에 케바였던 것 같은 앨리어싱(자기)이 나온다(흉원당 주목) (C)SEGA"버추어 파이터(Virtua Fighter) 5"(세가, 2006)에서. 깊이 그림자 기법을 그대로 구현하여 생성하면 이렇게 그림자에 케바였던 것 같은 앨리어싱(자기)이 나온다(흉원당 주목) (C)SEGA

🔍 [인포그래픽 도해 한국어 번역: 캐스케이드 섀도우 맵 (CSM)의 프러스텀 분할]

  • 근거리 영역 (Cascade 0): 플레이어 바로 앞 고해상도 섀도우 맵 할당 (선명한 디테일)
  • 중거리 영역 (Cascade 1~2): 중간 해상도 섀도우 맵 할당
  • 원거리 영역 (Cascade 3): 넓은 지형을 포괄하는 저해상도 섀도우 맵 할당
  • 효과: 원근 왜곡에 의한 그림자 계단 현상(에일리어싱) 완전 해소

이 기술의 경우 그림자 생성 자체는 일반적인 깊이 그림자 기술을 구현할 수 있습니다. 그러나,이 때 그림자 생성 만 표시 프레임과 동일한 해상도의 텍스처에 대해 수행됩니다. 이것으로 만들어지는 것은 화면상의 「햇빛과 히나타」의 0이나 1의 2치 화상 텍스처가 된다.

깊이 그림자 기술로 그림자 프레임을 생성. 이 시점에서는 보풀이 서 있습니다.깊이 그림자 기술로 그림자 프레임을 생성. 이 시점에서는 보풀이 서 있습니다.

그 그림자 프레임을 흐리게그 그림자 프레임을 흐리게

보카 된 그림자 프레임을 표시 프레임과 합성합니다. 앞의 이미지와 비교하면 그림자의 보풀이 줄어드는 것을 알 수 있습니다.보카 된 그림자 프레임을 표시 프레임과 합성합니다. 앞의 이미지와 비교하면 그림자의 보풀이 줄어드는 것을 알 수 있습니다.

이번에는 이 「햇빛과 히나타」의 2치 화상 텍스처를 바이리니어 필터를 사용한 축소 버퍼나 가우스 필터 등을 사용해 흐리게 해 버린다. 이렇게하면 그림자에 대한 자세한 정보가 손실되지만 대신 그림자의 윤곽 잡기가 줄어 듭니다.

그 후, 일반적으로 각종 셰이더를 동작시켜 렌더링 한 통상의 표시 용 프레임과이 보카로 만들어진 그림자 프레임을 합성하여 완성된다.

이러한 흐린 그림자의 표현은 '소프트 섀도우 표현'(Soft Shadow)이라고 불린다.

현실 세계에서도 그림자가 샤프하게 나오는 것은 드물기 때문에 약간 흐릿한 정도가 리얼하게 보인다. 그 때문에, 이 테크닉은 자기도 사라져 리얼하게 보이고 일석이조의 방법이라고 할 수 있습니다.

그러나 현실 세계의 그림자 노망은 그림자 자체의 투사 거리가 길 때 빛의 산란에 의해 그림자의 외주에 빛이 들어와 버리는 것에 의한 노망이거나 혹은 빛을 만들어 내는 광원 자체에 크기가 있는 것으로 노망하는 경우도 있어 그 요인은 다양하다. 이 테크닉에서는, 그림자의 보카시 처리를 2차원적인…

부드러운 그림자부드러운 그림자

하지만 비교적 단순한 구현으로 보기 좋지 않은 악기를 지워 소프트 그림자의 효과를 얻을 수 있는 것은 효과로서 크다.

다만, 이 테크닉에는 조금 문제점도 없지 않다.

이 테크닉에서는 그림자를 흐리게 할 때의 처리를 2차원적으로 실시해 버리고 있기 때문에, 이 보컬한 그림자를 합성하면, 흐려져 흐린 그림자의 엣지가, 3D 그래픽스의 전후 관계를 무시해 넘쳐 버리는 것이다.

예를 들어, 안쪽 그림자의 bokeh 부분이 앞의 3D 오브젝트의 히나타 부분에 넘쳐 버리거나 하는 것이다.

이것을 개선하는 아이디어도 몇 가지 있다.

예를 들면 그림자 프레임의 보카시 처리를 장면의 깊이값을 보고, 장면의 전후 관계를 배려하면서 흐리게 하는 방안이 하나. 혹은 보카할 때에, 어느 심도치의 그림자의 노망인가…

또한 섀도우 맵의 해상도가 너무 낮으면 아무리 그림자 프레임을 흐리게 한다고 해도 쟈기를 지울 수 없다. 이 테크닉을 사용하는 경우는, 「섀도우 맵의 해상도」와 「얼마만큼 흐리게 할까」의 조정은 신중하게 실시할 필요가 있다. 비교적 시점이 들르거나 멀어지는 3D 게임에서는 일정한 섀도우 맵 해상도나 일정한 보카시량으로는 "거칠게"가 눈에 띄게 되는 경우가 있을지도 모른다. 비교적 시점 위치가 침착하고 있는 삼인칭 시점의 액션 게임이나 리얼타임 전략, RPG와 같은 3D 게임과의 궁합이 좋을지도 모른다. (계속)

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


🔗 연관 지식 베이스 (Wiki)

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