유니티(Unity)/최적화

그래픽스 퍼포먼스 최적화(3) GPU 최적화

Whiny 2021. 8. 9. 14:19

모델 지오메트리 최적화

 - 필요 이상으로 삼각형을 사용하지 않습니다.

 - UV매핑의 경계 부분과 하드 에지(버텍스 2배)의 수를 최소화 합니다.

 

GPU가 처리해야할 실제 버텍스의 숫자3D 응용 프로그램에서 알려주는 숫자와 보통 일치하지 않습니다. 모델링 응용 프로그램은 일반적으로 지오메트리 버텍스 수(모델을 구성하는 각 모서리 지점의 수)를 나타냅니다.

 

하지만, GPU에서 일부 지오메트리 버텍스는 렌더링 목적으로 둘 또는 그 이상의 논리 버텍스로 나눌 필요가 있습니다.

 

버텍스는 다수의 노멀, UV좌표나 버텍스 컬러가 있다면 분리돼야 합니다. 

 

따라서 Unity에서의 버텍스 숫자는 보통 3D응용 프로그램에서 계수하는 것보다 클 수 밖에 없습니다.

 

모델의 지오메트리의 수가 GPU에 가장 중요하지만 Unity의 일부 기능은 CPU에서 모델을 처리합니다(ex. 메시 스키닝).

 

 


Unity 외부의 3D 애플리케이션에서 에셋을 만들 때 성능을 향상시키기 위한 방법은 다음과 같습니다.

 

최적의 성능을 위한 캐릭터 모델링

 - 하나의 Skinned Mesh Renderer 사용

 - 최소한의 머터리얼 사용

 - 최소한의 뼈대 사용

 - 폴리곤 수 최소화

 - 순운동학(FK)와 역운동학(IK) 분리

 


텍스처 압축

압축 텍스처를 사용하여 텍스처의 크기를 줄이고 이에 따라 로딩 시간과 메모리 사용을 줄여 렌더링 퍼포먼스를 향상시킬수 있습니다.

 

텍스처 밉맵

3D 씬에서 사용되는 텍스처에 밉맵 생성을 활성화하면, GPU가 작은 삼각형에 낮은 해상도의 텍스처를 사용하게 됩니다.

텍스처 밉맵 생성 활성화