T.TAO
ブログへ戻る
/2 min read/Technical Art

Unity Shader #6 スキャンとホログラム

#Unity#Shader#TechnicalArt
Unity Shader #6 スキャンとホログラム

Unity Shader #2 スキャニング

このノートでは、スキャン光(Scanning)とホログラム(Hologram)エフェクトの基本シェーダー実装について説明します。Amplify Shader Editorを使用したURPプロジェクトでの実装方法を紹介します。

スキャン光

基本インターフェース

Package ManagerからAmplify Shader Editorをインポートしてインストールします。Create > Amplify Shaderで新しいシェーダーファイルを作成できます。URPの場合は、UniversalのLitから始めます。

フレネルリムライト

NdotVベクトルを使用します。Nはワールド座標系の頂点法線ベクトル、Vは視線方向ベクトルです。両方とも単位ベクトルである必要があります。2つのベクトルの内積が0に近い(垂直)ほど、その頂点は見えにくくなります。したがって、オブジェクトのエッジにある頂点はNdotVが最小になります。エッジに近いほど、1-NdotVは1に近づきます。

World NormalノードとView DirectionノードでNとVを取得し、内積で乗算します。One Minusノードで反転し、Clampで0-1の範囲に制限します。pow()でエッジをよりシャープにし、定数を掛けて明るさを調整します。

スキャン光のロジック

スキャン光の本質は、テクスチャをオブジェクトのUV上で上下に移動させることです。オブジェクト空間ではなくワールド空間で移動させたいので、ワールド空間でサンプリングし、時間に基づいてy軸で上下に移動させます。

World PositionノードとAppendノードでXY平面の2次元座標を取得し、2次元の速度値を加えて、スキャンテクスチャがXY平面で上下に移動するようにします。

このシリーズの記事

Unity Shader
  1. 01Unity Shader #0 数学の基礎
  2. 02Unity Shader #1 レンダーパイプライン
  3. 03Unity Shader #2 コードの基礎
  4. 04Unity Shader #2.1 基本コマンド
  5. 05Unity Shader #3 URP へのアップグレード
  6. 06Unity Shader #4 UV 上での図形描画
  7. 07Unity Shader #5 リムライト
  8. 08Unity Shader #6 スキャンとホログラム
  9. 09Unity Shader #7 アニメトゥーンシェーダー
  10. 10Unity Shader #8 ディゾルブ
  11. 11Unity Shader #9 レンズの雨滴
  12. 12Unity Shader #13 ポストプロセス
  13. 13URP #1 Universal Lit と URP ShaderLab