(轉)TRANSFORM_TEX詳解

原創文章如需轉載請註明:轉載自風宇衝Unity3D教程學院

 

                             特別講:常見問題回答html

 
本講會陸續補充一些問題的解答。

問:
(1) TRANSFORM_TEX是作什麼的
(2)float4 _MainTex_ST 中的_MainTex_ST變量也沒有用到,爲啥非要聲明一下?
 
 
答:
(1)簡單來講,TRANSFORM_TEX主要做用是拿頂點的uv去和材質球的tiling和offset做運算, 確保材質球裏的縮放和偏移設置是正確的。 (v.texcoord就是頂點的uv)

 

 

下面這兩個函數是等價的。函數

o.uv =   TRANSFORM_TEX(v.texcoord,_MainTex);url

 

o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;spa

_MainTex_ST.xy中是tilinghtm

_MainTex_ST.zw中是offsetblog

(2)而_MainTex_ST的ST是應該是SamplerTexture的意思 ,就是聲明_MainTex是一張採樣圖,也就是會進行UV運算。  若是沒有這句話,是不能進行TRANSFORM_TEX的運算的。_MainTex_ST.xy爲 下圖中的Tiling,zw爲下圖中的offset.
 
若是Tiling 和Offset你留的是默認值,即Tiling爲(1,1) Offset爲(0,0)的時候,能夠不用
o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
換成o.uv = v.texcoord.xy;也是能正常顯示的;至關於Tiling 爲(1,1)Offset爲(0,0),可是以下圖本身填的Tiling值和Offset值就不起做用了
【風宇衝】Unity3D教程寶典之Shader篇:特別講 <wbr>常見問題解答
相關文章
相關標籤/搜索