컴퓨터 그래픽에서 테셀레이션이란 무엇입니까


16

최근 게임에서 테셀레이션 (Tessellation)이라는 것을 발견했습니다. 설정을 켜면 프레임 속도가 떨어집니다.

전원을 켰을 때 앤티 앨리어싱처럼 보입니다.

누군가 GPU가 정확히 무엇을하는지에 대한 추가 정보를 줄 수 있습니까?


2
오, 친애하는 2 답변과 최고의 사진 컴퓨터 그래픽이 없습니다.
joojaa

답변:


25

테셀레이션은 그래픽 카드에서 프리미티브 (삼각형, 선, 점 등)를 생성 할 수있는 기술입니다. 특히, 현재 지오메트리를 더 미세한 메쉬로 반복적으로 세분화 할 수 있습니다.

이를 통해 그래픽 카드에 비교적 거친 메쉬를로드하고 더 많은 정점과 삼각형을 동적으로 생성 한 다음 화면에 훨씬 매끄럽게 보이는 메쉬를 만들 수 있습니다.

테셀레이션 예

대부분의 경우이 테셀레이션은 각 단일 프레임에서 새로 수행되므로이를 활성화하면 프레임 속도가 저하 될 수 있습니다.

테셀레이션은 여러 단계로 수행되며 정점 셰이더 후에 수행됩니다.

단계

각 단계의 용어는 API에 따라 다릅니다. DirectX에서는 헐 셰이더, 하드웨어 테셀레이션 및 도메인 셰이더입니다. OpenGL에서는 테셀레이션 컨트롤 셰이더, 테셀레이션 프리미티브 생성 및 테셀레이션 평가 셰이더라고합니다.

첫 번째 단계와 마지막 단계는 프로그래밍 가능하며 실제 테셀레이션은 고정 기능 단계에서 하드웨어에 의해 수행됩니다.

테셀레이션 컨트롤 셰이더에서 세분화 유형 및 수를 설정합니다.

그런 다음 하드웨어 테셀 레이터는 컨트롤 셰이더에 따라 형상을 나눕니다.

마지막으로 테셀레이션 평가 셰이더가 새로 생성 된 각 정점에 대해 호출됩니다. 이 셰이더에서는 생성하려는 프리미티브 유형과 정점 간격 및 기타 여러 가지를 설정합니다. 이 쉐이더는 버텍스 쉐이더와 마찬가지로 모든 종류의 버텍스 당 계산을 수행하는 데에도 사용할 수 있습니다. 생성 된 정점마다 적어도 한 번 호출되는 것이 보장됩니다.

프리미티브에 대한 추가 작업을 수행하려는 경우 형상 셰이더를 추가 할 수 있습니다.


1
@Nicol 감사합니다. 그에 따라 답변을 편집했습니다.
Dragonseel

7

파이프 라인에서 3 단계를 활성화합니다.

첫 번째는 테셀레이션 컨트롤 셰이더 (D3D의 헐 셰이더)로 정점 세트를보고 별도의 삼각형으로 나누는 방법을 출력합니다.

두 번째는 요청 된 삼각형을 생성하는 고정 함수 단계입니다.

생성 된 정점마다 실행되는 테셀레이션 평가 셰이더 (D3D의 도메인 셰이더)의 세 번째 단계는 생성 된 정점의 무게 중심 좌표를 기반으로 올바른 위치에 배치합니다.

메시가 카메라에 더 가까울 때 더 많은 삼각형을 생성하기 위해 세부 수준에 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.