桌面导出粒子如何加载到iclient

0 投票
Idesktop导出的粒子如何加载到iclient3D中
12月 13, 2016 分类:  2153次浏览 | 用户: 王大锤 牛刀小试 (204 分)

1个回答

0 投票
 
已采纳
您好,iDesktop导出的粒子文件是不能直接加载到iClent3D的呢。

有2个办法,

(1)您直接在桌面配好场景,iserver发布三维服务,客户端访问这个场景,粒子对象都是存在的。

(2)客户端是可以动态添加粒子对象的,请查阅iClent3D客户端手册中ParticleSystem类,详细介绍可以搜索关键字“三维特效”。
12月 13, 2016 用户: 邹涛 名扬四海 (3,389 分)
采纳于 12月 15, 2016 用户:王大锤
这个方法确实可以设置消失的时间。但是消失的时间与我设置的时间不符合啊

set_particleLifeTime(5000);火的我设置了5秒但是它却45秒才消失。
如果这个属性不好使的话,直接在5秒后,直接把这个对象移除了吧。
您好,我这有个新问题给领导看完我做的消防模拟之后他们感觉这个水跟活比起来比较小,所以感觉比较假。但是iClient无法控制喷泉的流量什么的?请问该怎么办。我知道Idesktop可以对粒子参数进行各种配置。有什么办法结合一下吗?

可以设置的呢

function displayRain()
{
        //初始化 rainRegion,降雨/降雪粒子关联的 Geometry 必须为 GeoRegion3D 类型
        var point3Ds = new SuperMap.Web.Core.Point3Ds();
        point3Ds.add(new SuperMap.Web.Core.Point3D(114.5628, 40.272031, 200));
        point3Ds.add(new SuperMap.Web.Core.Point3D(120.11412, 40.383005, 200));
        point3Ds.add(new SuperMap.Web.Core.Point3D(119.7380, 39.11966, 200));
        point3Ds.add(new SuperMap.Web.Core.Point3D(114.5358, 39.15709, 200));
        var rainRegion = new SuperMap.Web.Core.GeoRegion3D();
        rainRegion.addPart(point3Ds);
        //初始化 geoParticel,设置粒子效果类型并关联 Gemotry 对象为 rainRegion
        var rainParticle = new SuperMap.Web.Core.GeoParticle();
        rainParticle.set_particleType(SuperMap.Web.Core.ParticleType.Rain);
        if (rainParticle.makeWithGeometry(rainRegion) == false)
        {
                return;
        }
        
        //初始化 rainParticle 持有的 rainPariticleSystem 
        var rainparticleSystem = rainoParticle.getParticleSystemByIndex(0);
        if (rainparticleSystem == null)
        {
                return;
        }
        //设置粒子大小、每秒产生的粒子数量
        rainparticleSystem.set_particleWidth(500);
        rainparticleSystem.set_particleHeight(700);
        rainparticleSystem.set_particleCountPerSecond(13000);
        //获取 rainStyle3D,设置绝对高度模式属性并定义相应的高度值,用以实现雨从天空缓缓的落下
        var rainStyle3D = new SuperMap.Web.Core.Style3D();
        rainStyle3D.set_extendHeight(30000);
        rainStyle3D.set_altitudeMode(SuperMap.Web.Realspace.AltitudeMode.ABSOLUTE);
        //获取 feature3D,关联 geometry 对象为 rainParticle 并设置 style3D 对象为 rainStyle3D 
        var feature3D = new SuperMap.Web.Core.Feature3D();
        feature3D.set_geometry(rainParticle);
        feature3D.set_style3D(rainStyle3D);
        //获取 trackingLayer 图层添加要素对象
        trackingLayer.add(feature3D, "Rain");
}
好像不是这么回事,不知道您试没试过给喷泉这么设置,我刚才试了根本不是想象中的效果
...