Cesium中关于新版本中建筑贴图模糊化得处理方式

这篇具有很好参考价值的文章主要介绍了Cesium中关于新版本中建筑贴图模糊化得处理方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

运用场景:

在项目中有需要将3Dtiles加载得lod1,lod2.5等模型得贴图进行模糊化的相关功能


问题描述

例如:如果使用maximumScreenSpaceError的方式进行模糊化也可以达到我们需要得效果,但是需要我们去调整视角查看,在一定得视角范围得模型才会模糊化,不能到到大范围得模型进行模糊化,所以不是很完善.我们可以使用CustomShader进行大场景得模型模糊化来达到我们得目的!
参考代码如下:

 //cesium初始化得时候噩梦需要添加这个方法,将模糊化精度打开
 Cesium.ExperimentalFeatures.enableModelExperimental = true;

原因分析:

例如:cesium 新版本中需要添加上述的初始化方式才能开始模糊化,分别是 Cesium.ExperimentalFeatures.enableModelExperimental = true;,否则我们是使用new Cesium.CustomShader,代码实现得功能是不会实现得


解决方案:

Cesium.ExperimentalFeatures.enableModelExperimental = true;
const tileset = new Cesium.Cesium3DTileset({
  url: Cesium.IonResource.fromAssetId(75343),
  customShader: new Cesium.CustomShader({
    lightingModel: Cesium.LightingModel.UNLIT,
    fragmentShaderText: `
      // Color tiles by distance to the camera
      void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
      {
          material.diffuse = vec3(0.0, 0.0, 1.0);
          material.diffuse.g = -fsInput.attributes.positionEC.z / 1.0e4;
      }
      `,
  }),
});
layer.inst.customShader = new Cesium.CustomShader({
        lightingModel: Cesium.LightingModel.UNLIT,
        fragmentShaderText: `
        // Color tiles by distance to the camera
        void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
        {
            material.diffuse = vec3(0.0, 0.0, 1.0);
            material.diffuse.g = -fsInput.attributes.positionEC.z / 1.0e4;
        }
        `,
      })

或者采用自行贴图得方式进行贴图模糊化,图片可以使用马赛克类似得图片进行.文章来源地址https://www.toymoban.com/news/detail-665479.html

const textureUniformShader = new Cesium.CustomShader({
        uniforms: {
          // user-defined texture
          u_texture: {
            type: Cesium.UniformType.SAMPLER_2D,
            value: new Cesium.TextureUniform({
              url: "http://localhost:8080/test3.jpg",
            }),
          }
        },
        // Apply the texture to the model, but move the texture coordinates
        // a bit over time so it's animated.
        fragmentShaderText: `
    void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
    {
        material.diffuse = texture(u_texture, fsInput.attributes.texCoord_0).rgb;
    }
    `,
      });
      layer.inst.customShader = textureUniformShader

到了这里,关于Cesium中关于新版本中建筑贴图模糊化得处理方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Cesium】3Dtiles建筑模型分层渲染的思路

    真的很久没有更新过博客了,最近入职了新公司,要做一个新的项目,使用到cesium,翻阅外网和国内各大网站,发现资料真的很少。国内很多资料都是翻译外网的,所以,没去过外网的同学,其实去不去也没必要了。而国内的环境真的是一筹莫展:要么就是有经验的人二次封

    2024年02月05日
    浏览(29)
  • 数据处理(4):4种方式使用3Dmax模型数据转cesium Gltf模型

    方式一: COLLADAMaxNew插件 转换 下载链接: https://www.aliyundrive.com/s/xLXfLggCh9k 提取码: fs72 环境准备,需先安装max插件COLLADAMaxNew.dle,这是一个导出插件,可以将模型导出0penCOLLADA(*.DAE)格式文件 将下载得COLLADAMaxNew.dle插件放置3Dmax安装目录Plugins下即可,随后重启3Dmax即可。 也可以

    2024年02月15日
    浏览(37)
  • Cesium-建筑物模型shp数据转3dtile数据

            记录一下 cesium 加载3dtile格式的建筑物模型文件,数据由shp数据通过官方工具 CesiumLab 转换3dtile数据 ,文章末附链接  直接记录操作-         工具用的CesiumLab v3.0.7 1-shp数据文件       2-工具操作    数据有高度字段的可选⬇  pak为地形高程文件   3- 完成上述操作

    2024年02月07日
    浏览(49)
  • Cesium-源码修改-gltf增加纹理贴图改变3dtiles外观

            Cesium支持加载gltf和3dtiles等三维数据模型,实现了很好的封装,往往只需要给一个uri就能加载模型文件,并实现贴图渲染等。但是好的封装带来的问题是如果开发者想要自定义贴图,那该怎么办?不得不从源码入手。         这篇文章的价值不仅仅是gltf增加纹理贴图

    2024年02月06日
    浏览(50)
  • java中关于深拷贝的几种方式

    在java里,当我们需要拷贝一个对象时,有两种类型的拷贝: 浅拷贝与深拷贝。 浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。 深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。 O

    2024年02月11日
    浏览(38)
  • Vue项目中关于全局css的处理

    我们在写CSS的时候,会遇到大量相同的属性(比如:margin-top:10px)这种属性 几乎每个vue页面都有 。这个时候,我们可以把 css挂载到全局上 ,供所有vue页面使用,同时也方便修改。 在App.vue的style标签内引入 在main.js中引入 在index.html 中引入 4. 在vue.comfig.js中引入 拆分的结果可以

    2024年02月04日
    浏览(36)
  • 云计算、大数据技术的智慧工地,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式

    智慧工地是利用物联网、云计算、大数据等技术,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式。 智慧工地架构: 1、终端层: 充分利用物联网技术、移动应用、智能硬件设备提高现场管控能力。通过RFID、传感器、摄像头、手机等终端设备,实现对项目建

    2024年02月04日
    浏览(42)
  • unity中AO、metallic、roughness贴图的使用方式

    albedo和normal贴图大家应该都知道,分别是纹理贴图和法线贴图。AO、metallic、roughness这3种贴图又该怎么给材质添加?  AO、metallic贴图比较简单,在standard的shader的Occlusion和Metallic处添加即可。 roughness贴图的使用就有些复杂了,需要用ps和其它贴图进行融合使用,而不是单独添加

    2024年02月13日
    浏览(38)
  • 小笔记:Electron中关联格式、处理文件、创建链接的相关编程

    Electron 笔记:Electron中关联格式、处理文件、创建链接的相关编程 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 邮箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/131041514 【介绍】:本文介绍关于在Electron中绑定文件格式、在菜单

    2024年02月09日
    浏览(35)
  • 城市建筑模型UE虚幻引擎加载处理流程

    目前,建筑轮廓矢量数据的获取方式有多种: (1)osm开源数据下载。 (2)地形图转绘。 (3)其他如立体测绘等方式提取。 使用cityengine导入建筑矢量数据,根据楼层信息建立建筑立体轮廓。 根据自带的开放纹理库进行建筑纹理贴图,纹理库有多重风格提供选择。 建筑模型导出ob

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包