본문 바로가기
programing/Graphics

[펌]DirectX 11 테셀레이션(Tessellation)—테셀레이션이 무엇이고, 왜 중요한가

by RedWiz 2016. 8. 16.

기본적으로 테셀레이션은 폴리곤을 미세한 조각으로 세분화하는 방법입니다. 예를 들어, 정사각형을 대각선으로 자른다면 이는 사각형을 두 개의 삼각형으로 “조각 내는” 것입니다. 그 자체만으로 테셀레이션은 리얼리즘을 향상시키기 위한 작은 일을 한 것입니다. 이를테면 게임 내에서 사각형이 두 개의 삼각형으로 렌더링 되었는지 아니면 2천 개의 삼각형으로 렌더링 되었는 지는 중요하지 않습니다. 테셀레이션은 새로운 삼각형이 새로운 정보를 묘사하기 위해 사용될 경우에만 리얼리즘을 향상시킵니다.

Triangle MappingDisplacement Mapping
변위 맵(왼쪽)이 평평한 표면에 적용될 때, 그 결과로 표면(오른쪽)은 변위 맵에서 인코딩된 높이 정보를 표시합니다.

변위 맵핑 이라고 불리는 기술은 새로운 삼각형을 사용하기 위해 삽입하는 방법 중 가장 간단하고 유명한 방법 중 하나입니다. 변위 맵은 높이 정보를 저장한 텍스쳐로, 이것이 표면에 적용 되면 표면 상의 꼭지점들을 높이 정보를 기반으로 위 또는 아래로 이동시킵니다. 예를 들어, 그래픽 아티스트는 조각 작품을 만들기 위해 대리석 판을 가지고 꼭지점들을 이동시켜 완성 할 수 있습니다. 또 다른 유명한 기술은 크레이터와 계곡, 봉우리를 만들기 위해 변위 맵을 지형 위에 적용 시키는 방법이 있습니다.

테셀레이션과 마찬가지로 변위 매핑은 오랜 시간 동안 존재 했지만, 최근까지는 한번도 인기를 얻지 못했습니다. 그 이유는, 변위 매핑이 효과를 발휘하기 위해서는 표면상에 수많은 꼭지점들이 존재해야 하기 때문입니다. 대리석 조각에 대한 예를 보면, 만일 대리석 조각이 8개의 꼭지점으로 이루어져 있다고 했을 때 그것들 사이의 상대 변위로는 아무리 애를 써도 용을 만들 수는 없습니다. 세부적인 형상을 만들기 위해서는, 새로운 형태를 묘사하기 위한 베이스 메쉬에 충분히 많은 꼭지점이 있어야만 가능합니다. 본질적으로, 변위 매핑은 테셀레이션이 필요하며, 그 반대의 경우도 마찬가지입니다.

DirectX 11으로 테셀레이션과 변위 매핑은 마침내 함께 사용 가능해 졌으며, 이미 개발자들은 이를 이용한 개발에 뛰어들었습니다. 에일리언 VS 프레데터와 메트로 2033과 같이 유명한 게임들은 부드러운 형태의 모델을 제작하기 위해 테셀레이션을 사용했으며, 밸류사와 id 소프트웨어의 개발자들은 이 기술을 그들의 기존 게임 캐릭터에 적용시키기로 확언하였습니다.

Coarse Model
거친 표면의 모델(왼쪽)이 테셀레이션을 통해 부드러운 모델(중간)로 만들어 집니다. 변위 매핑이 적용(오른쪽)되면, 캐릭터는 영화처럼 실제에 가까운 모습이 됩니다. ©2008 id 소프트웨어 케네스 스콧.

DirectX 11 테셀레이션 파이프라인이 프로그래밍 가능해 졌기 때문에, 수많은 그래픽 문제들을 해결하는데 사용할 수 있습니다. 다음의 4가지 예를 살펴보세요.

완벽한 범프 매핑

Model Comparision

가장 기본적으로, 변위 매핑은 기존의 범프 매핑 기술을 드롭인 교체하는 것으로 사용될 수 있습니다. 일반 매핑과 같은 현재의 기술은 더 나은 픽셀 쉐이딩을 통해 울퉁불퉁한 표면의 환영을 만듭니다. 이러한 모든 기술은 특별한 경우에만 작동 가능하며, 작업하는 것 중 부분적인 것만 정확하게 동작합니다. 범프 매핑 중 가장 진보된 기술인 시차 차폐 매핑의 경우를 보면, 오버 래핑 모형의 환영을 만들어 냈지만 평평한 표면에서만 동작했고 물체의 내부만 가능했습니다(상단 이미지 참조). 진정한 변위 매핑은 이러한 문제점들을 하나도 가지고 있지 않으면서 모든 각도에서 보더라도 정확한 결과를 만들어 냅니다.

더 부드러워진 캐릭터

Smoothing Character
PN-삼각형은 아티스트가 개입하지 않아도 자동으로 부드러운 캐릭터를 만들어 냅니다. 기하학 및 광선의 리얼리즘 둘 다 향상됩니다.

테셀레이션의 자연스러움을 위한 또 다른 파트너는 바로 정제 알고리즘입니다. 정제 알고리즘은 테셀레이션의 도움으로 거친 모델을 부드러운 모습의 모델로 만들어 줍니다. 유명한 예제는 PN-삼각형(N-패치로 알려진)이 있습니다. PN-삼각형 알고리즘은 세밀하게 조각난 삼각형으로 다시 그려진 저해상도 모델을 곡선의 표면으로 변환시킵니다. 요즘 게임에서 당연하게 받아 들였던 울퉁불퉁한 캐릭터 이음새 및 다각형으로 보이는 자동차 바퀴, 거친 표면을 가진 기능과 같은 많은 시각적 모형들을 이러한 알고리즘의 도움으로 제거할 수 있습니다. 예를 들어 PN-삼각형은 스토커: 콜 오브 프리피아트에서 부드럽고 더 유기적으로 보이는 캐릭터를 만들기 위해 사용되었습니다.

부드럽게 이어지는 세부 레벨

여러분은 아마도 방대하고 개방된 환경을 가진 게임에서 먼 거리의 물체가 갑자기 나타나거나 사라지는 모습을 보았을 것입니다. 이는 게임 엔진을 통해 세부적인 내용이나 LOD가 서로 다른 레벨들을 전환함으로써 기하학적인 워크로드를 유지할 수 있게 합니다. 같은 모델이나 환경의 많은 버전을 유지해야 하는 것이 요구된 이래로 지금까지 세부적인 묘사의 수준을 지속적으로 변경할 수 있는 쉬운 방법은 없었습니다. 다이나믹 테셀레이션은 세부 수준의 레벨을 그때그때 변경함으로써 이러한 문제를 해결했습니다. 예를 들어, 원거리에 있는 건물이 처음 시야에 들어왔을 때는 단지 10개의 삼각형 만으로 렌더링이 가능합니다. 여러분이 더 가까이 이동한다면, 건물의 특징들이 두드러지게 나타나며 여분의 삼각형들은 창문이나 지붕과 같은 세부 형태 묘사에 사용됩니다. 마침내 건물의 문 앞까지 왔다면, 변위 매핑으로 촘촘하게 매워진 표면을 수천 개의 삼각형들이 렌더링 하고 있을 것입니다. 다이나믹 테셀레이션을 통해 물체가 갑자기 나타나는 현생을 없어졌고, 게임 환경은 무한에 가까운 기하학적인 세부 묘사가 가능해 졌습니다.

확장 가능한 작품

개발자들에게 테셀레이션은 그들의 컨텐츠 생성 파이프라인의 효율을 크게 향상시켜 줍니다. 밸류사의 제이슨 미첼은 테셀레이션을 사용하게 된 동기에 대해 다음과 같이 설명했습니다: “우리는 제작물의 스케일을 높이거나 낮출 수 있게 해주는 능력에 대해 관심을 가지고 있습니다. 그것은 우리가 한번 모델을 만든 뒤 그것을 영화와 같은 품질로 스케일을 높일 수 있길 원한다는 것입니다… 반대로, 우리는 주어진 시스템에서 실시간 렌더링 요구를 충족시키면서 제작물의 품질 스케일을 자연스럽게 낮추고 싶습니다.” 이러한 한번 제작된 모델을 다양한 플랫폼에 걸쳐서 사용할 수 있는 능력이 있다는 것은, 개발 기간을 더 짧게 할 수 있으며 PC 게이머들에게 그들의 GPU에서 가능한 최고의 이미지 품질을 가져다 줄 수 있다는 의미입니다.



출처 : http://www.nvidia.co.kr/object/tessellation_kr.html


'programing > Graphics' 카테고리의 다른 글

GLUT 3.7.6  (0) 2017.03.16
3Dグラフィックス・マニアックス  (0) 2016.09.19
Z 버퍼 & AlphaTesting & AlphaBlending  (0) 2016.08.25
PBR과 Diffuse와 Albedo  (2) 2016.08.19