Unity3d Terrain地形制作系列(二)河流

您所在的位置:网站首页 河流地貌模型制作简单图片 Unity3d Terrain地形制作系列(二)河流

Unity3d Terrain地形制作系列(二)河流

2024-07-10 08:00| 来源: 网络整理| 查看: 265

游戏地形河流效果 河流效果

河流效果

这里要制作河流效果,我们要用到Unity3d的着色器也就是Shader,我们首先要对Shader有个基本了解。 要实现河流效果,也就是我们去改变贴图的uv坐标,让坐标随着时间的改变而改变,这样视觉上会形成流动效果。

表面着色器结构

Shader "Custom/river" { Properties { //属性栏 } SubShader { //子着色器 } FallBack "Diffuse"//回滚函数 }

属性栏

Properties { _Color("color",color)=(1,1,1,1)//颜色 _River("river",2D)="white"{}//2D贴图 _XRange("xrange",Range(0,1))=0.1//在X轴上获取一个数 _YRange("yrange",Range(0,1))=0.1//在Y轴上获取一个数 }

子着色器

SubShader { Tags { "RenderType"="Opaque" }//标签,这里是渲染不透明的对象 LOD 200//LOD越大则渲染效果越好 CGPROGRAM//语言从这里开始执行 #pragma surface surf Standard fullforwardshadows//该代码片段的编译指令 #pragma target 3.0 //这里我们要先申明一下前面属性里面的才可以使用。 sampler2D _River; fixed4 _Color; float _XRange; float _YRange; //输入结构 struct Input { float2 uv_River;//贴图的nv坐标 }; void surf (Input IN, inout SurfaceOutputStandard o)//inout输出 { float2 uv=IN.uv_River;//获取uv坐标 uv.x+=_Time*_XRange;//坐标X随时间的变化而变化 uv.y+=_Time*_YRange;//坐标Y随时间的变化而变化 half4 b=tex2D(_River,uv);//tex2D表示查询这个纹理 o.Albedo = b.rgb* _Color;//Albedo表示反射率,这里就是原始的颜色,这是默认的结构,我们不需要再去申明,直接使用。 o.Alpha = b.a;//Alpha表示透明度这里可以不要 } ENDCG//语言到这里结束 }

后面我们还加一个回滚函数

Shader "Custom/river" { FallBack "Diffuse"//表示前面子着色器运行失败后,就执行这个 ,有点类似Try{}catch{}里面的catch }

完整代码

Shader "Custom/river" { Properties { _Color("color",color)=(1,1,1,1) _River("river",2D)="white"{} _XRange("xrange",Range(0,1))=0.1 _YRange("yrange",Range(0,1))=0.1 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Standard fullforwardshadows #pragma target 3.0 sampler2D _River; fixed4 _Color; float _XRange; float _YRange; struct Input { float2 uv_River; }; void surf (Input IN, inout SurfaceOutputStandard o) { float2 uv=IN.uv_River; uv.x+=_Time*_XRange; uv.y+=_Time*_YRange; half4 b=tex2D(_River,uv); o.Albedo = b.rgb* _Color; o.Alpha = b.a; } ENDCG } FallBack "Diffuse" }

运行效果 在这里插入图片描述 效果可以实现,这只是改变uv坐标很简单的,我们也可以使用顶点着色器方法来实现。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3