多くのメッシュ アウトライン手法は、後処理の手法を使用して実行されます。 後処理では、優れた品質のアウトラインが提供されますが、多くの Mixed Reality デバイスでは非常にコストがかかる可能性があります。
MeshOutline.cs と MeshOutlineHierarchy.cs を使用して、メッシュ レンダラーの周囲のアウトラインをレンダリングできます。 このコンポーネントを有効にすると、アウトラインを表示するオブジェクトの別のレンダリング パスが導入されますが、モバイルの Mixed Reality デバイスで最適に実行されるように設計されており、後処理は使用できません。
注意
この影響の制限事項としては、水密でない (または 2 面である必要がある) オブジェクトには適していません。また、重なり合うオブジェクトでは、深度の並べ替えの問題が発生する可能性があります。
サンプル
アウトライン システムのデモについては、「メッシュ アウトライン」のサンプルを参照してください。
素材の設定
アウトラインの動作は、グラフィックス ツール/標準シェーダーで使用されます。 通常、アウトラインの素材は純色で照明のない色ですが、さまざまな効果を実現するように構成できます。 アウトラインの素材の既定の構成は次のとおりです。
- [深度の書き込み] - アウトラインによって他のオブジェクトのレンダリングが妨げられないようにするために、アウトラインの素材に対して無効にする必要があります。
- [頂点の浮き出し] - アウトラインをレンダリングするには、有効にする必要があります。
- [滑らかな法線を使用] - 一部のメッシュでは、この設定は省略可能です。 浮き出しは、頂点を頂点の法線に沿って移動することによって発生します。一部のメッシュでは、既定の法線に沿って押し出しを行うと、アウトラインの不連続性が発生します。 これらの不連続性を修正するには、このボックスをオンにして、MeshSmoother.cs によって生成される別の滑らかな法線のセットを使用します。
メッシュのスムージング
MeshSmoother.cs
は、滑らかな法線をメッシュで自動的に生成するために使用できるコンポーネントです。 このメソッドは、空間内の同じ位置を共有するメッシュ内の頂点をグループ化し、その頂点の法線を平均します。 このプロセスでは、基になるメッシュのコピーが作成され、必要な場合にのみ使用する必要があります。
上の図で、キューブ 1 ではメッシュ スムージングを利用していますが、キューブ 2 では利用されていません。 メッシュ スムージングを使用しない場合の、キューブの角の不連続点に注意してください。
ヒント
特定のメッシュ (球など) では、これらの不連続性は表示されません。 そのため、メッシュ スムージングが必要なメッシュについてはテストすることをお勧めしています。