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

Unity Shader #8 ディゾルブ

#Unity#Shader#TechnicalArt
Unity Shader #8 ディゾルブ

Unity Shader #4 ディゾルブ

このノートでは、各種ディゾルブ(溶解)アルゴリズムの使用、ディゾルブアルゴリズムから派生したマテリアル遷移、およびUnityでC#スクリプトでディゾルブを制御する簡単なフレームワークについて説明します。

最も基本的なシンプルなディゾルブ

ディゾルブは3つの部分に分けられます:

  1. 未溶解部分:完全に不透明、元の固有色を保持
  2. 溶解済み部分:完全に透明、不可視
  3. 溶解エッジ:溶解部分の境界、発光したり不揃いだったりする

アルゴリズムの概要

  1. グラデーションマップをサンプリング。Propertyで実際の黑白領域を制御し、stepで未溶解と溶解済みの部分を確定
  2. エッジ領域を確認。溶解エッジに近い領域のエッジ判定値を1に
  3. エッジに近いほど色をエッジの色に、そうでなければサンプリングした固有色に。lerpで簡単に実現

グラデーションマップのrチャンネルをマテリアルのalphaチャンネルとして使用します。上向き溶解効果のため、変数_ChangeAmountを引きます。AlphaGreaterThanはデフォルトで0.5なので、_ChangeAmountの範囲は[-1, 1]に設定します。

グラデーションマップをノイズテクスチャ(Noise Texture)に換えると、よりランダムなディゾルブが作れます。

このシリーズの記事

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