首页 / 浏览问题 / 三维GIS / 问题详情
雨雪特效细节调整
14EXP 2022年04月06日

使用产品:SuperMap iClient3D for WebGL

问题描述:

http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#rainAndSnow

1.这个例子中,点击开启雨景天色会变暗,这边有需求是点之后不变暗,其次还需要更改雨的密度,这边能实现吗?api中没找到参数

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

2.这种粒子效果能做成上面那个实例那样无论怎么缩放都固定的雨景吗?还是说只能实现局部的例子效果

1个回答

您好,这两种例子是在webgl中实现雨雪的两种不同的方式。

1.这个例子中的类是底层包装好的,API和源生当中都没有,如果您需要的话,我告诉您这个原理。第一个例子是shader的画布机制,通过提前设置好着色器画布,之后执行加载即可。密度和亮度就在其中设置。

2.示例1当中之所以 无论怎么缩放都固定 ,是因为它是特殊的画布机制。示例2的话是粒子效果,粒子的效果应该是达不到示例1的画布的效果,但是可以做出一些优化。比如:您可以根据相机的视角与高度去动态改变粒子的中心点和密度,但是比较复杂,可能需要一定的计算。
4,151EXP 2022年04月06日

1.您可以看看,雨的uniform属性只能改速度和角度,没有密度,也没有亮度,我打印出来看了,如果是我没找到希望您帮忙看看;如果用shader写的话,应该怎么写呢?



2.这个计算没问题的,我只是觉得最好还是画布实现,实在不行就用粒子效果

因为作为一个shader自定义的着色器,是后台写好了的。knockout也是在Cesium自定义的。您也可以自己定义。然后亮度的调整的话,您可以尝试一下使用https://cesium.com/learn/cesiumjs/ref-doc/PostProcessStageCollection.html 中的

PostProcessStageComposite 方法,其中 brightness 是对亮度的设定

写法的话您可以参考博客https://blog.csdn.net/apple_coco/article/details/109385542

谢谢!!很有帮助!
...