Skip to content

수면의 표현(1)~수면 표현의 역사

[칼럼 핵심 요약]
수면을 사용한 장면은 3D 게임 그래픽 등으로 출현 빈도가 높다. 리얼하게 그리기에는 매우 어려운 테마이지만, 하지만 프로그래머블 셰이더 시대에 돌입하고 나서 현저하게 진화한 부분이기도 하다. 이번부터는, 이 「수면」의 트렌드를 소개해 가기로 하고 싶다.

🌐 원문 링크: 水面の表現(1)~水面表現の歴史 (Mynavi News)
📅 원문 발행일: 2009-02-27 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

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

  • 본 칼럼에서 다루는 핵심 렌더링 기법은 현대 실시간 렌더링 엔진(DirectX 12, Vulkan, Unreal Engine, Unity)의 기초 이론을 구성하고 있으며, 최신 하드웨어 가속 기법 및 컴퓨트 셰이더와 결합하여 고도화되었습니다.

📖 본문 해설

[원문 리드문] > 수면을 사용한 장면은 3D 게임 그래픽 등으로 출현 빈도가 높다. 리얼하게 그리기에는 매우 어려운 테마이지만, 하지만 프로그래머블 셰이더 시대에 돌입하고 나서 현저하게 진화한 부분이기도 하다. 이번부터는, 이 「수면」의 트렌드를 소개해 가기로 하고 싶다.

수면을 사용한 장면은 3D 게임 그래픽 등으로 출현 빈도가 높다. 리얼하게 그리기에는 매우 어려운 테마이지만, 하지만 프로그래머블 셰이더 시대에 돌입하고 나서 현저하게 진화한 부분이기도 하다.

이번부터는, 이 「수면」의 트렌드를 소개해 가기로 하고 싶다.

잔물결 표현에 보는 수면 표현의 역사

수면의 표현은 지금도 옛날에도 3D 게임 그래픽에서는 빼놓을 수 없는 요소가 되고 있다.

프로그래머블 셰이더 등장 이전에는 적당한 잔물결의 모양을 그린 '잔물결' 반투명 텍스처를 붙인 폴리곤으로 표현한 수면이 주류였다. 이 반투명 잔물결 텍스처를 스크롤 시키는 것으로, 물이 흐르고 있는 느낌을 내는 표현도 자주 이용되었다. 보다 현실적으로 하기 위해서, 복수의 반투명의 잔물결 텍스처를 멀티 텍스처링으로 다른 방향으로 스크롤시켜 수면이 복잡하게 돌고 있는 느낌을 내는 것도 있었다.

「GIANTS:CITIZEN KABUTO」(PLANET MOON STUIOS, 2000)보다. 반투명의 "잔물결" 텍스처의 스크롤에 의한 수면의 표현은 비프로그래머블 셰이더 시대의 3D 게임 그래픽스에서는 정평이었다「GIANTS:CITIZEN KABUTO」(PLANET MOON STUIOS, 2000)보다. 반투명의 "잔물결" 텍스처의 스크롤에 의한 수면의 표현은 비프로그래머블 셰이더 시대의 3D 게임 그래픽스에서는 정평이었다

프로그래머블 셰이더가 등장하고 나서는, 잔물결의 미세 요철을 표현하는데 노멀 맵을 활용한 범프 맵핑이 이용되게 된다.

노멀 맵 자체에는 애니메이션은 없고, 움직이지 않지만, 그 수면의 폴리곤 자체에 천천히 요철시키는 애니메이션을 시키는 것으로, 외형에는 꽤 리얼한 수면을 표현할 수 있게 되었다.

"Tom Clancy's Splinter Cell"(UBI SOFT, 2002)에서. 수면의 잔물결 표현을 노멀 맵으로 표현하는 것이 정평화되었다"Tom Clancy's Splinter Cell"(UBI SOFT, 2002)에서. 수면의 잔물결 표현을 노멀 맵으로 표현하는 것이 정평화되었다

반투명의 잔물결 텍스처를 스크롤시켜 "흐름"을 표현하고 있던 테크닉과 완전히 같은 발상으로, 이 노멀 맵을 스크롤시켜, 수면의 번쩍이는 느낌을 표현하는 응용예도 볼 수 있게 된다.

"3DMark2001SE"(Futuremark, 2001)에서. 수면의 잔물결은 노멀 맵에 의한 것. 하나하나의 잔물결은 형상을 변화시키지 않지만, 하지만 스크롤은 하고 있었다. 이것도 나름대로 리얼하게 보입니다."3DMark2001SE"(Futuremark, 2001)에서. 수면의 잔물결은 노멀 맵에 의한 것. 하나하나의 잔물결은 형상을 변화시키지 않지만, 하지만 스크롤은 하고 있었다. 이것도 나름대로 리얼하게 보입니다.

GPU의 성능도 오르고, GPU에 탑재되는 비디오 메모리의 용량이 늘어나면, 이 잔물결에 움직임을 주려고 하는 어프로치가 대두해 온다.

우선 최초로 구현된 것은, 루프하는 노멀 맵의 애니메이션을 오프라인으로 생성해 두고, 이것을 렌더링시에 재생해 가는 것이었다. DirectX 9세대에서는, 이 수법을 채용한 3D게임 타이틀이 많았던 것 같다.

「AGE OF EMPIRESIII」(ENSEMBLE STUDIOS, 2005)로부터. 오프라인으로 생성 된 노멀 맵의 애니메이션을 사용하여 빛나는 잔물결을 표현했습니다.「AGE OF EMPIRESIII」(ENSEMBLE STUDIOS, 2005)로부터. 오프라인으로 생성 된 노멀 맵의 애니메이션을 사용하여 빛나는 잔물결을 표현했습니다.

이 방법은 유저가 좁은 가까운 범위밖에 보이지 않는 수면이면 눈에 띄는 거칠지도 않았지만, 파노라마적으로 광범위한 수면을 바라볼 수 있는 경우에는 노멀 맵 애니메이션의 반복 패턴이 보이기도 했다.

"HALFLIFE2"(VALVE, 2004)에서. 먼 곳까지 볼 수 없는 경우라면 오프라인 생성의 노멀 맵 애니메이션에서도 그다지 부자연스럽지는 않지만…"HALFLIFE2"(VALVE, 2004)에서. 먼 곳까지 볼 수 없는 경우라면 오프라인 생성의 노멀 맵 애니메이션에서도 그다지 부자연스럽지는 않지만…

"HALFLIFE2"(VALVE, 2004)에서. 반대로 멀리까지 바라볼 수 있는 장면에서는 그 애니메이션의 규칙성이 드러나는 경우가 있었다"HALFLIFE2"(VALVE, 2004)에서. 반대로 멀리까지 바라볼 수 있는 장면에서는 그 애니메이션의 규칙성이 드러나는 경우가 있었다

이 방법은, 수면의 움직임만은 나름대로 리얼리티를 낼 수 있지만, 다른 캐릭터가 수면에 대해 준 인터랙티브를 반영할 수 없다는 약점도 있었다. 예를 들면, 수면을 배가 횡단해도, 수면은 주어진 잔물결 애니메이션을 반복할 뿐. 이 오프라인 생성한 노멀 맵 애니메이션에서는, 배가 물을 밀어서 만들어내는 잔물결의 변화를 표현할 수 없었다.

이러한 경우에는 수면 곳에 물보라 파티클이나 동심원형의 파문을 그리거나 하는 간이적인 표현으로 대응하는 수법이 많이 보였다. 다만, 이 방법은 노멀 맵에 의한 잔물결 표현과의 일체감이 없고, 그야말로 거짓말처럼 보이는 것이 어려웠다.

따라서,보다 현실적인 캐릭터와 수면의 상호 간섭을 재현하기 위해,이 잔물결 표현을위한 노멀 맵을 실시간으로 생성하는 접근법이 고안된다. (계속)

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


🔗 연관 지식 베이스 (Wiki)

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