메쉬 클래스

MwG·2024년 11월 18일

DirectX11

목록 보기
6/7

폴리곤 메쉬

폴리곤의 원래 뜻은 다각형이지만 컴퓨터 그래픽에선 주로 삼각형을 사용한다. 삼각형의 폴리곤 여러 개로 구성된 객체를 폴리곤 메쉬라고 한다.

게임과 같이 실시간으로 처리되는 물체들은 대부분 폴리곤 모델링 기법을 활용한다.(GPU가 폴리곤 메쉬에 최적화 되어있기 때문이다.)
더많은 폴리곤을 사용할 수록 더 정교해진다.

폴리곤 메쉬 표현방법

3D 모델링 프로그램으로 만든 폴리곤 메쉬에는 각 폴리곤 마다 정점에 대한 정보가 존재한다. 이 정점을 저장하는 것을 정점 버퍼(Vertex Buffer)이라고 한다.

그러나 위 사진을 잘 보게 되면 정점의 위치가 겹치는 것이 여러개 있다는 것을 알 수 있고 때문에 비효율적인 것을 알 수가 있다.

이렇게 중복이 되더라도 각 정점을 모두 버퍼에 저장하여 삼각형을 나타내는 것을 삼각형 리스트(Triangl List)라고 한다.

이러한 낭비를 막기 위한 두 가지 방법이 있다.

인덱스 삼각형 리스트(Indexed Triangle List)

정점 버퍼에 정점에 대한 정보를 인덱스로 나타내어 인덱스 버퍼에 저장한다. 그렇게 되면 단순히 정수로만 1 2 3 이런 식으로 나타내면 삼각형이 그려지게 된다. 인덱스 버퍼는 정수형 데이터를 갖고 있기에 정점 버퍼에 중복된 데이터를 추가로 갖고 있는 것보다 메모리 측면에서 더 효율적이다.

삼각형 스트립(Triangle Strip)

정점 버퍼 하나만 사용하며 중복되는 정점을 저장하지 않는다.
우선 t1 삼각형을 렌더링하기 위해 첫 세 정점을 처리 후 캐시에 저장한다.
t2를 처리하기 위해 첫 두 정점은 캐시에서 읽고 마지막 정점만 정점 버퍼에서 가져와 처리한다.
그렇기 때문에 정점을 저장하는 순서가 중요하다

##추가
PRIMITIVE_TOPOLOGY는 정점 정보를 어떻게 그릴 것인지에 대한 정보를 나타낸다.

밑에 코드에선 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST를 사용하여 정점 정보를 삼각형 목록으로 해석한다는 뜻이다.

<출처>
D3D11_PRIMITIVE_TOPOLOGY 열거형
얌얌 코딩 수업노트
위키 백과

0개의 댓글