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...