• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Cesium调整3dtiles模型的光照

武飞扬头像
西米2231
帮助1

最近有个项目需要把掘进车放到巷道里面,加载出来的效果一片漆黑,看不清模型细节。

学新通

 由于Cesium中材质没有自发光的设置,所以只能设置光源。

在网上查了一些代码,Cesium的光照效果的设置是通过webgl修改白膜的材质来实现的,由于巷道本身有贴图材质,用该方法实现的效果不好。

只能通过修改

viewer.scene.light

来实现了。

修改代码为:

  1.  
    viewer.scene.light = new Cesium.DirectionalLight({
  2.  
    direction: viewer.scene.camera.directionWC,
  3.  
    });
  4.  
    viewer.scene.preRender.addEventListener(function (scene, time) {
  5.  
    viewer.scene.light.direction = Cesium.Cartesian3.clone(
  6.  
    viewer.scene.camera.directionWC,
  7.  
    viewer.scene.light.direction
  8.  
    );
  9.  
    });

设置光照角度跟随摄像机视角,并实时刷新光照角度。效果为:

学新通

这样能大致看到模型的轮廓了,但是光线太暗需要调整亮度

加上代码

  1.  
    // 亮度设置
  2.  
    var stages = viewer.scene.postProcessStages;
  3.  
    viewer.scene.brightness = viewer.scene.brightness || stages.add(Cesium.PostProcessStageLibrary.createBrightnessStage());
  4.  
    viewer.scene.brightness.enabled = true;
  5.  
    viewer.scene.brightness.uniforms.brightness = Number(3);

最终效果:

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgffiic
系列文章
更多 icon
同类精品
更多 icon
继续加载