베개발

3ds max와 언리얼/유니티 엔진 버텍스 갯수가 다른 이유 본문

3D/공부 메모

3ds max와 언리얼/유니티 엔진 버텍스 갯수가 다른 이유

pillow0204 2025. 4. 4. 00:35
728x90

모델링 작업을 마치고 FBX 파일로 익스포트하여 언리얼 엔진에 임포트한 후, 스태틱 메시 에디터에서 정보를 확인하니 버텍스 개수가 3ds Max에서 확인했던 것과 상당히 다르게 표시되었다. 대부분의 경우 언리얼 엔진에서 버텍스가 늘어난 것처럼 보였다.

이는 3ds Max와 언리얼 엔진이 '버텍스'를 계산하는 방식이 다르기 때문이다.


 

1. 맥스 / 언리얼 '버텍스 갯수'의 의미

 

■ 3ds max

전부 스무딩그룹이 같은 sphere와 전부 스무딩그룹이 다른 sphere. 둘다 버텍스 482개로 세어준다.

 

- 주로 지오메트리 버텍스 (Geometric Vertex) 개수를 보여준다. 이는 3D 공간상에 실제로 존재하는 고유한 정점의 개수에 가깝다. 모델의 순수한 형태를 구성하는 점의 개수라고 생각하면 이해하기 쉽다.

 

  언리얼 엔진 (및 대부분의 게임 엔진)

이번에는 버텍스 갯수가 각각 514개, 1984개로 다르다.

 

- 렌더링 버텍스 (Rendering Vertex) 개수를 보여준다. 게임 엔진은 실시간 렌더링에 최적화되어야 하므로, GPU가 데이터를 효율적으로 처리할 수 있는 형태로 버텍스 정보를 가공한다.


2. 그렇다면 왜 렌더링 버텍스 수가 더 많아지는가?

 

하나의 지오메트리 버텍스(3ds Max 기준)는 렌더링 과정에서 여러 개의 렌더링 버텍스(언리얼 엔진 기준)로 '분리'될 수 있다. 분리되는 주요 원인은 다음과 같다.

1) UV 좌표 불일치 (UV Seams)

하나의 버텍스를 여러 개의 면(폴리곤)이 공유하고 있을 때, 각 면이 해당 버텍스 위치에서 서로 다른 UV 좌표값을 가지면 (즉, UV 맵에서 끊어져 있으면), 엔진은 이를 별개의 버텍스로 취급한다. 같은 위치에 있지만 UV 정보가 다른 여러 개의 버텍스가 되는 것이다.

UV 에디터에서 UV 경계선(Seam)이 있으면, 엔진에서 '같은 위치에 있는 별도의 버텍스'로 계산한다.


2) 노멀 벡터 불일치 (Hard Edges / Smoothing Groups)

하드 엣지와 소프트 엣지의 노말 차이

각진 모서리(Hard Edge) 표현을 위해 스무딩 그룹(Smoothing Groups)을 나누거나 노멀 벡터를 직접 편집하면,

같은 위치의 버텍스라도 연결된 면에 따라 다른 노멀 방향을 가지게 된다.

엔진은 노멀 방향이 다른 버텍스들을 각각 별개의 데이터로 처리해야 하므로 버텍스가 분리된다.


3) 버텍스 컬러 불일치

버텍스 컬러를 사용하는 경우, 한 버텍스에 연결된 면들이 서로 다른 버텍스 컬러 값을 가지면 이 역시 버텍스가 분리되는 원인이 된다.

4) 탄젠트/바이탄젠트 불일치

노멀 매핑 등에 사용되는 탄젠트, 바이탄젠트 정보가 버텍스별로 다를 경우에도 분리될 수 있다.



3. 왜 엔진은 버텍스를 분리할까?

vertex attributes (버텍스 하나에 들어가있는 정보값들 같은 느낌)


GPU는 렌더링 시 버텍스 셰이더를 통해 각 버텍스의 위치, UV, 노멀, 컬러 등의 속성(Attribute)을 계산한다.

GPU는 이 속성들이 '하나의 묶음'으로 구성된 버텍스 데이터를 처리하는 데 효율적이다.

만약 한 지오메트리 버텍스가 여러 UV나 노멀 값을 가져야 한다면, GPU 입장에서는 속성값이 다른 별개의 버텍스 데이터로 존재하는 것이 처리하기 더 빠르고 단순하다.

따라서 엔진은 임포트 단계에서 이런 데이터를 미리 분리하여 GPU에 최적화된 형태로 재구성하는 것이다.


결론

 

3ds Max와 언리얼 엔진 간의 버텍스 개수 차이는 오류가 아니다. 모델링 소프트웨어는 주로 지오메트리적 관점에서 버텍스를 세고, 게임 엔진은 렌더링 파이프라인 효율성 관점에서 버텍스를 세기 때문에 발생하는 자연스러운 현상이다. 모델링 단계에서는 3ds Max의 수치를 참고하여 형태를 만들고, 최종적인 퍼포먼스 최적화 관점에서는 언리얼 엔진의 렌더링 버텍스 수를 확인하고 관리하는 것이 중요했다.

300x250