(轉)TRANSFORM_TEX詳解


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

 

                             特別講:常見問題回答

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

問:
(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);

 

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

_MainTex_ST.xy中是tiling

_MainTex_ST.zw中是offset

(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>常見問題解答


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM