[UE4]Custom Primitive Data를 사용하여 Auto Instancing 기능 활용


UE4.23부터 Auto Instancing 기능이 탑재되어 위와 같이 동일한 머티리얼의 동일한 객체를 렌더링 할 때 인스턴싱되는 (하나의 드로우 콜로 정리) 되었습니다.

아래 그림과 같이 드로우 콜이 LOD 단위로 일괄 정리됩니다. 편리.


그러나 다음과 같이 머티리얼 인스턴스를 각 객체에 설정하면 인스턴스화되지 않습니다. (귀찮아서 선두의 6개의 오브젝트 밖에 하고 있지 않습니다.)



참고: 사용한 부모 재질

이와 같이 다른 머티리얼 인스턴스로 해 버리면 인스턴스화는 할 수 없습니다만, 그것 뿐이라면 조금 파라미터가 다른 만큼의 오브젝트들도 항상 따로따로 드로콜 되어 버려 아깝습니다. UE4에서는 이를 해결하는 Custom Primitive Data라는 기법을 준비하고 있습니다.

상위 머티리얼의 변수를 선택하면 설정에 "Use Custom Primitive Data"라는 항목이 있습니다. 여기에 체크를 넣을 수 있습니다.


그러면 머티리얼 변수가 Custom Primitive Data라는 이름으로 바뀝니다.


이 Custom Primitive Data는 머티리얼 단위로 설정하는 것이 아니라 각 Mesh Component 단위로 값을 설정합니다. 각각의 메쉬의 Rendering 카테고리 안에 "Custom Primitive Data"라는 항목이 있다고 생각하므로, 거기에 이번에 설정하고 싶은 색을 각각 설정합니다. (이 항목은 4.24부터. 4.23에서는 C++/BP만으로 설정 가능?)


그러면 별도의 머티리얼 인스턴스가 되지 않고 아래 그림과 같이 하나의 머티리얼을 사용하면서도 Custom Primitive Data를 머티리얼 내에서 참조하여 머티리얼 인스턴스와 동일한 효과를 얻을 수 있습니다.


동일 머티리얼이므로, 아래 그림과 같이 Auto Instancing이 기능하고 있어, 각각의 메쉬의 파라미터가 달라도 드로우 콜이 정리되고 있습니다!


도움이되면 다행입니다.

좋은 웹페이지 즐겨찾기