zoukankan      html  css  js  c++  java
  • 复杂纹理复制及纹理叠加效果

    三张贴图通过改变主材质及修饰材质的UV重复次数,实现不同的效果。如下:

    图中的房子和围墙只用了三张贴图就实现了完全不同的建筑,厉害吧~~~

    shader如下:

    Properties
        {
            _Color("Base Color", Color) = (1,1,1,1)
            _MainTex("Base(RGB)", 2D) = "white" {}
            _ColorU("ColorU", float) = 1.0 //主纹理X轴重复次数
            _ColorV("ColorV", float) = 1.0 //主纹理Y轴重复次数
            _DetailTex("DetailTex", 2D) = "white" {}
            _DetailU("DetailU", float) = 1.0 //修饰纹理X轴重复次数
            _DetailV("DetailV", float) = 1.0 //修饰纹理Y轴重复次数
        }
        
        SubShader
        {
            tags{"Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"}
            Blend SrcAlpha OneMinusSrcAlpha
            
            Pass
            {
                
                CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                #include "UnityCG.cginc"
                
                float4 _Color;
                sampler2D _MainTex;
                float _ColorU;
                float _ColorV;
                sampler2D _DetailTex;
                float _DetailU;
                float _DetailV;
                
                struct v2f
                {
                    float4 pos:POSITION;
                    float2 uv:TEXCOORD0;
                };
                
                
                float4 _DetailTex_ST;
                v2f vert(appdata_base v)
                {
                    v2f o;
                    o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
                    o.uv = v.texcoord.xy;
                    //o.uv = TRANSFORM_TEX(v.texcoord, _DetailTex);//简单的UV重复,通过界面的Tiling属性改变UV的重复次数,Offset改变UV位置。
                    return o;
                }
                
                half4 frag(v2f i):COLOR
                {    
                    half4 c = tex2D(_MainTex , i.uv * float2(_ColorU, _ColorV)) * _Color;
                    half4 d = tex2D(_DetailTex, i.uv * float2(_DetailU, _DetailV));
                    return c * d;
                }
                
                ENDCG
            }
        }
    一直想把之前工作、学习时记录的文档整理到博客上,一方面温故而知新,一方面和大家一起学习 -程序小白
  • 相关阅读:
    常用的设计模式汇总
    设计模式总结
    C# WinForm文章收集
    SQL Server 2012/2016/2017 新增函数
    SQL Server 日期函数大全
    【BZOJ3622】已经没有什么好害怕的了
    【SDOI2009】Bill的挑战
    【HDU4507】恨7不成妻
    BSOJ 2423 -- 【PA2014】Final Zarowki
    BSOJ 4591 -- 【JLOI2015】城池攻占
  • 原文地址:https://www.cnblogs.com/wang-jin-fu/p/8279673.html
Copyright © 2011-2022 走看看