「Life is Strange」のようなアウトラインシェーダーを作成するにはどうすればよいですか?


13

人生のようなスケッチシェーダーを奇妙にしたい。

シェーダーには2つの部分があります。

1.アニメーションの破線

2.騒々しい輪郭

ノイズの多いアウトラインを作成する方法を知りたいですか?

オブジェクトの概要を見る

record_2019_01_21_09_43_07_10

record_2019_01_21_09_51_00_896

record_2019_01_21_09_45_53_942

record_2019_01_21_11_37_27_699

最初に、入ってくる頂点データをコピーしてアウトラインを作成し、法線方向に合わせてスケーリングしてからカルバックしましたが、アウトラインはオブジェクトの内部で移動することがあるため、イメージ効果のようなものだと思います。とにかく、誰かがこのシェーダーを実装するのを手伝ってくれれば感謝します:)

私が試したもの

エッジ検出を使用し、頂点シェーダーでアニメーション化しましたが、これは上記のgifのようには良くありません。

record_2019_01_21_18_16_43_440

record_2019_01_21_18_27_28_597

回答:


1

Unreal Engine 4でも似たようなことをしたので、概念だけを説明します。それを行うには2つの方法があり、それらはパフォーマンスと実装の容易さの間のトレードオフの異なる勾配です。

  1. まず、メインメッシュの上に、少し大きくなった新しいメッシュを追加します(物理コライダーメッシュのように)。次に、透明なマテリアルシェーダーを作成し、シェーダーを有効にします。プレーヤーの視錐台はエンティティからx距離単位内にあるため、メッシュを表示します。これは透明シェーダーのためにパフォーマンスが高くなりますが、特定のポイントでハイライトされたオブジェクトのセットが少ないため、実装が簡単で実行可能です。

  2. ハッシュラインを使用してベーステクスチャを作成し、あらかじめ決められたマトリックスセットに従ってテクスチャ座標を移動します。これにより、「アニメーション化されたテクスチャ」のような錯覚が生まれます。業界では、ダイナミックマテリアルとも呼ばれます(詳細はありますが、必要に応じて読むことができます)。概要については、ウェブ上で多くのチュートリアルを見つけることができます。ベースメッシュの角度の変化でハッシュラインを調整する必要はないことは言うまでもありませんが、上記のスクリーンショットと同様の結果を得るには、ディスプレイスメントマトリックスとマテリアルの更新時間を調整する必要があるため、この手法の実装にはかなり時間がかかります。

パフォーマンスに問題がない場合は、1に進みます。すべてのFPSがカウントされる場合、2を使用しますが、解決に時間がかかる多くの問題が予想されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.