广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Unity Shader教程之 Tiling重复平铺效果的实现

    来源:网络收集  点击:  时间:2024-02-12
    【导读】:
    Unity Shader教程之 Tiling重复平铺效果的实现。本节介绍,在Unity开发中,由于物体放大,贴图效果需要Tiling平铺效果,具体如下工具/原料moreUnity方法/步骤1/9分步阅读

    打开Unity,新建一个工程,在场景中添加一个Plane,调整好观察角度,具体如下图

    2/9

    导入一张贴图,注意图片的 Wrap Mode 为 Repeat ,具体如下图

    3/9

    在工程中新建一个 Shader,可以命名为 TilingShader,双击打开进行编辑,具体如下图

    4/9

    脚本编译正确,回到Unity,在工程中新建一个材质,可以命名为 TilingMaterial,把 Shader 通道设置为刚才新建的 Shader,然后把贴图设置上,把材质赋给 Plane,具体效果如下图

    5/9

    把 Plane 的大小调整一下,具体下过如下图

    6/9

    修改材质的 Tiling,但是此时没有任何变化,具体如下图

    7/9

    双击 TilingShader 编辑,修改添加代码如下图

    8/9

    TilingShader 脚本的具体内容如下:

    ShaderCustom/TilingShader{

    Properties

    {

    _Color(Color,Color)=(1,1,1,1)

    _MainTex(MainTexture,2D)=white{}

    }

    SubShader

    {

    tags{Queue=TransparentRenderType=TransparentIgnoreProjector=True}

    BlendSrcAlphaOneMinusSrcAlpha

    Pass

    {

    CGPROGRAM

    #pragmavertexvert

    #pragmafragmentfrag

    #includeUnityCG.cginc

    float4_Color;

    sampler2D_MainTex;

    structv2f

    {

    float4pos:POSITION;

    float2uv:TEXCOORD0;

    };

    float4_MainTex_ST;

    v2fvert(appdata_basev)

    {

    v2fo;

    o.pos=UnityObjectToClipPos(v.vertex);

    o.uv=v.texcoord.xy;

    o.uv=TRANSFORM_TEX(v.texcoord,_MainTex);

    returno;

    }

    half4frag(v2fi):COLOR

    {

    half4c=tex2D(_MainTex,i.uv.xy)*_Color;

    returnc;

    }

    ENDCG

    }

    }

    }

    9/9

    脚本编译正确,回到Unity,再次调整材质的 Tiling 相关值,对应效果就会发上变化,最终效果如下图

    注意事项

    您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言

    UNITYSHADERTILING重复平铺效果
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_32375.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 21:59:31  耗时:0.030
    0.0302s