UnityUnityのシェーダでモデルのアウトラインを描画する方法を紹介します。アウトラインの描画方法はいくつかありますが、本記事ではモデルを法線方向に拡大する手法についてまとめます。課題1課題2法線方向モデル拡大法?さて本記事ではアウトラインの描画方法のうち、モデルを法線方向に拡大する手法についてまとめます。本サイトではこれを便宜的に法線方向モデル拡大法と呼ぶことにします。考え方はシンプルで、まず元のモデルをちょっと拡大してアウトラインを描画してから、元の大きさで通常通り描画するだけです。拡大したアウトライン部分を描画する際、前面をカリングします。これをやらないと元の大きさで描画を行った際に、描画した部分がアウトライン部分に隠れてしまいます。シェーダシェーダは次のようにします。}}説明はコメントの通りです。結果レンダリング結果は次のようになります。アウトラインの太さや色は自由に変更できます。課題1この手法には課題があります。一つ目は、同じ位置に複数の法線があるようなオブジェクトに適用すると描画がおかしくなるというものです。これは法線方向にモデルを拡大しているためです。解決策としては、法線を修正したモデルを作ればいいです。qiita.comが、モデルが増えるのでこの手法が使えるかはケースバイケースです。ちなみにモデルの形状とアウトラインの太さ次第では、アウトライン描画時のカリングをOffにすることで綺麗に描画できることもあります(もちろん描画順を制御する必要はありますが)。課題22点目の課題はアウトラインを持つ二つのオブジェクトを近い位置に配置したときに綺麗にアウトラインが表示されないというものです。これは単純にZTestの影響です。レンダリングの動作としては正しいですが、望んだ結果ではありません。これに関してはステンシルバッファを使えば解決できます(記事書いたらリンクします)。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。