【游戏技术群】959392658  【游戏出海群】12067810
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   18803836360

简易水

个人分类: shader | 2018-10-9 17:30
最近有关于水的表现要求。UNITY自带的水效果在资源上存在消耗比较高的情况。
根据项目的具体要求需要制作一种简单的水效果。

完成后和美术同志碰了一下感觉效果比较满意 ,要比简单的UV动画效果 好不少。
抽时间发源码和大家分享一下。希望大家多多指正。



代码如下:

struct Input {
float2 uv_MainTex;
float2 uv_NoiseTex;
};
void vert(inout appdata_full v,Input o)
{
UNITY_INITIALIZE_OUTPUT(Input o);
o.vertcolor=v.color;
}


void surf(Input IN, inout SurfaceOutput o) {


float2 speed=float2(xscroll,yscroll)*_Time.x+IN.uv_NoiseTex;
fixed4 noise1 = tex2D(_NoiseTex,speed);
fixed4 noise2 = tex2D(_NoiseTex,speed);
half4 c=tex2D(_MainTex,float2(noise1,x+noise2,y,noise1.y+noise2.x));
o.Albedo = c.rgb * N.vertex.color.rgb + _MainColor.rgb;
o.Alpha = d.a*IN.vertex.color.a*_MainColor.a;
}



其中核心的部分就是使用noisetex贴图对maintex进行UV采样从而实现模拟的流水折射扭曲效果;

注:

UNITY_INITIALIZE_OUTPUT(type,name)这个函数的作用就是吧name类型 转成type类型;

0 0

作者的其他最新博客

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号

个人分类

标签

阅读排行

评论排行

推荐博客

最新博客

返回顶部