유니티 MeshBaker

MeshBaker란?

여러 개의 메시를 하나의 큰 메시로 결합하고 해당 오브젝트의 텍스처를 텍스처 아틀라스 및 텍스처 배열로 만드는 데 있어 도움을 주는 툴(Tool)입니다. 

Texture Atlas를 이용하여 한 장에 텍스쳐를 여러개 저장해놓은 상태

텍스쳐 아틀라스를 사용하지 않았다면 위 텍스쳐들은 독립적으로 존재하며 그 독립적으로 존재하는 개수만큼 드로우 콜이 발생하게 됩니다.

 

텍스쳐 아틀라스를 만들어주는 것 외에도

  • 복잡한 장면에서 메쉬 찾기, 그룹화 및 결합
  • 타일링 텍스처 처리
  • MeshRenderer / Skinnned MeshRenderer 병합 등

많은 기능들이 포함되어 있습니다. 꼭 자습서 및 공식 사이트를 참고해주세요!
http://digitalopus.ca/site/mesh-baker/

 

Mesh Baker – Digital Opus

If you care about performance… combine meshes, combine meshes, combine meshes! Mesh Baker is the ultimate mesh-combine tool, combining many meshes into one big mesh, as well as combining the textures on those objects into texture atlases and texture arra

digitalopus.ca

https://www.youtube.com/playlist?list=PLCzm-udM-shncdtvrieqgi-hHDU1kt0d4 

 

Mesh Baker Tutorials

Detailed instructional videos for specific Mesh Baker components and uses.

www.youtube.com

제가 생각하기에 많은 기능이 있지만 결국 Mesh Baker의 주요 기능은 드로우 콜을 줄이는 데 있다고 생각합니다!

 

드로우 콜을 줄이면 왜? 좋은지에 대한 아래 설명(토글 박스)에 적어두었습니다!


Mesh Baker를 사용하는 이유

위에서 잠깐 언급을 했다시피 드로우 콜 수를 줄여 게임 최적화할 수 있습니다.

 

드로우 콜은 개체를 렌더링 하기 위해 CPU에서 GPU로 보내는 요청이며, 이를 줄이면 성능이 크게 향상될 수 있습니다.

 

Mesh Baker를 100퍼센트 효과적으로 사용하기 위해서는 드로우콜과 같은 컴퓨터 그래픽 개념에 대해서 미리 알고 있어야 합니다!

 

Draw Call에 대한 설명은 아래 토글을 펼쳐서 확인해 주세요!

더보기

Draw Call에 대한 설명을 하는 포스팅이 아니기에 간단히 설명만 하고 넘어가고자 합니다.

컴퓨터 그래픽에서 Draw Call은 기본적으로 GPU(그래픽 처리 장치)에 화면에 개체를 그리도록 지시하는 명령입니다. 각 Draw Call에는 일정 수준의 오버헤드가 발생합니다. 이 오버헤드는 드로우 콜을 실행하고 관련 계산을 수행하는 데 필요한 처리 시간입니다.

씬(Scene)에 각각 고유한 메시머티리얼을 가진 오브젝트가 많은 경우 드로 콜의 수가 상당히 많아질 수 있습니다. 이러한 드로우 콜이 발생할 때마다 오버헤드가 추가되어 렌더링 프로세스가 느려지고 프레임(FPS) 속도가 저하됩니다.

따라서 Draw Call 수를 줄이면 성능이 크게 향상될 수 있습니다. 여러 개의 메시 또는 머티리얼을 하나의 메시로 결합하면 한 번의 드로 콜로 여러 개의 오브젝트를 그릴 수 있습니다. 이렇게 하면 계산 오버헤드가 줄어들고 씬을 더 빠르고 효율적으로 렌더링 할 수 있습니다.

프로젝트 팀에 디자이너가 존재하고 그 디자이너가 컴퓨터 그래픽스에 대한 지식이 있어 아틀라스 최적화 기법 등 스스로 해줄 수 있다면 Mesh Baker가 필요는 없습니다.

 

하지만, 인디게임제작자나 텍스쳐 아틀라스 등에 대한 지식이 없는 디자이너라면 Mesh Baker를 이용하여 디자이너가 하는 역할을 대신 수행할 수 있습니다! 

모바일 게임에서의 최적화 적용 사례 / Batches : 64

Mesh Baker를 사용하기 전에는 모델의 수에 따라 그만큼 메테리얼 수가 많고 메쉬들이 많아 Batcher수가 2천이 넘어갔었는데 Mesh Baker를 사용하여 Batches를 64까지 극한으로 줄인 모습입니다.

 

FPS를 비교해봤을 때 몇 배 이상 차이가 났었습니다.(비교 사진이 없는 점 양해부탁드립니다 ㅠㅠ)


Mesh Baker 사용방법

제가 정말 많이 참고했고 도움이 된 블로그 링크를 달아놓겠습니다! 제가 설명하는 것보다 훨씬 이해하기 쉽고 정리도 잘되어 있어서 공유드립니다!

https://ssunbori.tistory.com/20

 

[Unity] MeshBaker로 베이크하기

MeshBaker 공식 Documentation 참고 텍스쳐를 가진 메쉬를 베이크해볼 것 [에셋 구매 링크] 2023.05.14일 기준 50%할인중. (Spring Sale은 ~6/2까지) https://assetstore.unity.com/packages/tools/modeling/mesh-baker-5017 Mesh Baker |

ssunbori.tistory.com


구매 링크💲

이 글은 어필리에이트 링크를 포함하고 있습니다. 

위 링크를 클릭하셔서 애셋을 구매하시면 저에게 수수료가 제공됩니다.
링크를 클릭하는 것으로는 수익이 발생하지 않습니다!
감사합니다!