作ったシェーダ
目的
- Unityでスクリーン合成(スクリーンブレンディング)する
- Adobe AfterEffectで作った効果ムービーをVideoPlayerコンポーネントで再生してる時に、スクリーン合成したくなったので
環境
- OS: Windows 10 Pro
- Unity: 2018.1.1f1
参考にさせてもらったサイト
スクリーン合成シェーダの作り方
- Unity公式からビルトインシェーダをダウンロードする
- [builtin_shaders-*\DefaultResourcesExtra\Unlit\Unlit-Alpha.shader]の中身をコピペして、新規シェーダを作る
- 新規に作ったシェーダをいじる
Shader "Unlit/ScreenBlending" {// ← UnityEditor上から見えるシェーダのカテゴリと名前を変更しておく
//<中略>
}
SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 100
ZWrite Off
Blend SrcAlpha One //OneMinusSrcAlpha // ← ここをいじる
//<中略>
}
上記のシェーダの、"ここをいじる"行をいじる。変更の仕方は以下の通り(だと思う)
合成の種類 | 第一引数 | 第二引数 |
---|---|---|
アルファブレンド | SrcAlpha | OneMinusSrcAlpha |
反転 | OneMinusDstColor | Zero |
加算 | One | One |
加算+アルファ(Ps的スクリーン)※今回 | SrcAlpha | One |
スクリーン(Ps的比較(明)) | OneMinusDstColor | One |
乗算 | Zero | SrcColor |
おわりに
ヒカテクにコーヒーをおごってみませんか!(投げ銭|Donation)