大家都知道
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
其实等价于
o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
_MainTex_ST.xy管缩放,_MainTex_ST.zw管偏移
那么问题了,假如
_MainTex_ST.xy等于3,即是将o.uv横纵向各扩大3倍
_MainTex_ST.zw等于2,即是将o.uv横纵向各偏移2
并且假如o.uv本来为1,那么o.uv的运算结果得1*3+2等于5
然而待
tex2D(_MainTex, i.uv);
采样时,为什么它不是放大5倍的采样,而是3倍呢?按数据来说,应该是5倍才对啊