【風宇沖】Unity3D教程寶典之Shader篇:特別講 常見問題集

來源:互聯網
上載者:User

  特別講:常見問題回答

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

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

(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值就不起作用了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.