Skip to content

한정 조건부 동적 PRT(1)~동적 PRT 제1단계 PSF 기법이란?

[칼럼 핵심 요약]
정적 PRT가 발표된 뒤 세계 실시간 3D 그래픽 연구자들이 적극적으로 연구개발에 나선 것이 '장면상의 객체를 움직일 수 없다'는 제약 철폐다. PSF라는 개념이 이 제약 철폐를 향한 큰 발판이 된다.

🌐 원문 링크: 限定条件付き動的PRT(1)~動的PRT第一段階PSF技法とは? (Mynavi News)
📅 원문 발행일: 2009-07-03 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

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

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

📖 본문 해설

[원문 리드문] > 정적 PRT가 발표된 뒤 세계 실시간 3D 그래픽 연구자들이 적극적으로 연구개발에 나선 것이 '장면상의 객체를 움직일 수 없다'는 제약 철폐다. PSF라는 개념이 이 제약 철폐를 향한 큰 발판이 된다.

동적 PRT 첫 단계 PSF 기술이란?

정적 PRT가 발표된 뒤 세계 실시간 3D 그래픽 연구자들이 적극적으로 연구개발에 나선 것이 '장면상의 객체를 움직일 수 없다'는 제약 철폐다.

2005년 SIGGRAPH 2005에서 Kun Zhou 씨가 발표한 'Precomputed Shadow Fields for Dynamic Scenes'라는 논문에서 제창된 'Precomputed Shadow Fields'(PSF)라는 개념이 이 제약 철폐를 향한 큰 발판이 된다.

이것은 개별 객체가 모양 변형이 허용되지 않지만 각 위치를 변경하거나 기울기를 변경할 수있는 동적 PRT입니다. 석상이나 동상, 연필이나 펜, 병이나 식기 등의 그 자체가 변형되지 않는 강체 모델이면, 장면에 움직임을 더해도 활용할 수 있는 PRT이며, 3D게임에의 응용 가능성이 훨씬 끌린 기술이라고 할 수 있다.

그런데 정적 PRT로 장면의 움직임에 대응할 수 없었던 데는 근본적인 이유가 있었다. 그것은 "장면 전체를 "하나"의 객체로 취급한다"는 큰 전제가 있었기 때문이다. 그래서, 장면을 「복수의 물건으로 이루어진다」로서 분해해 생각해 가는 것은 어떨지, 라고 하는 발상이 태어나게 되었다. 즉, 정적 PRT에서의 차폐 구조에 대한 생각을 '자신의 부위가 자신을 차폐하는 '자기 차폐''와 '다른 사람이 미치는 차폐'로 나누어 생각하게 하는 것이다.

토끼의 「자기 차폐」란, 예를 들면 토끼의 귀가 동체를 숨기는 것. 「다른 사람에 의한 차폐」란 불상의 그림자가 찻주전자에 걸리는 상황토끼의 「자기 차폐」란, 예를 들면 토끼의 귀가 동체를 숨기는 것. 「다른 사람에 의한 차폐」란 불상의 그림자가 찻주전자에 걸리는 상황

자신이 변형되지 않는 강체의 경우, 당연히 자기 차폐 구조는 변하지 않습니다. 즉, 이것은 사전 계산할 수 있다는 것이다.

형상 변화하지 않는다고 전제라면, 자기 차폐에 대해서는 사전 계산해 둘 수 있다형상 변화하지 않는다고 전제라면, 자기 차폐에 대해서는 사전 계산해 둘 수 있다

정적 PRT에는 없었던 동적 PRT만의 요소가 되는 것이 '다른 사람에 대한 차폐'다.

다른 사람에 대한 차폐는 자신을 중심으로 한 일정 거리 떨어진 곳에 있는 동심구(중심을 동일하게 하여 반경을 바꾼 구) 상의 점에 대한 차폐구조로 생각한다.

즉, 아래 그림에서 해설하면 그림의 토끼 주위에 눈에 보이지 않는 가상적인 구를 생각하고 그 구의 내면에 무수한 카메라를 설치하여 각 점에서 토끼의 실루엣이 어떻게 보이는지를 모두 기록해 둔다는 이미지이다.

토끼 주위에 눈에 보이지 않는 가상적인 구를 생각해, 그 구의 내면에 무수한 카메라를 설치해, 각 점으로부터 토끼의 실루엣이 어떻게 보이는지를 모두 기록해 둔다토끼 주위에 눈에 보이지 않는 가상적인 구를 생각해, 그 구의 내면에 무수한 카메라를 설치해, 각 점으로부터 토끼의 실루엣이 어떻게 보이는지를 모두 기록해 둔다

오브젝트 자체가 변형되지 않으면, 그 구 내의 각 점에 설치된 카메라에서의 외관은 변하지 않는다. 즉, 각 방향으로 다른 사람에 대한 차폐 구조는 불변으로 생각할 수 있습니다. 이 타자에의 차폐 구조를 「Shadow Fields」라고 부르고, 이것을 사전 계산해 구하기 때문에 "Precomputed" "Shadow Fields"이며, PSF가 됩니다.

Shadow Fields 사전 계산

이 PSF 기법의 구조를 어떠한 것인가. 조금 씹어보고 가기로 하자.

자기 차폐의 차폐 구조의 사전 계산은 정적 PRT 때와 거의 동일하다. 각 3D 모델 상의 모든 버텍스으로부터 자기 차폐 구조를 조사/추출하고, 이것을 최종적으로는 구면조화함수(Spherical Harmonics)로 근사해 그 스케일링 계수를 취득하고, 이것을 차폐 계수 벡터로서 보존하게 된다.

약간 개념의 전환이 필요한 것은, 타자에게의 투사를 요구하는 Shadow Fields의 산출이다. 자기 차폐의 산출에서는, 그 3D 오브젝트를 구성하는 버텍스으로부터 본 차폐 구조를 구하고 있었지만, 이것에 대해, Shadow Fields의 산출은, 그 동심구상의 각 점으로부터 본 차폐 구조를 구하게 된다.

즉, 차폐 구조를 구하는 위치가 3D 오브젝트의 외곽측으로부터 행해진다는 것 이외, 하는 것은 자기 차폐의 계산과 같은 것이다. 각 동심구상의 모든 점으로부터 차폐 구조를 얻고, 이것을 구면조화함수(Spherical Harmonics)로 근사하여 그 스케일링 계수를 구하여 보존하게 된다.

이때의 반경 r은 물체의 경계구(바운딩 스피어 : Bounding Sphere. 그 물체 전체를 완전히 묶을 수 있는 구)를 기본으로 하여 0.2r~8.0r까지 적당한 단계로 결정하고 있다고 한다. 피라미드사의 실장에서는 0.2r~8.0r까지의 각각을 32등분해 실장했다고 한다.

「다른 사람에게의 차폐 구조」의 사전 계산은, 동심구상의 각 점으로부터 3D 모델 방향을 향한 차폐 구조를 구한다. 구한 차폐 구조 정보는 구면조화함수(Spherical Harmonics)로 근사하여 그 스케일링 계수를 구하여 보존한다. 이 흐름은 정적 PRT와 동일「다른 사람에게의 차폐 구조」의 사전 계산은, 동심구상의 각 점으로부터 3D 모델 방향을 향한 차폐 구조를 구한다. 구한 차폐 구조 정보는 구면조화함수(Spherical Harmonics)로 근사하여 그 스케일링 계수를 구하여 보존한다. 이 흐름은 정적 PRT와 동일

이 자기 차폐나 Shadow Fields의 산출은, 그 장면에 등장하는 3D 오브젝트의 수만큼 실시하게 된다. 예를 들어 4 종류의 3D 오브젝트가 등장한다면 그 4 종류에 대해 각각 자기 차폐와 Shdaow Fields를 산출할 필요가 있다.

주목되는 것은 형상이므로, 색 차이의 동일 형상 오브젝트를 등장시키는 3D 게임에서의 활용의 경우에는, 한 번 산출한 자기 차폐나 Shdaow Fields는 유용을 할 수 있게 된다. 또한, 동일한 형상으로 크기가 다른 것(확대 축소한 것)도 동일하게 취급할 수 있다. (계속)

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


🔗 연관 지식 베이스 (Wiki)

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