Cesiumlab对人工模型、建筑矢量面和BIM模型的处理参数设置 CesiumLab系列教程

news2024/11/20 11:24:34

CesiumLab中将人工模型(fbx、obj)、建筑矢量面(shp)和BIM模型(clm)的处理都集中在一起,统一使用通用模型处理。

输入文件部分,加载文件在这里不在赘述,输入了文件后,点击每条记录后面的小齿轮就可以进入设置值参数界面,具体参数面板,根据输入类型不同而不同。

1.obj参数设置

​1)空间参考

对于通用模型,大部分的数据都没有自带空间参考,为了便于处理,所以我们使用了一个默认值: ENU:39.90691,116.39123 此位置在天安门附近。模型坐标的 (0,0,0)点会放置到该位置,如果你的模型坐标非常大,距离零点很远,可能漂浮在半空中。默认坐标仅仅是为了测试,需要根据你数据具体设置。

2)属性文件

通用模型处理的数据,都会默认带两个属性:id,name对于不同的数据 id 和 name 来源不同。 Obj: name 来自 node name,id 是随机生成 Fbx:name 来自 node name,id 是根据 fbxsdk 的unqiueid 计算 md5 得到。 Clm:name 来自 构件名称,id 根据导出插件,revit 来自构件的 uuid,microstation 来自构件 id。 Shp:name 来自 name 字段,如果没有来自 FID,id 是来自 FID。

除了这两个属性之外,在本章【属性字段】部分可以选择是否携带可选属性。对于 obj、 fbx 等模型来说,由于本身不携带属性数据,我们支持通过属性文件来外挂属性字段。对于属性文件的要求:

  1. 必须是csv 格式,utf8 编码,注意 csv 是通过英文逗号分割的。

  2. 第一列必须是【唯一名称】。

  3. 第一列的值和模型场景里的名称关联匹配

​3)透明模式

用户可以强制设置透贴的形式,可以指定是 mask 或者blend。 【Mask】:适合树叶类的透明。 【blend】:适合玻璃类透明。 【自 动】:表示让程序自动判断。如果你透明通道数据里的 alpha 值,除了 0,就是 255,那就用 mask,否则就用 blend。

4)强制双面

由于数据制作或者转格式中的一些缺陷,一些三角面绕向是反向的。或者还有一些类似护栏、纱网等对象,虽然在 3dmax 里正面背面观察都可以,但是导出后可能只在一个面能观察到,为了避免此种问题。这里可以开启,不过该选项会导致一定的渲染性能损失。

5)无光照

对于烘焙后的 3dsmax 数据,光照阴影已经烘焙到贴图上了,无需通过 Cesium 的渲染光照计算或者说也不能通过 Cesium 的光照计算,那么开启此选项后,保证模型颜色和烘焙效果一致。

6)翻转YZ

Obj 没有信息存储向上轴的问题,比如 gltf 是 y 向上,但是很多三维引擎尤其地理引擎都是 z 向上,我们默认认为 obj 也是 z 向上。这个开关需要和你 3dsmax 导出时候的选项一致,向上轴就不会错。

7)gbk 编码

Obj 是个纯文本文件,所有文本文件都涉及到文字编码问题,如果 obj 内容都是纯英文,这里可以忽略。如果处理结果点查属性,发现有乱码,那么打开这个开关切片下再尝试。默认 3dsmax 导出的 obj 都是 gbk 编码的。

8)翻转绕向

Obj 格式简单,但是来源多种,一般来说 3dsmax 导出的数据没有绕向问题,但是发现有背面裁剪情况,尝试开启此选项,重新处理。

2.fbx参数设置

​fbx的参数设置可以完全参照obj参数设置去设置,这里不再赘述。

3.shp参数设置

​1)空间参考

一般来说 shp 的空间参考信息完备,这里不需要设置。

2)造型参数

造型参数,处理程序根据 shp 的轮廓信息来生成三维几何体需要的。各项参数详述:

  1. 造型参数.建筑高度

建筑高度有两种方式: 1)固定高度方式:

根据给定值来设置建筑模型的高度。

2)高度字段方式: 建筑高度 = 选择的字段值 * 设定的倍率 比如 shp 里有楼层个数字段 floor,那么这里可以选择 floor,倍率设置 3,表示一层三米,总高度 = floor 的值 * 3 2.造型参数.底面高度

和【建筑高度】字段类似,固定或者字段两种方式来设置建筑底面的高度。设置不赘述,下一个参数会统一说明建筑的高度计算方式 3.造型参数.绝对高度

如果 【绝对高度】开关关闭,那么 建筑下底高 = 【底面高度】+ 【地面中心点的地形高程】建筑上顶高 = 建筑下底高 + 【建筑高度】 如果 【绝对高度】开关打开,那么建筑下底高 = 【底面高度】建筑上顶高 = 【建筑高度】 4.造型参数.分类单体

【分类单体】打开之后,生成的 3dtiles 比较特殊,是一种支持 Cesium 分类渲染的几何体,可以用来做倾斜单体化,具体见这篇文章 分类单体化的说明 - Cesium实验室 5.造型参数.仅外轮廓

建筑矢量面可能是带孔洞的复杂 Polygon,如果此开关打开,那么会忽略内部孔洞,只按外轮廓生成建筑几何体。 6.造型参数.边界简化

一般来说,建筑矢量面的外轮廓边界并不复杂,我们不需要开启此参数(保持默认值 0),但是如果有一些非建筑轮廓的矢量面,希望也能拉体,如果边界过于复杂,可以常设设置此参数来简化边界,比如设置了 1,那就表示以 1 米误差来简化边界。这种使用是非常规方式,请自行测试。 7.造型参数.缓冲范围

这个主要需求在于,很多单体化矢量是基于正射来勾勒得单体化轮廓,但是如果此轮廓勾勒得过于紧密,单体化不足以完全包裹倾斜得模型范围,导致部分裸漏,效果不好,可以尝试设置缓冲范围,我们对矢量轮廓向外做一个缓冲区,然后再进行生成几何体操作。

3)贴图设置

​对于shp 生成的白模,我们可以依据条件来进行模型贴图。条件是一个列表,可以设置多个。点击操作里弹出添加条件界面:

1.贴图设置.顶部纹理

顶部纹理:需要设置一个 jpg 图片的路径,可以点击【选择】按钮来选择该路径。

2.贴图设置.顶纹理宽

顶纹理宽:默认为 0,表示一张纹理覆盖整个顶面。如果不为 0,比如设置了 1,表示这张纹理每隔 1 米重复一次,那处理程序会计算重复次数,设置每个顶点的 UV 坐标。

3.贴图设置.侧面纹理

侧面纹理:需要设置一个 jpg 图片的路径,可以点击【选择】按钮来选择该路径。

4.贴图设置.侧纹理宽

侧纹理宽:默认是 0,表示一张纹理图片贴满整个侧面。如果不是 0,比如设置 1,表示这张贴图每隔 1 米重复一次,那处理程序会计算重复次数,设置每个顶点的 UV 坐标。

5.贴图设置.条件

需要选择一个 【字段】,选择 【操作符】,输入【条件值】比如 字段选择的“floor”,操作符 “==”,条件是“3” 那么表示这个贴图条件只作用在 floor==3 的建筑物上,其他条件类似。 多个条件的判定逻辑: 对每个矢量对象,所有条件按照添加顺序顺次判定,只要对象满足了某个条件,立即采用该条件的贴图设置,不再做后续判定。

6.贴图设置.内置贴图

我们自带了三种贴图效果,单击该图片,会添加一个配置条件,内置的贴图已经配置好了,只需要设置下条件即可。

4)地形高程

​地表高程我们支持从地形切片的输出数据来采样,而且支持多个地形数据。点击【添加紧凑高程切片】选择 pak 地形切片,会列在此表格里。 点击【添加散列高程切片】选择散列地形切片,散列地形会列在此表格里。 处理程序会按照列表顺序来依次采样,只要正确采样到对应点位高度,就停止采样下一个。 建筑的高程,我们只采样轮廓的中心点位置。

4.clm参数设置

具体还是参照obj参数设置,这里不在赘述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

陪诊系统搭建,陪诊平台应当具备什么功能?

随着近些年来市场的变化,陪诊服务也在慢慢的受到人们的关注,自从有了陪诊系统之后,帮助了许许多多独立就医不便的人群,给了像是搞不清就诊流程的老年人、家人不方便陪伴的孕妇、残障人士,以及需要陪伴就医的独居人士等…

上海市“专精特新”中小企业和杨浦区“专精特新”中小企业给予5万元和3万元资助

杨浦区“专精特新”中小企业认定一、主管部门杨浦区商务委员会二、政策依据《关于印发<杨浦区“专精特新”中小企业培育工程实施办法>的通知》&#xff08;杨商务委规〔2018〕1号&#xff09;《关于组织推荐2021年度杨浦区“专精特新”中小企业申报(复核)的通知》三、扶持…

【Qt】加载.ui转化的.h头文件显示窗体

【Qt】加载.ui转化的.h头文件显示窗体1、背景2、实例3、验证1、背景 将.ui文件转化为.h头文件参考如下博客&#xff1a; 【Qt】将QtDesigner生成的.ui文件转化为.h头文件 https://jn10010537.blog.csdn.net/article/details/128589666其中生成的ui_widget.h头文件内容如下&am…

TensorFlow之超级参数调优

Keras技术框架提供工具类库&#xff0c;用于对TensorFlow程序相关的超级参数进行调优&#xff0c;为机器学习选择正确的超级参数集合的过程被称之为超级参数调优。 超级参数是指用于治理一个机器学习模型的训练过程及其拓扑结构的变量&#xff0c;这些变量在整个训练过程中保持…

尚医通-项目启动过程

1.先启动Redis&#xff1a; redis-server redis.conf & 2.启动docker&#xff1a; systemctl start docker 3.进入mongo容器&#xff1a; docker exec -it mymongo /bin/bash 4.使用MongoDB客户端进行操作 mongo 5.启动nginx&#xff1a;cmd 输入命令nginx 前期使…

【Kotlin】空安全 ③ ( 手动空安全管理 | 非空断言操作符 !! | 使用 if 语句判空 )

文章目录一、非空断言操作符 !!二、使用 if 语句判空一、非空断言操作符 !! Kotlin 中的 可空类型 变量 , 在运行时 可以选择 不启用 安全调用 操作 , 在调用 可空类型 变量 成员 与 方法 时 , 使用 非空断言操作符 !! , 如果 可空类型 变量为 空 , 则 直接抛出 空指针异常 K…

部署k8s集群

环境准备准备三台虚拟机&#xff0c;建议最小硬件配置&#xff1a;2核CPU、2G内存、20G硬盘 &#xff0c;可以访问外网&#xff0c;&#x1f4a1;ps&#xff1a;以下命令在三台虚拟机上都要执行一遍&#xff0c;直到kubeadm init设置虚拟机hostname sudo hostnamectl set-hostn…

性能优化系列之『混合式开发:小程序内核及优势介绍』

文章の目录一、愿景二、技术优势三、底层内核四、行业背景五、选型建议写在最后一、愿景 触手可及&#xff1a;用户扫一扫或者搜一下即可打开应用用完即走&#xff1a;不用关心是否安装太多应用 二、技术优势 H5 相比 App 开发&#xff0c;开发门槛更低优于 H5&#xff0c;接…

指针进阶篇(1)

目录 &#x1f914; 前言&#x1f914; 一、&#x1f60a;字符指针&#x1f60a; 二、&#x1f61c;指针数组&#x1f61c; 三、&#x1f61d;数组指针&#x1f61d; 3.1数组指针的定义 3.2&数组名VS数组名 3.3数组指针的使用 四、&#x1f31d;数组参数&#xff0c…

LeetCode算法之----回溯

目录 【一】前言 【二】全排列 【三】电话号码的字母组合 【四】括号生成 【五】组合总和 【六】子集 【七】总结 【一】前言 回溯算法采用试错的思想&#xff0c;尝试分步的来解决一个问题。在分步解决问题的过程中&#xff0c;当它通过尝试发现现有的分步答案不能得到有效的…

helm、k8s dasboard、rancher、kubesphere介绍及使用

文章目录1. helm 安装及使用概述1.1 helm 安装1.1.1 添加仓库1.2 helm 常用命令2. dashboard 部署使用2.1 安装helm repo 源2.2 安装dashboard2.3 查看dashboard 运行状态2.4 创建dashboard-admin.yaml文件2.5 创建登录用户2.6 查看admin-user账户的token2.7 登录dashboard2.8 …

非对称加密实战(二):解决web项目不支持https问题 ,添加证书【附源码】

目录web项目http请求变为https请求解决无法访问https问题重启再次访问https出现链接不安全,但是可以继续访问认证文件加入域名参数生成客户端认证文件证书安装源码地址web项目 http请求变为https请求 http请求 https请求 解决无法访问https问题 需要把 非对称加密实战(一…

【博客576】警惕docker本身iptables规则对网络的影响

警惕docker本身iptables规则对网络的影响 警惕1&#xff1a;k8s环境下&#xff0c;独立拉取docker容器时&#xff0c;进行端口映射会有问题 场景&#xff1a; 在k8s节点由于某种原因&#xff0c;比如&#xff1a;需要拉起一个docker环境来制作镜像&#xff0c;需要拉起一些不…

靶机测试Os-hacknos-3笔记

靶机介绍Difficulty: IntermediateFlag: 2 Flag first user And the second rootLearning: Web Application | Enumeration | Privilege EscalationWeb-site: www.hacknos.comContact-us : rahul_gehlautThis works better with VirtualBox rather than VMware靶机地址https://…

nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles

Paper name nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles Paper Reading Note URL: https://arxiv.org/pdf/2106.11810.pdf TL;DR nuPlan 比赛&#xff0c;提出了规控领域新数据集 Introduction 背景 当前自动驾驶规划任务中使用专家系统…

正确实践Jetpack SplashScreen API —— 在所有Android系统上使用总结,内含原理分析

1.前言 文章末尾有演示的APK链接&#xff0c;感兴趣的同学&#xff0c;可以自行下载体验一下 官方Android 12的Splash Screen文档地址 官方Splash Screen兼容库&#xff0c;支持所有版本系统 本篇文章主要围绕下面三个问题来介绍&#xff1a; 我们能从Android 12 SplashScree…

订单数据越来越多,如何优化数据库性能?

“增删改查”都是查找问题&#xff0c;因为你都得先找到数据才能对数据做操作。那存储系统性能问题&#xff0c;其实就是查找快慢问题。 存储系统一次查询所耗时间取决两个因素&#xff1a; 查找的时间复杂度数据总量 查找的时间复杂度取决于&#xff1a; 查找算法存储数据…

基于Java-SpringBoot+vue实现的前后端分离信息管理系统设计和实现

基于Java-SpringBootvue实现的前后端分离信息管理系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

后台执行限制总结

后台限制的发展历程 前台定义 针对后台Service procState < PROCESS_STATE_IMPORTANT_BACKGROUND7 针对后台启动Activity procState < PROCESS_STATE_BOUND_TOP3 针对后台启动FGS/后台启动FGS的while-in-use权限 procState < PROCESS_STATE_BOUND_FOREGROUND_SERVICE…

【Linux】文本编辑器-vim使用

目  录1 vim的基本概念2 vim的基本操作3 vim常用模式命令集3.1 vim正常模式命令集3.2 vim末行模式命令集4 vim的简单配置1 vim的基本概念 vim编辑器与vi编辑器一样都是多模式编辑器&#xff0c;不同的是vim编辑器是vi编辑器的升级版本&#xff0c;vim不仅兼容vi的所有指令&am…