游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4435|回复: 0

如何在移动端游戏中实现下雪系统?

[复制链接]

8723

主题

8783

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
11952
发表于 2018-12-21 11:50:12 | 显示全部楼层 |阅读模式
文/日音

先上最终效果:


做完下雨做下雪,(点此回顾下雨系统的实现)下雪其实和下雨有很多类似的地方。类似的部分我就不再仔细说明,主要还是看不同的部分。个人认为下雪比下雨更加困难。

首先还是从雪粒子开始,雪粒子无法像雨一样根据深度来直接判断阻挡,因为雨是垂直下落的,但雪不是,雪是会有各种方向的,所以这里需要做实实在在的碰撞来处理遮挡。

1.jpg

就是用了一个触发器,就可以看到雪被挡住了。因为自带的物理引擎性能也很好,这样做还可以接受。

2.jpg

然后要开始处理积雪。第一步还是要实现一个雪的材质,起码要看上去像雪。

基本原理就是雪是白色的,然后加上一个法线,模拟雪表面的纹理。

3.jpg

这样就有了基本的感觉。

4.jpg

然后是处理雪的逐渐覆盖,首先想到的就是利用柏林噪声生成fbm,来逐步覆盖雪地。

5.jpg

6.jpg

可以看到地面和球体都有部分被雪覆盖的痕迹。 接下来依然要处理遮挡部分,和下雨是一样的。

7.jpg

最后是运动痕迹,和以前的草思路一样(点此回顾草的实现方法)。

8.jpg

9.jpg

然后说下这个雪的问题。

顶点片段着色器并不复杂,而且可以适当减少噪声计算来获得好的帧率。问题大的反而是为了处理雪的碰撞,以及雪的速度较慢,会积累大量的粒子在屏幕里。

所以改良措施就是直接用雪粒子特效代替,因为粒子特效是多线程优化过的,也支持碰撞,性能会好不少。

其他应该和下雨类似,需要自己整合到项目中。

最后是插件地址:
https://assetstore.unity.com/packages/vfx/shaders/mobilesnowsystem-135279

来源: 游戏扶持by腾讯游戏学院
原地址:https://mp.weixin.qq.com/s/uIDzU2kSRbAW5rUg985nBg

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-3-29 22:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表