博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cesium实现背景透明的方法
阅读量:7061 次
发布时间:2019-06-28

本文共 964 字,大约阅读时间需要 3 分钟。

前言

今天有人在QQ群里问如何把地球背景做成透明的,当时我以为Cesium比较复杂的渲染机制可能即使context设置了alpha属性也未必能透明,所以和同学说可能得改Cesium代码,可以使用ViewportQuad来实现。

后来自己实验一下,发现实际上context设置为alpha还是起作用的。。。惭愧误导了某位同学。。

最终效果

最终效果如下所示,其中背景图片时通过设置css样式background-image来实现的。

 
输入图片说明

源码

把以下代码拷贝到Cesium的Sandcastle中就能看到效果。

注意点:

1 OIT的问题

其中orderIndependentTranslucency需要设置为true,才能去掉地球表面的大气效果的黑圈问题,这个主要是因为Cesium的OIT机制会把FrameBuffer中的的透明度都改成1所致。如果不想禁用OIT的话,可以试试调整一下skyAtmosphere的几个属性值来试试。。

2 backgroundColor

backgroundColor需要设置成(0, 0, 0, 0)样式,其他颜色会影响最终效果。

js代码

var viewer = new Cesium.Viewer('cesiumContainer', {    orderIndependentTranslucency: false, contextOptions: { webgl: { alpha: true, } }, }); viewer.scene.skyBox.show = false; viewer.scene.backgroundColor = new Cesium.Color(0.0, 0.0, 0.0, 0.0); //viewer.scene.skyAtmosphere.show = false; //viewer.scene.skyAtmosphere.brightnessShift = -0.0;

html代码

Loading...


欢迎关注 Cesium实验室 ,QQ群号:。

 
image.png

转载于:https://www.cnblogs.com/cesium1/p/10062923.html

你可能感兴趣的文章
tomcat与jboss 01
查看>>
【记录一个问题】linux + opencv + gpu视频解码,好不容易编译通过,运行又coredump了...
查看>>
问题总结
查看>>
testNG框架,使用@BeforeClass标注的代码,执行失败不抛出异常,只提示test ignore的解决方法...
查看>>
[C++基础]020_C++0x新特性之右值引用(int&& value)
查看>>
java高并发之CountDownLatch,CyclicBarrier和join
查看>>
【简易版】IOS仿periscope自制狂赞飘桃心
查看>>
xss其他标签下的js用法总结大全
查看>>
《图像处理实例》 之 寻找图纸标注
查看>>
3的幂的和
查看>>
Maximum Value(CodeForces - 484B)
查看>>
ASP_NET Global_asax详解
查看>>
hdu2067 小兔的棋盘 DP/数学/卡特兰数
查看>>
Ubuntu文件模式之设定笔记
查看>>
转:IIS虚拟目录实现与文件服务器网络驱动器映射共享
查看>>
解决 MariaDB无密码就可以登录的问题
查看>>
AP_MergeSql
查看>>
2016/4/3 总结作业
查看>>
用node.js写一个jenkins发版脚本
查看>>
iOS开发-UITabBarController详解
查看>>