Cesium中文教程-高级粒子系统效果(Advanced Particle System Effects)

 

目录

天气(Weather)

Setup

The Systems

彗星和火箭尾迹(Comet and Rocket Tails)

使用多粒子系统(Using Multiple Particle Systems)

Setup

从头创建粒子图片(Create the Particle Image from Scratch)

移动系统中的粒子(Move the Particle in the Systems)

力函数解析(The Force Function Deconstructed)

相对位置(Relative Positioning)

更多帮助


章教程将带你了解更多的特效,如天气和火箭爆破工。

要了解粒子系统基础知识,请参考粒子系统入门教程Introduction to Particle Systems)。

天气(Weather)

注意:下雪教程的开始介绍了北美防空司令部跟踪圣诞老人的实现。

Setup

我们将从解释如何造雪开始,然后是如何将雪转为雨。

为了制造雪的特效,我们需要为每个粒子添加雪花图片,并在updateParticle函数中定义粒子的运行行为和其它动态元素。

  • The Images

对于表示每个粒子的图像,我们可以从任何颜色开始:红、绿、白等等。因为PNGs支持透明,所以我们使用它,使图像的无色区域保持不可见。在本章教程中,以下三张图片用于广告牌创建粒子特效的png。左边是在本章教程中用于雨的png;中间是用于雪的png;右边是在介绍粒子系统章节Introduction Particle Systems)用于火的png。

只要我们选择了一个图片,我们可以修改它在Cesium中的外观,如下所示。例如,我们修改左边圆形粒子图片,使其长而蓝,看起来更像雨滴,如本章开头所示。火的图片可以改变为绿色的树叶,黄色的电火花,甚至在瀑布底部白色的水飞溅/泡馍。在这里创造性是有益的!

此外,在雨雪的系统中,我们将开始的不透明度设置为0,最终的不透明度设置为可视的,这意味着它们在第一次创建时是完全不可见的。

  • The Update Function

更新函数是粒子运动、排列和可视化方面最自由的地方。这里我们可以修改一些简单的东西,比如粒子的颜色、图片大小、粒子寿命等等。根据需要使用此方法尽可能少或尽可能多的修改。我们可以根据粒子到相机的距离(如下所示),到导入模型,到地球本身的距离等来修改粒子。

下面是雪的更新函数:

// snow  
var snowGravityScratch = new Cesium.Cartesian3();  
var snowUpdate = function(particle, dt) {  
    snowGravityScratch = Cesium.Cartesian3.normalize(particle.position, snowGravityScratch);  
    snowGravityScratch = Cesium.Cartesian3.multiplyByScalar(snowGravityScratch,  
                                                            Cesium.Math.randomBetween(-30.0, -300.0),  
                                                            snowGravityScratch);  
    particle.velocity = Cesium.Cartesian3.add(particle.velocity, snowGravityScratch, particle.velocity);  
  
    var distance = Cesium.Cartesian3.distance(scene.camera.position, particle.position);  
    if (distance > (snowRadius)) {  
        particle.endColor.alpha = 0.0;  
    } else {  
        particle.endColor.alpha = snowSystem.endColor.alpha / (distance / snowRadius + 0.1);  
    }  
};  

函数第一部分使粒子像受重力作用一样向下下落。

作为一个新增的特性,更新函数包括一个距离检查,允许离使用者越远的粒子消失。粒子离的越远,就越不可见,这就产生了近距离的雾特效。

  • Additional Weather Effects

除了粒子在远处消失的视觉效果,这个例子还包括雾和大气特效的变化,来匹配试图复制的天气类型。

hueShift(相移作用)改变了光谱中的颜色。saturationShift(饱和度)变化改变了相对于黑色和白色的视觉需要多少颜色。brightnessShift(亮度变化)改变了颜色的生动程度。

雾的密度随着雾的颜色改变了地球上覆盖物的不透明程度。雾的最小亮度,是雾的亮度最小界限,是使雾变暗的一种方法。

// snow  
scene
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值