Help us understand the problem. What is going on with this article?

[UE4]Custom Primitive Dataを使ってAuto Instancing機能を活用する

image.png
UE4.23からAuto Instancing機能が搭載され、上記の様に同一マテリアルの同一オブジェクトをレンダリングする際にインスタンシングされる(一つのドローコールにまとめる)様になりました。

下図の様にドローコールがLOD単位でひとまとめにされます。便利。
image.png

しかし、以下の様にマテリアルインスタンスを各オブジェクトに設定するとインスタンシングされません。(めんどくさかったので先頭の6つのオブジェクトしかやっていません。)
image.png
image.png

参考: 使用した親マテリアル
image.png
この様に異なったマテリアルインスタンスにしてしまうとインスタンス化はできないのですが、それだけだとちょっとパラメータが違うだけのオブジェクト達も常に別々にドローコールされてしまいもったいないです。UE4ではそれを解決するCustom Primitive Dataという手法を用意しています。

親マテリアルの変数を選択すると設定に、"Use Custom Primitive Data"という項目があります。こちらにチェックをいれます。
image.png

するとマテリアルの変数がCustom Primitive Dataという名前に変わります。
image.png

このCustom Primitive Dataはマテリアル単位で設定するのではなく、各Mesh Component単位で値を設定します。それぞれのメッシュのRenderingカテゴリの中に"Custom Primitive Data"という項目があると思うので、そこに今回設定したい色をそれぞれ設定します。 (この項目は4.24から。4.23ではC++/BPのみから設定可能?)
image.png

すると、別々のマテリアルインスタンスにすることなく、下図のように一つのマテリアルを用いながらも、Custom Primitive Dataをマテリアル内で参照することで、マテリアルインスタンスと同様の効果を得ることができます。
image.png

同一マテリアルなので、下図のようにAuto Instancingが機能しており、それぞれのメッシュのパラメータが違っていてもドローコールがまとめられています!
image.png

ご参考になれば幸いです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした