zoukankan      html  css  js  c++  java
  • (转)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>常见问题解答
  • 相关阅读:
    ASP.Net如何用Cookies保存对象
    MS SQL语句优化
    服务消费者
    [模板]线性筛素数(欧拉筛法)
    luogu4159 迷路 (矩阵加速)
    poj1845 sumdiv (因数的和)
    luogu3674 小清新人渣的本愿 (bitset+莫队)
    luogu3621 城池攻占 (倍增)
    luogu3233 世界树 (虚树)
    bzoj4540 序列 (单调栈+莫队+rmq)
  • 原文地址:https://www.cnblogs.com/wonderKK/p/5217882.html
Copyright © 2011-2022 走看看