Appearance
그림자 생성 (2) ~ 투사 텍스처 매핑 기술
[칼럼 핵심 요약]
90년대의 3D게임의 그림자 생성 기법의 주류였던 것이, 3D캐릭터의 발밑에 검은 마루를 두는 것만의 간이적인 그림자, 통칭 「환영」. 이것을 약간 진화시킨 것이 '투사 텍스처 매핑'(Projected Texture Mapping)에 의한 의사 그림자 생성이다.🌐 원문 링크: 影の生成(2)~投射テクスチャマッピング技法 (Mynavi News)
📅 원문 발행일: 2008-06-13 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)
NOTE
💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)
- 섀도우 맵의 한계와 진화: 본문에서 다루는 캐스케이드 섀도우 맵(CSM)과 VSM 등은 여전히 실시간 렌더링의 주력이지만, 해상도 에일리어싱과 자가 차폐 오류(Shadow Acne)의 구조적 한계를 갖습니다.
- 하드웨어 가속 레이트레이싱 섀도우: 현재는 DXR/Vulkan RT를 이용한 실시간 광선 추적 섀도우(Ray-Traced Soft Shadows) 및 가상화 그림자 맵(Virtual Shadow Maps, VSM in UE5)을 통해 해상도 제약 없는 완벽한 반그림자(Penumbra) 연산이 실시간으로 이루어집니다.
📖 본문 해설
[원문 리드문] > 90년대의 3D게임의 그림자 생성 기법의 주류였던 것이, 3D캐릭터의 발밑에 검은 마루를 두는 것만의 간이적인 그림자, 통칭 「환영」. 이것을 약간 진화시킨 것이 '투사 텍스처 매핑'(Projected Texture Mapping)에 의한 의사 그림자 생성이다.
1990년대 3D 게임의 그림자 생성 기법의 주류였던 것이 3D 캐릭터의 발밑에 검은 마루를 두는 것만의 간이적인 그림자, 통칭 '둥근 그림자'다.
1장의 판 폴리곤에 둥근 그림자 텍스처를 붙인 물건을 발밑에 그릴 뿐이므로, 부하는 매우 가볍다. 3D 공간 상의 캐릭터 위치를 입체적으로 플레이어에게 전한다……라는 정도의 정보량은 있지만, 모든 캐릭터의 그림자가 같은 둥글게 그려질 뿐이므로, 「그림자」로서의 리얼리티는 거의 없었다.
"Oni"(BUNGIE,2001)보다. 발밑에 단지 둥근 그림자 스프라이트를 그릴 뿐인 초간이 그림자 생성 기법이 사용되고 있었다. Oni and the Oni logo are trademarks of Take 2 Interactive Software, Inc. Bungie and the Bungie logo are trademarks of Microsoft, Inc. Gatharing of Developers and godgames are trademarks of Gathering of Developers, Inc. All other trademarks and trade names are property of their Developers. All Rights Reserved.
이것을 약간 진화시킨 것이 '투사 텍스처 매핑'(Projected Texture Mapping)에 의한 의사 그림자 생성이다.
이것은, 광원으로부터 본 캐릭터의 실루엣을 텍스처에 렌더링하고, 이것을 광원 위치로부터, 영사기로 투영하도록 장면에 텍스처 맵핑함으로써 실현된다.
투사 텍스처 매핑을 통한 단순화 된 그림자 생성 기법의 개념도
투사 텍스처 매핑은 거의 모든 GPU에서 지원되므로 호환성이 높다. 다만, 지면에 둥근 그림자를 그리는 것이 아니라, 그 캐릭터의 실루엣을 씬에 투사하기 때문에, 한 캐릭터의 그림자가 다른 캐릭터에 투사되는 것과 같은 상호 투사 그림 표현도 실현할 수 있다.
그림자를 내고 싶은 캐릭터의 실루엣을 매 프레임 텍스처에 생성하지 않으면 안되지만, 시점에서 먼 캐릭터에 대해서는 그림자 생성을 생략한다는 손을 빼면 성능적으로 확장 가능한 구현도 가능하다.
이 투사 텍스처 매핑을 사용한 그림자 생성은 원시적이지만, 비교적 최근의 3D 게임에서도 종종 채용될 수 있다. 플레이 스테이션 2의 타이틀 등은 이 기법을 채용한 것이 많은 것 같다.
「THE GOD FATHER THE GAME」(EA,2006)보다. 비교적 최근의 타이틀이지만, 투사 텍스처 매핑에 의한 그림자 생성 기법이 채용되고 있었다. (C) 2006 Electronic Arts Inc. All rights reserved.
투사 텍스처 매핑 기술 문제
이 방법의 약점은 "셀프 그림자"표현을 할 수 없다는 점에 있다.
셀프 그림자는 자신의 부위의 그림자가 자신에게 투사되는 그림자 표현이다.
예를 들어 현실 세계에서 전등 밑에 서서 팔을 앞으로 돌출해 보면 그 팔의 그림자가 자신의 가슴에서 배에 걸쳐 투사될 것이다. 이 자신의 팔의 그림자가 자신에게 몸에 투사되는 표현을 셀프 그림자라고 한다.
투사 텍스처 매핑을 사용한 그림자 생성에서는 그림자의 최소 생성 단위가 캐릭터 단위가 되기 때문에 셀프 그림자 표현이 어렵다.
셀프 그림자는 자신의 그림자가 자신에게 투사되는 것. 현실 세계에서는 아무것도 없는 그림자도 실시간 3D 그래픽에서는 특별한 처리를 하지 않으면 내놓을 수 없다
「하프라이프 2 (Half-Life 2)」(VALVE, 2004)의 투사 텍스처 매핑 그림자. 계단 중간에 있는 캐릭터의 그림자가 바닥을 관통하여 뒤쪽 벽에까지 투사되는 투사 그림자의 자가 차폐(Self-Occlusion) 부재 결함
또, 이 실루엣 텍스처를 어디에 붙일 것인가(=그림자가 어디에 떨어지는 것인가)의 판정을 제대로 하지 않으면, 있을 수 없는 곳에 그림자가 떨어지고 부자연스럽게 보일 수 있다. (계속)
[[Half-Life2](VALVE, 2004)의 그림자 생성은 투사 텍스처 매핑의 기법을 구현하고 있었다. 계단의 댄스장에 있는 캐릭터의 그림자가 댄스장의 바닥을 지나 벽에 투사되어 버리고 있다. 이것은 실루엣 텍스처를 어디에 떨어뜨려야 할지의 판정이 좋은 가감이었기 때문에 일어나 버린 불편. (C)2004 Valve Corporation. All rights reserved. Valve, the Valve logo, Half-Life, the Half-Life logo, the Lambda logo, Counter-Strike, the Counter-Strike logo, Source, and the Source logo are trademarks or registered trademarks of Valve Corporation in the United States of their respective owners. 계단의 댄스장에 있는 캐릭터의 그림자가 댄스장의 바닥을 지나 벽에 투사되어 버리고 있다. 이것은 실루엣 텍스처를 어디에 떨어뜨려야 할지의 판정이 좋은 가감이었기 때문에 일어나 버린 불편. (C)2004 Valve Corporation. All rights reserved. Valve, the Valve logo, Half-Life, the Half-Life logo, the Lambda logo, Counter-Strike, the Counter-Strike logo, Source, and the Source logo are trademarks or registered trademarks of Valve Corporation in the United States of their respective owners.*
(트라이Z 니시카와 젠지)