基于WebGL架构的3D可视化平台—消防救援进攻路线模拟演练

本文介绍了如何使用WebGL技术,通过CampusBuilder构建3D火灾场景,模拟消防救援进攻路线。从搭建场景、设置着火点到绘制路线和进度条,详细阐述了实现过程,并提供了演示地址,旨在提升消防训练的直观性和效率。
摘要由CSDN通过智能技术生成

消防官兵在日常训练中经常会进行沙盘推演,相比传统的沙盘推演利用3D模拟更加直观,效率更高。
第一步,利用CampusBuilder搭建模拟火灾场景。CampusBuilder的模型库有各种各样的模型,使我们搭建出的场景更逼真。
模拟火灾场景

//加载场景代码
var app = new THING.App({
    
    // 场景地址
    "url": "http://www.thingjs.com/./uploads/wechat/oLX7p05lsWJZUIxnIWsNXAzJ40X8/scene/演练场景",
    //背景设置
    "skyBox" :"BlueSky"
});

第二步,设置着火点,使用火焰粒子效果

//设置火点
var particle = app.create({
    
    type: 'ParticleSystem', 
    url: 'https://thingjs.com/static/particles/fire1',
    position: [-65,6,-11]
});

第三步,创建进攻路线,设置一个全局变量 flag_index 保证每条线只能创建一次

//创建线路
function createLine(index,flag) {
   
	app.off('click');
	var options = {
   
		lineImageType:lineImage[index],
        isDraggable:true,
        TYPE:"RouteLine"
	}
	if(flag) {
   
        getLine(options,index);
        flag = false;
    }
}

第四步,绘制进攻路线,这里我的思路是以点连线绘制出进攻路线,设置鼠标点击标点之后连线。

//进攻路线:绘制进攻路线
function getLine(options,index){
   
    //lineImageType,isDraggable,TYPE
    line_array[index] = app.create({
   
        type: options.TYPE,
        localPosition: [0,0.5,0],
        image: options.lineImageType, // 线路中的纹理资源
        draggable : options.isDraggable,
    });
    line_array[index].scrollUV = true;
    app.on('click', function(e,line){
    
        var tempPoint = e.getPickedPosition();
        line_array[index].addPoint(tempPoint);
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值