美文网首页
Cesium3DTileset白膜打光

Cesium3DTileset白膜打光

作者: zhuyx0304 | 来源:发表于2024-04-06 14:36 被阅读0次
var viewer = new Cesium.Viewer("cesiumContainer");

      var tileset = viewer.scene.primitives.add(
        new Cesium.Cesium3DTileset({
          url: "http://10.1.3.220:9003/model/tzoYurSE8/tileset.json",
        })
      );
      // 设置白膜的默认透明度
      tileset.readyPromise.then((tileset) => {
        tileset.style = new Cesium.Cesium3DTileStyle({
          color: {
            conditions: [["true", "rgba(0, 127.5, 255 ,0.2)"]],
          },
        });
      });
      tileset.tileVisible.addEventListener((cesium3DTile) => {
        // 以下设置白膜的打光效果
        var cesium3DTileCon = cesium3DTile.content;
        var featuresLength = cesium3DTileCon.featuresLength;
        for (let i = 0; i < featuresLength; i += 2) {
          var _model = cesium3DTileCon.getFeature(i).content._model;
          if (_model && _model._sourcePrograms && _model._rendererResources) {
            Object.getOwnPropertyNames(_model._sourcePrograms).forEach(
              function (i) {
                var msp = _model._sourcePrograms[i];
                _model._rendererResources.sourceShaders[msp.fragmentShader] = `
                varying vec3 v_positionEC;
                void main(void){
                  vec4 position = czm_inverseModelView * vec4(v_positionEC,1); // 位置
                  float glowRange = 100.0; // 光环的移动范围(高度)
                  gl_FragColor = vec4(0.2,  0.5, 1.0, 1.0); // 颜色
                  gl_FragColor *= vec4(vec3(position.z / 100.0), 1.0); // 渐变
                  // 动态光环
                  float time = fract(czm_frameNumber / 360.0);
                  time = abs(time - 0.5) * 2.0;
                  float diff = step(0.005, abs( clamp(position.z / glowRange, 0.0, 1.0) - time));
                  gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - diff);
                }
                `;
              }
            );
            _model._shouldRegenerateShaders = true;
          }
        }
      });
      viewer.flyTo(tileset);

相关文章

  • 医美拼单

    敷尔佳 -白膜 68rmb -黑膜 95rmb -喷雾 68rmb 功 效 -白膜:消炎,祛痘,补水,保湿,舒缓...

  • 酵素白膜

    为什么会出现白膜? 酵素发酵中形成的白膜,其实是酵素接触空气后生成的酵母菌层。酵素白膜的形成和作用: 1、主要是“...

  • 绘画教程丨不会打光怎么办!那就先看看各个角度的光照效果吧!

    360度无死角打光参考帮你解决打光问题

  • 七夕

    黑 在白的面前,它只是暗了点 在黑的面前,它只不过是水中造像 白 在白的面前,光打光,晃眼 在黑的面前,它是拥有了...

  • 打光

    难得的休息日,难得的不用做各种检查,一大早我就驱车赶往堵河,准备来一个愉快的野钓。 紧张忙碌了很久,也没有得到一个...

  • 2021-04-12

    Cesium3DTileset:用于流式传输大量的异构3D地理空间数据集; Cesium3DTileStyle:瓦...

  • 面膜系列

    没有硬的白膜,味道有点点冲,不建议再次购买 喜欢这个面膜清新的柠檬味道,但质地薄薄的,感觉不是很好 厚厚的白膜 味...

  • KEYSHOT打光技巧

    打光小技巧

  • 护肤品回购篇

    美白护肤乳,有一定美白效果,还不错 欣兰冻膜 去黑头 温和效果好

  • 红柚

    黄皮白膜红肉 肉嫩甜口入胃 世间神奇的存在

网友评论

      本文标题:Cesium3DTileset白膜打光

      本文链接:https://www.haomeiwen.com/subject/aokstjtx.html