ポストプロセスエフェクト (Image Effect Shader)
手順
- メニューから「Assets > Create > Shader > Image Effect Shader」を選択して、プロジェクトにポストプロセス用の新しいシェーダーを追加する。
- カメラに付与したスクリプトの
OnRenderImage
ハンドラで、Graphics.Blit
メソッドを呼び出してポストプロセスを適用する。
public class ExampleEffect : MonoBehaviour
{
private Material _mat;
void Start()
{
_mat = new Material(Shader.Find("Hidden/ExampleEffect"));
}
private void OnRenderImage(RenderTexture src, RenderTexture dest)
{
Graphics.Blit(src, dest, _mat);
}
}
Code language: C# (cs)
参考:
簡単なシェーダを書いてカスタムポストエフェクトを実装する | LIGHT11
シェーダーを触ってみた | WonderPlanet Developers’ Blog
Image Effect のスクリプトの書き方 | Edifying Soil
MonoBehaviour.OnRenderImage | Unity スクリプトリファレンス [公式]
Graphics.Blit | Unity スクリプトリファレンス [公式]
分解/消滅エフェクト (Dissolve)
参考:
テクスチャを投影する
参考:
Graphics.Blit で投影テクスチャマッピングシェーダーをテクスチャに反映できない – teratail
Custom Render Texture
参考:
Unity 2017.1 の機能の Custom Render Texture を使ってみた | 凹みTips
UnityEngine.CustomRenderTexture | Unity スクリプトリファレンス [公式]
SetPixels
参考:
スクリプトによるレンダーテクスチャへの数値書き込みについて | 空の缶詰
テクスチャの画像をスクリプト上からいじる | Edifying Soil
Texture への描画を試してみた#2 | Lab 7 in Singapore
Texture2D.SetPixels | Unity スクリプトリファレンス [公式]
Blit
参考:
Blit で渡したカメラに映る画面テクスチャがシェーダーで空になる問題 – Qiita
Command Buffer の Blit 時に画像の上下が反転する | うにてぃブログ
Graphics クラスのメモ | Unlit Sphere
AfterImageEffects and AfterEverything Traps | Updated My Journal
Graphics.Blit にマテリアルを指定すると iOS で動作しない不具合対応 | koyoarai
Graphics.Blit | Unity スクリプトリファレンス [公式]
様々なグラフィックス API のシェーダーの作成 | Unity マニュアル [公式]
Graphics.Blit doesnt work on iOS when a material is used – Unity Forum
スクラッチを実装する
参考:
カードのスクラッチ機能を作ってみた | QualiArts エンジニアブログ
Ink Painter
動画:
リポジトリ:
EsProgram/InkPainter: Texture-Paint on Unity – GitHub
ドキュメント:
参考:
Texture Paint が Asset Store で公開されました | しゅみぷろ
Splatoon の塗りみたいのを再現したい #5 | しゅみぷろ
Skidmarks
参考:
Nition/UnitySkidmarks: A Simple Skidmark Effect Generator – GitHub
Water Surface (hecomi)
参考:
Painter (ayaseya)
リポジトリ:
参考: