GrabPassの使い方

UnityのシェーダーではGrabPassを使うことで、シャーダー内で簡単にスクリーンの絵を取得できて便利です。

使い方は

GrabPass
{
}

と書くだけ。

後は普通のTextureと同じように

sampler2D _GrabTexture
grabPos = ComputeGrabScreenPos(o.pos);
half4 color = tex2Dproj(_GrabTexture, grabPos);

のようにして使えます。

_GrabTextureの名称を変更したい場合は、GrabPass

GrabPass
{
  "_BackgroundTexture"
}

という風に書くと良いようです。

リンク

Unity – Manual: ShaderLab: GrabPass
https://docs.unity3d.com/Manual/SL-GrabPass.html

関連記事

UnityでGlow shader
UnityでGlowっぽい雰囲気を実装したShaderです。 [Unity] Glowっぽいシェーダを書いてみた - Qiitahttp://qiita.com/edo_m18/items/b5ad2490b73126489c07 Capsuleに適用してみたサンプル ...

Cgで使えるbuilt-in関数のリファレンス
Cgで使えるbuilt-in関数のリファレンス The Cg Tutorial - Appendix E. Cg Standard Library Functionshttp://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html Cg-3.1_April2012_ReferenceManual.p...

Unityで滝のシェーダー
Unityのシェーダーで滝の表現を試してみました。 参考にさせてもらったのはこちらのblogです。 Unity シェーダーチュートリアル  滝を作ってみる – Tsumiki Tech Times|積木製作http://tsumikiseisaku.com/blog/shader-tutorial-waterfall/ Textureの作り方で雰囲気も変わってくるかなと...

Tiling/Offset値をスクリプトから設定する方法
MaterialのTexture設定にあるTilingとOffsetの値をスクリプトから設定したい場合はSetTextureScaleやSetTextureOffsetを使って次のような感じでできるそうです。 Material material; // Tiling material.SetTextureScale("_MainTex", new Vector2(1.0f, 2.0f...

コメントを残す

メールアドレスが公開されることはありません。