본문 바로가기
3DMAX/Script

맥스에서 엔진 버텍스 보여주는 스크립트(Engine Vertex Viewer)

by tartist 2015. 12. 17.

회사 모델러들이 맥스에서 엔진 버텍스를 바로 보고 싶다는 의견이 있어 혼자서 고민하며 만들어봤습니다.

여러가지 이유로 엔진과 동일한 수는 얻어 올 수 있지만, 아래와 같은 방법으로 비슷한 수치는 얻어 올 수 있었습니다.

첨부파일을 받으시면 사용하실 수 있습니다.



1. 모델링 버텍스가 아닌 언렙 버텍스를 계산하라!

언렙을 사용하면 한 버텍스에 두개의 UV정보를 가지게 되는 경우가 생기므로 이 때 버텍스가 증가하게 됩니다.

 

 

따라서 6200개의 버텍스의 모델링이

 

언렙된 버텍스의 수를 계산하면 8500여개가 됩니다.

 

따라서 언렙전과 언렙후에 엔진에서는 버텍스수가 달라지게 됩니다.

스크립트를 사용할 때도 반드시 언렙후에 사용해야 좀더 정확한 수치를 알게 됩니다.

 

 

 

2. 연속성이 떨어지는 메쉬를 재 연산하라.

엔진에서 불 연속성의 메시라고 파단될 경우 2배로 곱해져서 버텍스가 연산된다.

근데 그 기준을 잡기가 매우 애매하다.. 그래서 불연속성이 많이 발생할 것으로 예상되는 아웃라인 쪽의 메시를 한번더 연산했다.

선택하기가 매우 까다로워 약간의 꼼수를 사용했기 때문에 정확한 갯수는 집계가 어렵다.

현재는 이 두가지의 버텍스를 카운트 하여 제법 근사치에 가까운 결과를 얻었습니다.

유니티 9120 - 맥스 6248 = 2872 차이에서

유니티 9120 - 맥스 스크립트 9086 = 34 개 차이가 남


위 모델링 외에 5개를 더 테스트해봐도 꾀 만족스러운 결과를 얻었습니다.

테스트캐릭터   맥스 버텍스 엔진 버텍스 스크립트 사용시
samuro04  6248 (3000차이) 9120 9086 (40 차이)
Achilleus  699 (500차이) 1157 1155 (2 차이)
plane03  822 (700차이) 1568 1422(140 차이)
agentsmire  711 (400차이) 1162 1160 (2 차이)
akedb  685 (500차이) 1201 1152(50 차이)
alfina  783 (400차이) 1179 1203(20 차이)


하지만, 이 외에도 노멀벡터와 라이팅 등에 의해서 재 연산되는 엔진 버텍스를 정확히 재정의하는것은 무리가 있습니다.

위 정보에 따른 버텍스는 언리얼과 유니티도 버텍스수가 다릅니다.

EngineVertexCount.mse