Cesium 问题:三维场景下添加的实体会被遮挡

文章目录

    • 问题
    • 分析

问题

在三维场景下,我们添加的实体会被遮挡导致显示不够完整,例如

在这里插入图片描述
而应该的效果如下
在这里插入图片描述

分析

在三维场景中,实体可能会被以下几类物体或因素所遮挡:

  1. 地形:如果实体位于地球表面附近,地形的起伏和高度差可能导致实体被地形遮挡。这种情况下,可以使用Cesium提供的地形遮挡处理功能来减少遮挡效果。

  2. 其他实体:如果有多个实体在场景中,它们可能相互遮挡。当一个实体位于另一个实体的后面时,前面的实体会遮挡住后面的实体。这种情况下,可以调整实体的位置、缩放或者相机的视角来解决遮挡问题。

  3. 建筑物和结构物:如果实体位于建筑物、桥梁或其他结构物附近,这些结构物可能会遮挡住实体的一部分或全部。这种情况下,可以尝试调整相机的位置和视角,或者使用裁剪面来限制显示区域。

  4. 传感器效应:在某些应用中,例如雷达或红外传感器模拟,传感器的视锥可能会遮挡住实体的一部分区域。这种情况下,可以根据具体需求调整传感器参数或改变实体的位置和缩放。

要解决实体在三维场景中可能会被遮挡或局部遮挡的问题,可以考虑以下几种方法:

  1. 使用 disableDepthTestDistance 属性(建议使用)

    // 实体添加
    that.cesiums.pointEntitie = window.viewer.entities.add({ // 在该位置添加点position: cartesian,point: {pixelSize: 10,color: Cesium.Color.YELLOW,disableDepthTestDistance: Number.POSITIVE_INFINITY // 禁用深度测试,使点始终显示在地球表面上}
    });
    
    // 实体添加
    window.viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(Number(element[0].toFixed(5)),Number(element[1].toFixed(5))),point: {color: Cesium.Color.RED,    //点位颜色pixelSize: 10,                //像素点大小disableDepthTestDistance: Number.POSITIVE_INFINITY // 禁用深度测试,使点始终显示在地球表面上},label : {text :  x + ", " + y,font : '14pt Source Han Sans CN',    //字体样式fillColor:Cesium.Color.WHITE,        //字体颜色// backgroundColor:Cesium.Color.AQUA,    //背景颜色backgroundColor: new Cesium.Color(0.165, 0.165, 0.165, 0.8),// backgroundPadding: new Cesium.Cartesian2(10, 10),showBackground:true,                //是否显示背景颜色style: Cesium.LabelStyle.FILL,        //label样式outlineWidth : 2, verticalOrigin : Cesium.VerticalOrigin.CENTER,//垂直位置horizontalOrigin :Cesium.HorizontalOrigin.LEFT,//水平位置pixelOffset:new Cesium.Cartesian2(10,0),            //偏移disableDepthTestDistance: Number.POSITIVE_INFINITY // 禁用深度测试,使点始终显示在地球表面上}});
    
    this.od8 = window.viewer.entities.add({// id:'testLine',name: 'RedLine',polyline: {positions: Cesium.Cartesian3.fromDegreesArray(temp1),// width: 2,material: Cesium.Color.RED,disableDepthTestDistance: Number.POSITIVE_INFINITY // 禁用深度测试,使点始终显示在地球表面上// clampToGround: true}})
    
  2. 调整相机位置和视角:通过调整相机的位置和视角,可以改变观察场景的角度,从而避免遮挡问题。尝试将相机移动到更合适的位置,或者改变其朝向、俯仰角和滚动角以获得更好的视野。

  3. 禁用深度测试和遮挡处理:默认情况下,Cesium启用了深度测试和遮挡处理,以模拟真实世界中物体的遮挡关系。但这可能导致实体被其他物体遮挡而不完整显示。你可以尝试禁用深度测试来解决这个问题,方法如下:

    viewer.scene.globe.depthTestAgainstTerrain = false; // 禁用对地形的深度测试
    

    请注意,禁用深度测试可能会导致实体之间的遮挡关系出现问题。

  4. 调整实体的位置和缩放:检查实体的位置坐标是否准确,并尝试调整实体的缩放比例,使其更容易被观察到。根据需要,可以使用实体对象的position和scale属性来调整位置和缩放。

  5. 使用视点和裁剪面:在Cesium中,可以定义视点(viewpoint)和裁剪面(clipping plane)来控制场景中实体的可见性。视点可以指定观察者的位置和朝向,而裁剪面可以定义一个边界来裁剪不需要显示的部分。通过使用这些功能,你可以控制实体在三维场景中的显示,从而减少遮挡问题。

  6. 使用绘制图元的方式代替绘制实体类(但出现了新的问题:球面会无法进行拖动):在 Cesium 中,图元(Primitive)是一种基本的绘制对象,但它们不能直接进行交互,无法拖动或更改位置。如果你希望能够拖动球面实体,可以改用 Cesium 的实体(Entity)对象,并为实体添加相应的交互功能。

    //  图元添加
    that.cesiums.pointPrimitive = new Cesium.PointPrimitive({ 
    // 在该位置添加点position: cartesian,pixelSize: 10,color: Cesium.Color.YELLOW
    });
    window.viewer.scene.primitives.add(that.cesiums.pointPrimitive);};
    

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

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

相关文章

GoLang 百行代码实现小项目《家庭收支软件》

界面显示 实现思路 GoLang 百行代码实现的小项目《家庭收支软件》是一个简单的家庭收支记账软件,可以通过命令行界面记录和显示收支明细。 在代码中,定义了两个结构体类型:record(代表一条收支记录)和software&#…

Tomcat部署、优化、以及操作练习

目录 一.Tomcat的基本介绍 1.1.Tomcat是什么? 1.2.Tomcat的组件构成 1.3.Tomcat功能组件结构的核心功能 1.4.Tomcat的顶层架构 1.5.Tomcat的请求过程 1.6.Tomcat的配置文件 二.Tomcat服务部署 2.1.搭建Tomcat运行环境 2.2.安装启动Tomcat 三.Tomcat服务优…

LLM(二)| LIMA:在1k高质量数据上微调LLaMA1-65B,性能超越ChatGPT

本文将介绍在Lit-GPT上使用LoRA微调LLaMA模型,并介绍如何自定义数据集进行微调其他开源LLM 监督指令微调(Supervised Instruction Finetuning) 什么是监督指令微调?为什么关注它? 目前大部分LLM都是decoder-only&…

一图读懂「五度易链」大数据智慧招商解决方案,一站式招商、选商!

“五度易链”以全体量产业大数据为依托,将为区域政府或产业园区构筑智慧招商解决方案,提供从“招商渠道”到“招商评估”再到“招商管理”一站式招商、选商服务。解决招商线索匮乏、招商管理碎片化等一系列问题,还将提供企业综合能力甄别及客…

一台电脑安装多个不同版本Python

1、前提 当前Windows电脑下已经安装了一个python3.11,现在需要安装一个python3.9。下载地址:Python Releases for Windows | Python.org 2、步骤 找到对应的版本,并下载安装包。下载后,打开安装包。按图片勾选,点击n…

分布式算法相关,使用Redis落地解决1-2亿条数据缓存

面试题:1~2亿数据需要缓存,请问如何设计个存储案例 回答:单机单台100%不可能,肯定是分布式存储,用redis如何落地? 一般业界有三种解决方案: 哈希取余分区 2亿条记录就是2亿个k,v&…

6.wifi开发【智能家居:下】,正式开发:智能开关灯,智能采集温湿度,智能调彩灯

一。WEB Server开发 1.需求分析 用户通过页面操作插座彩灯温湿度 【开发前端1】:智能插座网页设计 智能插座网页设计需求 1.通过浏览器访问ESP8266 webserver 2.显示“创客学院-WiFi-智能家居” 3.显示“智能插座” 4.显示当前插座工作状态 5.按键触发插座动作 2.…

Vue3+element-plus切换标签页时数据保留问题

记录一次切换标签页缓存失效问题,注册路由时name不一致可能会导致缓存失效

【前端面试题】2023年 国庆 前端面试真题之JS篇

人的一生,总是难免有浮沉。不会永远如旭日东升,也不会永远痛苦潦倒。反复地一浮一沉,对于一个人来说,正是磨练。因此,浮在上面的,不必骄傲;沉在底下的,更用不着悲观。必须以率直、谦…

21.redo日志(下)

title: “redo日志(下)” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” redo log的刷盘时机 log buffer 空间不足时&…

selenium-webdriver 阿里云ARMS 自动化巡检

很久没更新了,今天分享一篇关于做项目巡检的内容,这部分,前两天刚在公司做了部门分享,趁着劲还没过,发出来跟大家分享下。 一、本地巡检实现 1. Selenium Webdriver(SW) 简介 Selenium Webdriver(以下简称…

多线程的死锁问题

可重入和不可重入😊😊😊 一个线程针对同一个对象,连续加锁两次,是否会有问题 ~~ 如果没问题,就叫可重入的.如果有问题,就叫不可重入的. 代码示例🍉🍉🍉: synchronized public void add(){synchronized (…

vue wangEditor富文本编辑器 默认显示与自定义工具栏配置

1.vue 显示wangEditor富文本编辑器 <template><div style"border: 1px solid #ccc;"><Toolbar style"border-bottom: 1px solid #ccc" :editor"editor" :defaultConfig"toolbarConfig" :mode"mode"/><…

在线商城项目EShop【ListView、adapter】

要求如下&#xff1a; 1、创建在线商城项目EShop&#xff1b; 2、修改布局文件activity_main.xml&#xff0c;使用LineaLayout和ListView创建商品列表UI&#xff1b; 3、创建列表项布局list_item.xml&#xff0c;设计UI用于显示商品图标、名称和价格信息&#xff1b; 4、创…

流媒体播放器EasyPlayer.js无法播放H.265的情况是什么原因?该如何解决?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

外卖小程序开发指南:打造完美的点餐体验

第一步&#xff1a;项目设置和初始化 首先&#xff0c;您需要选择一个适合您的开发平台&#xff0c;例如微信小程序、支付宝小程序或其他移动应用平台。接下来&#xff0c;创建一个新的小程序项目&#xff0c;并初始化所需的文件和目录。 示例代码&#xff08;微信小程序&am…

自定义类型:结构体,枚举,联合

自定义类型&#xff1a;结构体&#xff0c;枚举&#xff0c;联合 前言&#xff1a;结构体1.结构体类型的声明2.结构的自引用3.结构体变量的定义和初始化4.结构体内存对齐5.结构体传参6.结构体实现位段&#xff08;位段的填充&可移植性&#xff09; 枚举1.枚举类型的定义2.枚…

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本…

企业架构相关

数据架构的作用首先是找到所有的业务对象 和数据对象。 在数据对象分析里面有一个重点就是主数据识别和分析。

Python接口自动化搭建过程,含request请求封装

接口测试自动化好处 显而易见的好处就是解放双手&#x1f600;。 可以在短时间内自动执行大量的测试用例通过参数化和数据驱动的方式进行测试数据的变化&#xff0c;提高测试覆盖范围快速反馈测试执行结果和报告支持持续集成和持续交付的流程 使用Requestspytestallure搭建测…