cesium粒子著火特效

image.png

<template>
<div class="fullSize" id="cesiumContainer"></div>
</template>

<script>
import "cesium/Widgets/widgets.css";

import Cesium from "cesium/Cesium";

import PolylineTrailMaterialProperty from "@/unit/PolylineTrailMaterialProperty";

export default {
name: "CesiumFire",
//
data() {
return {
viewer: null
};
},

mounted() {
let viewerOption = {
geocoder: false, // 地理位置查詢定位控件
homeButton: false, // 默認(rèn)相機(jī)位置控件
timeline: false, // 時(shí)間滾動(dòng)條控件
navigationHelpButton: false, // 默認(rèn)的相機(jī)控制提示控件
fullscreenButton: false, // 全屏控件
scene3DOnly: true, // 每個(gè)幾何實(shí)例僅以3D渲染以節(jié)省GPU內(nèi)存
baseLayerPicker: false, // 底圖切換控件
shouldAnimate: true, //是否開始動(dòng)畫
// useDefaultRenderLoop : true,//如果需要控制渲染循環(huán)导匣,則設(shè)為true
selectionIndicator: true, //是否顯示選取指示器組件
// targetFrameRate:60,
vrButton: true,
showRenderLoopErrors: true,
requestAnimationFrame: true,
// showRenderLoopErrors : false,

  animation: false // 控制場景動(dòng)畫的播放速度控件
};
this.viewer = new Cesium.Viewer(this.$el, viewerOption);
this.create();

},

methods: {
create() {
var self = this;
var hpRoll = new Cesium.HeadingPitchRoll(
Cesium.Math.toRadians(-90),
// 0,
0,
0
);
// 添加模型
var junjianET = this.viewer.entities.add({
// 模型父級(jí)
parent: self.junjiansEntities,
// 模型位置
position: Cesium.Cartesian3.fromDegrees(118.54, 23.51, 0),
// 模型方向
orientation: this.Cesium.Transforms.headingPitchRollQuaternion(
Cesium.Cartesian3.fromDegrees(119.54, 23.51, 0),
hpRoll
),
// 模型資源
model: {
// 模型路徑
show:true,
uri: "3d/junjian/junjian.gltf",
// 模型刻度
PixelSize: 128,

        scale: 20
      }
    });

  this.createFireSystem(junjianET, Cesium.JulianDate.fromDate(new Date(2018, 7, 11)));
   //鏡頭順時(shí)針旋轉(zhuǎn)九十度,即東向
  var heading = Cesium.Math.toRadians(-20);
  //鏡頭傾斜30度俯視
  var pitch = Cesium.Math.toRadians(-2);
    this.viewer.zoomTo(
    junjianET,
    new Cesium.HeadingPitchRange(heading, pitch,600)
  );
     
},
  // 創(chuàng)建爆炸粒子特效
createFireSystem(entity, time){
 
  var self = this;
  var particleEntity = new Cesium.ParticleSystem({
        image : 'img/fire.png',
        //  startColor : Cesium.Color.RED.withAlpha(0.7),
        // endColor : Cesium.Color.YELLOW.withAlpha(0.3),
        startScale : 0,
        endScale : 10,
        minimumParticleLife : 1,
        maximumParticleLife : 6,
        minimumSpeed :1,
        maximumSpeed : 4,
        imageSize : new Cesium.Cartesian2(5, 5),
        emissionRate : 4,
        lifetime : 16.0,
        emitter: new Cesium.BoxEmitter(new Cesium.Cartesian3(10.0, 10.0, 10.0)),
        modelMatrix : self.computeModelMatrix(entity, time),
        emitterModelMatrix : self.computeEmitterModelMatrix()
  });
 
  var particleSystem = this.viewer.scene.primitives.add(particleEntity);
  setTimeout(() => {
      this.viewer.scene.primitives.remove(particleEntity);
  }, 50000); 
},

computeModelMatrix(entity, time){
    var position = Cesium.Property.getValueOrUndefined(entity.position, time, new Cesium.Cartesian3());
    if (!Cesium.defined(position)) {
        return undefined;
    }
    var orientation = Cesium.Property.getValueOrUndefined(entity.orientation, time, new Cesium.Quaternion());
    if (!Cesium.defined(orientation)) {
        var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(position, undefined, new Cesium.Matrix4());
    } else {
        modelMatrix = Cesium.Matrix4.fromRotationTranslation(Cesium.Matrix3.fromQuaternion(orientation, new Cesium.Matrix3()), position, new Cesium.Matrix4());
    }
    return modelMatrix;
},
computeEmitterModelMatrix(){
   var hpr = Cesium.HeadingPitchRoll.fromDegrees(0.0, 0.0, 0.0, new Cesium.HeadingPitchRoll());
   var trs = new Cesium.TranslationRotationScale();
   trs.translation = Cesium.Cartesian3.fromElements(2.5, 4.0, 1.0, new Cesium.Cartesian3());
   trs.rotation = Cesium.Quaternion.fromHeadingPitchRoll(hpr, new Cesium.Quaternion());
   return Cesium.Matrix4.fromTranslationRotationScale(trs, new Cesium.Matrix4());
}

}
};
</script>

<style lang="scss" >
</style>
結(jié)合網(wǎng)上案例绅络,vue+cesium實(shí)現(xiàn)著火特效跋理。代碼如上,僅供學(xué)習(xí):
注意點(diǎn):
1.shouldAnimate: true, //開啟動(dòng)畫;

  1. this.createFireSystem(junjianET, Cesium.JulianDate.fromDate(new Date(2018, 7, 11)));調(diào)用時(shí)终畅,時(shí)間參數(shù)指定日期,時(shí)間日期指定當(dāng)前時(shí)間不生效竟闪,不知道為什么离福,有知道原因的麻煩在文章下面留言告知,謝謝炼蛤。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妖爷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子理朋,更是在濱河造成了極大的恐慌絮识,老刑警劉巖绿聘,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異次舌,居然都是意外死亡斜友,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門垃它,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烹看,你說我怎么就攤上這事国拇。” “怎么了惯殊?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵酱吝,是天一觀的道長。 經(jīng)常有香客問我土思,道長务热,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任己儒,我火速辦了婚禮崎岂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘闪湾。我一直安慰自己冲甘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布途样。 她就那樣靜靜地躺著江醇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪何暇。 梳的紋絲不亂的頭發(fā)上陶夜,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音裆站,去河邊找鬼条辟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宏胯,可吹牛的內(nèi)容都是我干的捂贿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼胳嘲,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼厂僧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起了牛,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤颜屠,失蹤者是張志新(化名)和其女友劉穎辰妙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甫窟,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡密浑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粗井。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尔破。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浇衬,靈堂內(nèi)的尸體忽然破棺而出懒构,到底是詐尸還是另有隱情,我是刑警寧澤耘擂,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布胆剧,位于F島的核電站,受9級(jí)特大地震影響醉冤,放射性物質(zhì)發(fā)生泄漏秩霍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一蚁阳、第九天 我趴在偏房一處隱蔽的房頂上張望铃绒。 院中可真熱鬧,春花似錦螺捐、人聲如沸匿垄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽椿疗。三九已至,卻和暖如春糠悼,著一層夾襖步出監(jiān)牢的瞬間届榄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工倔喂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铝条,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓席噩,卻偏偏與公主長得像班缰,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悼枢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容