UDN
Search public documentation:

TessellationDX11KR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 언리얼 엔진 3의 DirectX 11 > DirectX 11 테셀레이션
UE3 홈 > 머티리얼과 텍스처 > DirectX 11 테셀레이션

DirectX 11 테셀레이션


개요

고전 게임의 콘텐츠 파이프라인 지오메트리는 트라이앵글 메시에서 생성됩니다. 그래픽 카드는 트라이앵글 메시를 매우 효율적으로 렌더할 수 있으니 아티스트가 만든 메시를 직접 렌더하는 것이 자연스럽습니다. 불행히 사용된 트라이앵글 수가 너무 적으면 품질이 나쁘거나, 너무 많으면 렌더링 속도가 느리거나 할 수 있습니다. 요즘의 그래픽 카드는 일부 입력 메시를 고도로 테셀레이트된 렌더 메시로 분할하여 트라이앵글 수를 증폭시키는 하드웨어 테셀레이션 기능을 지원합니다. 즉 메시의 트라이앵글 밀도를 조금 낮춰 만들고서 거리나 (지오메트리 디테일 등) 다른 속성에 따라 재정의할 수 있는 것입니다. 이 프로세스는 디스플레이스먼트(displacement, 변위, 노멀방향으로 튀어나오게 하는) 매핑을 가능하게 하기 위해 프로그래밍 가능합니다.

notess_head.jpgtessdispl_head.jpg
좌: 테셀레이션이 없음
우: 테셀레이션과 디스플레이스먼트 있음

테셀레이션이 모든 세부도 문제를 해결해 주지는 못하며, 중간 정도 디테일의 자연스런 오브젝트에는 잘 작동합니다. 테셀레이션은 작은 트라이앵글을 많이 사용할 때 그래픽 카드 퍼포먼스가 크게 저하될 수 있으니 조심해서 사용해야 합니다. 퍼포먼스상 특징은 그래픽 카드 제조사에 따라 달라질 수 있습니다.

활성화 방법


주: 이 기능은 DirectX 11 을 필요로 합니다. (활성화 방법은 DirectX 11 Rendering KR 참고).

다음 이미지는 테셀레이션이 켜진 머티리얼을 나타냅니다:

TessEditor.jpg

테셀레이션 팩터는 가장자리에 6, 트라이앵글 내부에 5 로 설정되었습니다.

또한 머티리얼의 WorldDisplacement 입력으로 디스플레이스먼트(displacement) 매핑도 사용합니다. 이 머티리얼은 텍스처의 Blue 채널을 사용하여 노멀 방향으로 튀어나오게 만듭니다. 이는 두 (min displacement, max displacement) 벡터를 블렌딩(혼합)하는 선형 보간에 의해 이루어 집니다. 두 벡터 다 Z 컴포넌트만 사용하기에, (0,0,x) 형태의 벡터가 나올 것입니다. 그리고서 VectorTransform 노드를 사용하여 이 벡터를 탄젠트에서 월드 공간으로 변형합니다. WorldDisplacement 가 월드 공간이 입력값을 기대하기 때문입니다. Transform 노드 없이는 디스플레이스먼트가 메시 표면에 정렬되지 않을 것이며, 버텍스는 월드 Z 축을 따라 이동할 것입니다.

테셀레이션 모드


notess.jpgflat.jpgpn.jpg
좌: 테셀레이션 없음
중: 플랫 테셀레이션 (버텍스가 더 많아, 대부분 디스플레이스먼트와 함께할 때 유용)
우: 지오메트리를 연하게 하는 PN 트라이앵글 테셀레이션 (실루엣이 더욱 원에 가까움)

테셀레이션 팩터


머티리얼 입력으로 트라이앵글 에지(edge, 가장자리)(X) 와 내부(Y)의 테셀레이션을 조절할 수 있습니다. 값을 지정하여 에지의 하위분할 빈도를 정합니다. 1 이면 테셀레이션이 없다는 뜻이며, 2 에서 6 사이의 값이 적당합니다. 이상적인 팩터는 (성능대 품질 면에서) 입력 메시에 따라, 디스플레이스먼트 콘텐츠와 바라는 품질에 따라 다릅니다. 지오메트리 부분에 따라 다를 수도 있습니다.

스무딩 그룹


PN 트라이앵글 테셀레이션 모드는 (원래 굽은 PN 트라이앵글 일부가 아닌) 하드 에지 또한 지원하여 하드웨어 테셀레이션을 사용할 때 나타날 수 있는 균열(crack)을 피할 수 있습니다.

UV 이음새 (UV Seams)


디스플레이스먼트 매핑을 사용하면 한 쪽의 버텍스가 다른 쪽에 있는 버텍스와 다른 지점으로 옮겨질 수 있기에, 에지가 벌어질(open edge) 수 있습니다. 이 문제는 현재 코드로는 해결되지 않았으나 콘텐츠를 조절하여 우회할 수 있는 문제입니다. 다음 이미지(의 빨갛게 반전된 부분)에 이 문제때문에 벌어진 오브젝트 내부 모습이 나타나 있습니다.

crack.jpg

다이내믹 테셀레이션 팩터


다음 머티리얼 노드는 카메라 거리에 테셀레이션 팩터가 어떻게 연결되는지를 나타냅니다.

DynTess.jpg

여기에 사용된 메시에 대해 조정된 값은 150 이었습니다.

다이내믹 디스플레이스먼트


다음 이미지 시퀸스는 3 단계 모델 전환 모습을 나타냅니다.

DyanmicDisplacement.jpg

디스플레이스먼트 데이터는 다른 머티리얼 속성처럼 시간에 따라 변할 수 있습니다.

앞으로


현재 구현이 최종 결정된 사항은 아닙니다. 아트 콘텐츠 제작 프로세스를 단순화하고 퍼포먼스를 향상시키기 위해 해야 할 작업이 많습니다. 이상적인 경우라면 UV 이음새가 메시에 균열을 일으키지는 말아야 할 것입니다.