unity添加的水是黑的

unity添加的水是黑的,第1张

打开一个需要添加水效果的工程,点击Unity3D编辑器上的Assets菜单,在d出来的下拉菜单中选择ImportPackage-->"Water(ProOnly)"。

1、d出一个Importingpackage窗口,里面显示的是即将导入的资源包,一般默认即可,点击Import按钮。

2、水体的资源包导入成功后,点击Assets-->StandardAssets-->Water(ProOnly),可以看到Project视图左侧的目录,在Project视图右侧可以看到Daylight和Nighttime。

3、将Project视图右侧的Daylight直接拖入到游戏场景中。

4、Inspector视图看到此时的添加的Water(Script)与DaylightWater与添加简单水时不太一样。

5、点击Inspector视图下DaylightWater里面有好多设置参数。

6、将游戏场景中的水模型,进行适当的拉伸(WIndows下按快捷键R,然后拖动三个坐标轴),使其符合游戏场景。

7、点击Unity3D中的运行按钮,在Game视图看以看到复杂的水效果,这个水效果比简单的水效果更加真实。

代码如下:

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类型;

建议还是用自带的water4

如果自己做的话,先要自己写一个水的shader,然后还要写脚本控制水的反射、折射、流动、波纹间隔等等很多参数

图的话要:一张Foam图做波浪,一张Bump图做水的波纹,一张Fallback图做发生错误的时候的渲染,其他的调一下颜色

还需一个Plane


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11879982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存