使用 vector 的两个分量来绘制纹理的平铺与偏移参数。
一般纹理采样都会自带一套ST参数,但是也会有一些情况一张纹理可能需要多套ST参数,例如一张 MASK 纹理,每一个通道需要不同的平铺和偏移次数,便可以使用本标签进行绘制。
ST 标签与 TTO 标签不同,ST 是将一个 Vector 属性绘制为 TillingOffset 的形式,目标属性是一个 Vector,而 TTO 是将一个纹理属性的 TillingOffset 参数绘制出来
ST() : 使用两行来绘制平铺与偏移
ST(true): 平铺与偏移绘制在同一行
Shader "BZGUITest/TilingOffset"
{
Properties
{
[ST] _TO("TilingOffset", Vector) = (1,2,1,2)
[ST(true)] _XYSingleLine("SingleLine", Vector) = (1,2,1,2)
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// make fog work
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
return half4(1,1,0,1);
}
ENDCG
}
}
}