zoukankan      html  css  js  c++  java
  • TRANSFORM_TEX

    Shader "Custom/Exam1" {
    Properties {
    _MainTex ("Texture", 2D) = "white" { }
    }
    SubShader
    {
    pass
    {
    CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    #include "UnityCG.cginc"
    sampler2D _MainTex;
    float4 _MainTex_ST;
    struct v2f {
        float4  pos : SV_POSITION;
        float2  uv : TEXCOORD0;
    } ;
    v2f vert (appdata_base v)
    {
        v2f o;
       o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
    o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
        return o;
    }
    float4 frag (v2f i) : COLOR
    {
    float4 texCol = tex2D(_MainTex,i.uv);
        float4 outp = texCol;
        return outp;
    }
    ENDCG
    }
    }
    }


    float4 _MainTex_ST 中的_MainTex_ST变量也没有用到,为啥非要声明一下?
    简单来说,TRANSFORM_TEX主要作用是拿顶点的uv去和材质球的tiling和offset作运算,确保材质球里的缩放和偏移设置是正确的。 (v.texcoord就是顶点的uv)

    而_MainTex_ST的ST是应该是SamplerTexture的意思   就是声明_MainTex是一张采样图,也就是会进行UV运算。 百度搜索编、程、回、忆、录之unity3d, 如果没有这句话,是不能进行TRANSFORM_TEX的运算的。
    如果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)

  • 相关阅读:
    springdata jpa
    springboot添加事务
    hibernate缓存
    idea下的hibernate反向生成插件
    hibernate级联查询映射的两种方式
    Spring Hibernate JPA 联表查询 复杂查询
    thymeleaf模板引擎
    java替换富文本标签等
    mac最新系统安装beego出现kiil 9
    xshell配置
  • 原文地址:https://www.cnblogs.com/nafio/p/9137268.html
Copyright © 2011-2022 走看看