首页 / 浏览问题 / 三维GIS / 问题详情
webgl粒子效果报错,原cesium版本参数无法使用
71EXP 2023年09月28日

使用产品:SuperMap iClient3D 11i(2023) for WebGL

问题详细描述: 粒子系统报错(SuperMap3D.js:1 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '_context')
    at new _0x98db6 (SuperMap3D.js:1:2474720))

文档上也没看到到有图片等参数,示例里面都是直接读取粒子文件的。如何使用图片创建粒子效果,并设置颜色呢?

let fireSystem = new SuperMap3D.ParticleSystem({
  image: this.viewModel.fireImage,
  endColor: SuperMap3D.Color.fromCssColorString('rgba(255,255,0,0.7)'),
  minSize: this.viewModel.startScale,
  maxSize: this.viewModel.endScale,
  minLifeTime: this.viewModel.minimumParticleLife,
  maxLifeTime: this.viewModel.maximumParticleLife,
  minEmitPower: this.viewModel.minimumSpeed,
  maxEmitPower: this.viewModel.maximumSpeed,
  minimumLife : this.viewModel.minimumLife,
  maximumLife : this.viewModel.maximumLife,
  imageSize: new SuperMap3D.Cartesian2(this.viewModel.particleSize, this.viewModel.particleSize),
  emitRate: this.viewModel.emissionRate

})

1个回答

粒子效果的接口就是直接读取粒子文件的

按照喷泉的示例操作没有问题

您是想要询问如何创建粒子文件吗

还是说您的png图片无法正常使用?
4,151EXP 2023年09月28日
只能通过读取粒子文件的方式吗? 没法像Cesium版本那样直接传递一些参数?

只能通读取过粒子文件的话, 这个粒子文件需要如何创建呢?

类似Cesium那种可以参考博客https://blog.csdn.net/supermapsupport/article/details/103952868

这个烟花示例就是以Cesium的demo为基础进行操作的

我上面的for WebGl 的代码就是按照for Cesium版本去创建的,但是它直接报错了。麻烦看下是参数不对吗?

如果您用的是for WebGL产品,那么不能直接照着使用

for WebGL是源生Cesium做改动后的产品

不像for Cesium,是源生Cesium 的扩展开发

有部分接口是不能使用的,也有部分是不一样的

建议按照for WebGL的示例去写,注意参数

http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#Particle%20System_fountain

官网的示例都是读取的粒子文件的,我们的问题在于,是否能和官网的for CeSium 版一样,使用传递参数创建类的实例的方式,如果不行, 那粒子文件该如何创建?
目前仅能使用ParticleSystem去进行粒子设置

ParticleSystem中的粒子图片就是png图片

有对应的png粒子图片即可
...