当前位置: 首页 > news >正文

8.对象贴地

愿你出走半生,归来仍是少年!

        在场景中,有时候需要对地物(房屋、楼宇)进行贴地处理,或者说相对地面高度(井盖、井室)进行设置。

        通过自定义的Terrain切片以及影像瓦片构建的三维场景应该如何获取到指定位置的高程呢?

 1.通过原始的DEM数据获取

        构建Terrain切片时肯定有对应的Dem原始数据,可以通过对Dem数据进行直接获取指定位置的高程。然后通过此高程在unity的场景中设置游戏对象的底面高度。具体操作请参考此文章:01.Dem数据提取高程_dem数据如何读取高度,c++_就是那个帕吉的博客-CSDN博客

2.在Unity中直接获取

        通过Cesium 3DTileset组件加载Terrain构建的地形已存在在场景中,所以可以通过对它进行高程获取。

2.1.图层

        首先需要将地形对象添加到对应的图层中。

增加Terrain图层
将对象添加到图层

 2.2.高程获取

        通过游戏对象的坐标,构建一个从高空往地面的射线,通过射线求出与指定图层的交点的世界坐标。

        通过CesiumGeoreference将世界坐标转换为球心坐标,然后通过CesiumWgs84Ellipsoid将球心坐标转换为经纬度高程,就获取到指定位置的场景内的高程了。

 Ray ray = new Ray(org, to);RaycastHit hit;int layerMask = LayerMask.GetMask(ConstVars.Terrain);if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)){transform.position = hit.point;var earth = cg.TransformUnityPositionToEarthCenteredEarthFixed(new double3(hit.point.x, hit.point.y, hit.point.z));var wgs84 = CesiumWgs84Ellipsoid.EarthCenteredEarthFixedToLongitudeLatitudeHeight(earth);terrainHeight = wgs84.z;Debug.Log(terrainHeight);}

3.结论

        同理,若是想要贴合倾斜等,也可以采用此方法进行高程获取。

http://www.lryc.cn/news/199797.html

相关文章:

  • AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同
  • flutter doctor检测环境,出现CocoaPods installed but not working
  • Python 条件和 if 语句
  • 行业领先的三个企业正在利用聊天机器人变得更强
  • 「Git|场景案例」从项目中删除之前commit过的文件并且让git不追踪删除操作
  • 一款.NET Core开源的基于Vue+ElementUI开发的博客系统 - StarBlog
  • 用git stash暂存修改
  • 一个适合练手的接口测试实战项目——慕慕生鲜
  • window10/11 光学系统建模之Light Tools8.6 软件安装教程(亲测可用+附带免费资源可直接下载)
  • Vue3+ElementPlus el-date-picker时间选择器,设置最多选择60天区间内,必须选择大于今天
  • 2022年亚太杯APMCM数学建模大赛B题高速列车的优化设计求解全过程文档及程序
  • OSI网络分层模型
  • EOS区块链keosd的RPC API
  • React +AntD + From组件重复提交数据(已解决)
  • spring的简单使用(配合Druid操作数据库)
  • 10.20作业
  • 笔记1 Compute Shaders
  • IntelliJ IDEA 2023版本 Debug 时没有Force Step Into 按钮解决方法
  • 【2024秋招】用友后端BIP部门hr面-2023.8.31
  • [ Windows ] ping IP + Port 测试 ip 和 端口是否通畅
  • Golang协程的概念、用法、场景及案例
  • Redis 主从复制,哨兵,集群——(3)集群篇
  • Flink之Watermark水印、水位线
  • uni-app:对数组对象进行以具体某一项的分类处理
  • 顺序队列----数据结构
  • 【Python学习笔记】字符串格式化
  • RIP,EIGRP,OSPF区别
  • 驱动day2作业
  • MySQL基本操作之创建数据表
  • rk平台android12修改dp和喇叭同时输出声音