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でFake Rim Lighting
UnityでFake Rim Lightingを実装したShaderです。 CG Shaders - Fake Rim Lighting - Artistic Experimentshttp://www.artisticexperiments.com/cg-shaders/cg-shaders-fake-3-point-lighting Sphereに適用してみたサンプル ...

Unityでshaderを書くときに参考になる公式リンク
Surface Shaderのサンプル集 Unity - Manual: Surface Shader exampleshttps://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html SurfaceOutput、SurfaceOutputStandardの定義と#pragma surfaceディレクティブに書けるキーワード ...

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

KvantGrass
アニメーション付きのGrass Shader「KvantGrass」を試してみました。 使い方に戸惑ってしまいましたが、空のオブジェクトにGrass/GrassScrollerのコンポーネントを追加してみたらGrassが表示されました。 リンク GitHub - keijiro/KvantGrass: Animating grass shader for Unityht...

ブラウン管風のシェーダー
ブラウン管風のシェーダーを試してみました。 ノイズ版 使いどころは少し難しそうですが、良い雰囲気のシェーダーと思います。 ※ノイズ版はUniRXを使わない形に改変したものを使っています。 リンク [Unity3D]ブラウン管風シェーダーを作った | notargs.comhttp://wordpress.notargs.com/blog/blog/2...

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です