본문 바로가기
프로그래밍/Unity

Unity - 유용한 개발 에셋 유틸 : GPU Instancer

by neive 2023. 4. 28.
728x90

풍성한 수풀이나 많은 오브젝트들이 표시되야

할 때 게임의 부하를 줄여주는 유틸 입니다

 

일단 설명을 보고 아래 예제를 참고 하시면 됩

니다

 

스토어 링크

https://assetstore.unity.com/packages/tools/utilities/gpu-instancer-117566?aid=1011lvKwp

 

 

 

ReadMe

GPU Instancer v1.7.6
Copyright ©2018-22 GurBu Technologies
---------------------------------
Thank you for supporting GPU Instancer!
GPU 인스턴서를 지원해 주셔서 감사합니다!

---------------------------------
DOCUMENTATION
---------------------------------
Please read our online documentation for more in-depth explanations and customization options at:
자세한 설명과 사용자 지정 옵션은 다음에서 온라인 설명서를 참조하십시오:
http://wiki.gurbu.com/

---------------------------------
SETUP
---------------------------------
1. Add the desired Managers to your scene
1. scene 에 원하는 관리자를 추가합니다.

1.1. Add Prefab Manager
Tools -> GPU Instancer -> Add Prefab Manager

1.2. Add Detail Managers to your scene (Requires at least one Unity terrain present in the scene)
1.2. 장면에 세부 관리자 추가(장면에 하나 이상의 Unity Terrain이 있어야 함)
Tools -> GPU Instancer -> Add Detail Manager For Terrains

1.3. Add Tree Managers to your scene (Requires at least one Unity terrain present in the scene)
1.3. 장면에 트리 관리자 추가(장면에 하나 이상의 Unity Terrain이 있어야 함)
Tools -> GPU Instancer -> Add Tree Manager For Terrains

2. In the Inspector window, press the "?" button at the top-right corner to get detailed information about setting up the manager.
2. Inspector 에서 관리자 설정에 대한 자세한 정보를 보려면 오른쪽 상단 모서리에 있는 "?" 버튼을 클릭하세요.

Additionally, you can check the Getting Started Documentation from the following website:
또한 다음 웹 사이트에서 시작 설명서를 확인할 수 있습니다:
https://wiki.gurbu.com/index.php?title=GPU_Instancer:GettingStarted


Best Practices
---------------------------------
It is highly recommended to read the best practices wiki page to get the most out of GPU Instancer:
GPU 인스턴스를 최대한 활용하려면 모범 사례 위키 페이지를 읽는 것이 좋습니다:
https://wiki.gurbu.com/index.php?title=GPU_Instancer:BestPractices

Tools
---------------------------------
Tools -> GPU Instancer -> Scene Prefab Importer
The Scene Prefab Importer is designed to easily define prefabs from the existing prefab instances in your scenes to the GPUI Prefab Manager as prototypes.
Scene Prefab Importer는 장면의 기존 프리팹 인스턴스에서 GPUI Prefab Manager로 프리팹을 프로토타입으로 쉽게 정의하도록 설계되었습니다.

Tools -> GPU Instancer -> Prefab Replacer
Replaces the selected GameObjects in the scene hierarchy with the selected prefab as instances of that prefab.
scene hierarchy 에서 선택한 게임 오브젝트를 해당 프리팹의 인스턴스로 선택한 프리팹으로 바꿉니다.

Edit -> Preferences -> GPU Instancer
GPU Instancer Settings can be used to personalize the GPUI Manager editors according to your needs.
GPU 인스턴서 설정을 사용하여 필요에 따라 GPUI Manager 편집기를 개인화할 수 있습니다.

Additional Components
---------------------------------
GPU Instancer includes additional MonoBehaviour components that you can use to manage custom operations. For detailed information on these components, you can
check the GPU Instancer Getting Started Documentation page at:
GPU Instancer에는 사용자 지정 작업을 관리하는 데 사용할 수 있는 추가 MonoBehaviour 구성 요소가 포함되어 있습니다. 이러한 구성 요소에 대한 자세한 내용은
다음에서 GPU Instancer 시작하기 설명서 페이지를 확인하십시오:
https://wiki.gurbu.com/index.php?title=GPU_Instancer:GettingStarted#Components

 

메뉴얼 자체는 대단히 심플 합니다 구매 페이지

에 유튜브 영상도 한번 봐주시는게 도움이 됩니

 

저도 한번 사용해 보겠습니다 성능이 어느 정도

일지

 

URP 환경에서 기본적으로 블룸 등 불필요한 효과를 끄면 드로우 콜이 19 군요.. 이제 GPU Instancer 를 써서 얼마나 늘어나나 체크해봅시다
Tools 에서 3가지 Add 를 하나씩 실행 시켜서 씬에 배치해 줍시다
그 다음 메뉴얼 대로 사용할 프리팹을 Add 시키고 터레인 페인트를 통해서 그리면 되는데 한개만 배치해봅니다.. 19 -> 25로 드로우콜이 6개 늘었군요
진정한 성능은 사실 복수를 배치했을 때 알 수 있죠 이렇게 많이 배치해도 25 그대로 입니다

https://youtu.be/YVy9glX_LCA

이렇게 보기만 해도 렉걸리는 배치를 해도 드로우콜은 19! 보통 이걸 직접 터레인에서 배치를 하면 드로우콜 400 정도는 가볍게 넘지 않을까 싶네요

 

 

 

 

 

식물 샘플이 부족하다면 아래 에셋을 받아서 같이

활용하는 것도 괜찮습니다

 

https://assetstore.unity.com/packages/3d/vegetation/trees/conifers-botd-142076

 

Conifers [BOTD] | 3D Trees | Unity Asset Store

Elevate your workflow with the Conifers [BOTD] asset from forst. Find this & other Trees options on the Unity Asset Store.

assetstore.unity.com

Conifers [BOTD] 안에서

Conifers [BOTD] URP

패키지를 실행 후

CTI_URP_12.0_runtime

패키지를 실행

 

자신의 유니티 버전이나 URP 사용 여부에 따라서 알맞은 것을

임포트 해주면 됩니다

 

 

728x90

댓글