用語説明
Impostor とは
見る角度によりビルボードの表示を変化させる技術です。
描画負荷の高いオブジェクトでも軽々と表示できます。
デメリットは
- 近づくと歪んで表示される
- テクスチャが増える
- SetPass Calls が増える
などが挙げられます。
Amplify Impostors とは
Unityで簡単にImpostorが作れる有料アセットです。
https://assetstore.unity.com/packages/tools/utilities/amplify-impostors-beta-119877
背景
Amplify ImpostorsでImpostorを作っていく中で、綺麗に表示できるモデルとそうでないモデルがあると気がつきました。
何が原因なのかを明確にするため、3つの形状でImpostorを作って比較することにしました。
検証方法
- Cubeを8つ使ってI型,L型,O型の物体を作ります。
- Amplify Impostorを使ってImpostorにします。
- 各Impostorを比較します。
結果
I型が粗くなる理由として、Amplify Impostorsはモデルの最長の箇所を基準にテクスチャを生成するため、テクスチャに無駄な空白ができるからだと考えられます。
下図はAmplify Impostorsが作ったテクスチャです。左からI型,L型,O型のものです。I型は空白が目立ちます。
アイデア
I型でも、単体でスティックキャンディのような形状であればImpostorが活用できるのではないかと考えました。
スティックとキャンディを分離して、キャンディ部分をImpostorに、スティック部分をBillboardにすれば、I型でも綺麗に描画できそうです。
ただこの方法はMaterialを2つ使うため、大量に描画すると SetPass Calls がかさむことから、活用できる用途は限られます。
リポジトリ