UnityのShaderプログラム内で「Tiling」や「Offset」の値を知りたい場合は{TextureName}_ST
の値を参照すると良いそうです。
sampler2D _MainTex;
float4 _MainTex_ST;
_MainTex_ST.x; // Tilingのxの値
_MainTex_ST.y; // Tilingのyの値
_MainTex_ST.z; // Offsetのxの値
_MainTex_ST.w; // Offsetのyの値
テクスチャーのサイズを知りたい場合は{TextureName}_TexelSize
の方が使えます。
リンク
Unity – Manual: Accessing shader properties in Cg/HLSL
https://docs.unity3d.com/560/Documentation/Manual/SL-PropertiesInPrograms.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の作り方で雰囲気も変わってくるかなと...
UnityのImage Effectsで上下反転してしまう場合の対策
UnityのImage Effectsで上下が反転してしまう場合は、UNITY_UV_STARTS_AT_TOPを使って次のようなコードを追加してみると良いそうです。
sampler2D _MainTex;
float4 _MainTex_TexelSize;
#if UNITY_UV_STARTS_AT_TOP
if (_MainTex_TexelSize.y < 0) {
...
ブラウン管風のシェーダー
ブラウン管風のシェーダーを試してみました。
ノイズ版
使いどころは少し難しそうですが、良い雰囲気のシェーダーと思います。
※ノイズ版は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...