【数字孪生】Nginx发布数字孪生三维建模模型服务及调用方法

【数字孪生】Nginx发布数字孪生三维建模模型服务及调用方法

  • 一、需求
  • 二、实施步骤
    • 2.1 准备模型文件
      • 2.1.1 3D tiles模型
      • 2.1.2 3D Tiles标准文件格式
    • 2.2 配置nginx server块
      • 2.2.1 Nginx能干啥
    • 2.3 访问
  • 三、实现效果

一、需求

利用三维渲染引擎Cesium加载3D tiles模型。

二、实施步骤

2.1 准备模型文件

在这里插入图片描述

2.1.1 3D tiles模型

3D tiles模型是一种用于三维地理信息系统(GIS)和建筑信息模型(BIM)的数据格式。这种模型被设计用来高效地存储和传输大量的3D空间数据,它能够支持高分辨率的3D地图和复杂的城市景观。
3D tiles模型主要包含以下几个关键的组成部分:

  1. 层次结构:3D tiles将一个大型的3D模型分解成许多小的、可管理的部分,称为瓦片(tiles)。每个瓦片代表模型中的一个较小区域。这种层次结构使得它能够处理非常庞大的三维数据集。
  2. 数据编码:瓦片中的数据通常以一种高效的方式进行编码,例如使用一种叫做“Point Cloud Compression”的压缩技术,这可以大大减少存储需求和加快传输速度。
  3. 灵活性:3D tiles模型支持多种类型的数据,包括点云、纹理、法线、颜色等。这使得它非常适合用于复杂的3D场景,如城市规划、建筑设计、环境监测等。
  4. 兼容性:该模型已经被多个标准和开源GIS和BIM软件支持,例如CesiumJS、Three.js、Blender等,这使得3D tiles模型具有很好的互操作性。
  5. 高效加载:3D tiles模型支持渐进式加载,这意味着可以先加载用户当前需要的部分,而不是整个模型。这大大提高了用户体验,特别是在网络条件有限的情况下。
    总的来说,3D tiles模型提供了一种高效、灵活且易于使用的手段来处理和传输3D空间数据,这在今天越来越重视三维可视化和虚拟现实的世界中具有重要意义。

2.1.2 3D Tiles标准文件格式

3D Tiles标准是一种用于传输和存储大规模3D城市景观、地形和其他3D数据的文件格式和数据结构。它由几个不同的文件格式组成,这些格式协同工作以支持3D数据的加载、渲染和交互。3D Tiles标准文件格式主要包括以下几种:

  1. .b3dm (Binary 3D Model):
    • 包含模型数据的二进制文件格式,通常用于存储复杂的3D模型,如建筑物、地形等。.b3dm 文件可以直接被WebGL等图形API使用,不需要额外的解析步骤。
  2. .i3dm (Instanced 3D Model):
    • 包含实例化3D模型的数据,这种格式用于存储可以重复使用的3D对象,如城市中的建筑物或地形中的树木。.i3dm 文件包含一个指向实际模型数据的引用(如.b3dm文件)以及定义实例位置、旋转和缩放属性的数据。
  3. .pntm (Point Cloud Metadata):
    • 用于存储点云数据的文件格式。点云数据通常用于表示大量的点状对象,如城市中的灯柱或地形中的树木。
  4. .qtm (Quadtree Metadata):
    • 用于存储瓦片索引数据的文件格式。瓦片是3D Tiles数据集的基本组织单位,.qtm 文件包含瓦片的层级结构和引用。
  5. .json (JSON):
    • 用于存储3D Tiles集的元数据,如场景描述、瓦片配置、样式信息等。.json 文件定义了整个3D场景的结构和内容。
  6. .glb (GLTF Binary):
    • 虽然不是3D Tiles标准的一部分,但.glb文件格式常与3D Tiles一起使用。它是一种二进制格式的GLTF(Game Loading and Interaction Format)文件,用于存储3D模型数据。.glb文件可以被.b3dm文件引用,作为实际模型数据的一部分。
      这些文件格式共同构成了3D Tiles数据集,支持大规模、高效的3D地理空间数据可视化。3D Tiles标准还定义了如何将这些文件组织成一个目录结构,以及如何通过HTTP协议进行数据的传输和加载。

2.2 配置nginx server块

	 server {
        listen       80;
        server_name  127.0.0.1;
		#增加文件类型
		types {
			application/octet-stream b3dm;
		}
		#访问的路径
		location /3dtiles {
			#存放模型的文件夹
			alias F:/mars3d-max-shihua-3dtiles-master;
			autoindex on;
			add_header Access-Control-Allow-Origin *;
			add_header Access-Control-Allow-Methods "GET, OPTIONS";
			add_header Access-Control-Allow-Headers "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type";
			add_header Access-Control-Allow-Credentials true;
		}


    }

2.2.1 Nginx能干啥

Nginx的灵活性和模块化设计使得它能够适应多种不同的服务器角色,并且通过配置文件进行简单的修改就可以切换不同的服务类型。这使得Nginx成为了一个非常强大和多用途的网络服务器解决方案。
以下是Nginx可以充当的一些主要服务器类型:

  1. HTTP服务器
    • 这是Nginx最基本的角色,作为Web服务器直接为客户端提供HTTP服务。它可以提供静态资源,如网页、图片、CSS文件等。
  2. 反向代理服务器
    • 当Nginx作为反向代理服务器时,它接受客户端的请求,将请求转发给后端服务器,并将响应返回给客户端。这可以用于负载均衡、缓存静态内容、TLS终止(SSL Offload)等。
  3. 负载均衡器
    • Nginx可以通过分配请求到多个后端服务器来平衡负载,从而提高应用程序的性能和可靠性。它支持多种负载均衡算法,如轮询、最少连接、IP哈希等。
  4. 应用服务器
    • 虽然Nginx不是传统意义上的应用程序服务器,但它可以通过配置模块来支持各种应用程序服务,如提供PHP、Python、Node.js等语言的处理能力。
  5. 邮件代理服务器
    • Nginx可以配置为SMTP、IMAP和POP3邮件代理服务器,用于处理邮件传输和存储。
  6. 文件服务器
    • Nginx可以用来共享和管理文件,通过配置目录列表或提供文件下载功能。
  7. API服务器
    • Nginx可以作为API的网关,处理API请求,将请求转发到后端服务,并且可以进行权限校验、数据格式转换等。
  8. 视频流媒体服务器
    • 通过配置相应的模块,Nginx可以支持视频流媒体服务,如使用HLS(HTTP Live Streaming)或DASH(Dynamic Adaptive Streaming over HTTP)来传输视频内容。

2.3 访问

重启nginx后,修改cesium资源加载URL,

 const tileset = new Cesium.Cesium3DTileset({
        url: "http://127.0.0。1/3dtiles/shihua/tileset.json",
      });

三、实现效果

一般地,3D Tiles数据文件夹下包含一个html文件,双击就可以看到模型渲染效果。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

上海微电子企业ERP系统介绍及现状

在当今信息化、数字化的时代,企业资源规划(ERP)系统已成为企业管理的核心工具。上海微电子企业,作为国内微电子行业的重要力量,其ERP系统的应用与发展更是备受关注。 ERP系统是一种集信息技术与管理思想于一体的企业管理系统。它通过对企业内…

无人咖啡机品质之选,D 咖助力差异化竞争

在当今竞争激烈的商业环境中,如何脱颖而出成为众多企业关注的焦点。而无人咖啡机的出现,为商家提供了一个全新的思路。D 咖无人咖啡机,以其卓越的品质和独特的功能,成为了商家们实现差异化竞争的得力助手。 1. 卓越品质&#xff1…

uniapp——第4篇:分析一下全局文件、配置

前提,建议先学会前端几大基础:HTML、CSS、JS、Ajax,还有一定要会Vue!(Vue2\Vue3)都要会!!!不然不好懂 一、uniapp项目创建新包放乱杂文件 我们的项目结构里有一个包叫static&#x…

Python环境下基于1D-CNN、2D-CNN和LSTM的一维信号分类

以简单的西储大学轴承数据集为例,随便你下载几个信号玩耍吧,我选了10个信号,分别求为正常状态,内圈(轻、中和重度损伤),外圈(轻、中和重度损伤),滚动体&#…

分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别

分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别 目录 分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别。 2.自…

4个环节5大方面,助您打造“标准化仓库”

仓库管理,在保障企业物流运作效率、降低运营成本、提高客户服务质量等方面发挥着不可替代的作用。标准化、规范化管理作为仓库管理中的重要手段,不仅能够提高管理效率,还能够有效地降低管理风险,使仓库运作更加安全、稳定、高效。…

弧光保护装置助力煤矿高压开关柜的可靠供电

在煤矿高压开关柜运行中,由于受到多种因素的干扰,中低压母线发生故障的概率较高,在中低压母线装设中又没有设置专门的保护,所以开关柜电弧光短路等问题时有发生,对变压器等设备造成一定的损害。鉴于此,对电…

3.16美团笔试复盘

3.16美团复盘 第一题 题目分析 这一题比较简单,直接模拟即可,sum(a)-t1-t2; import java.util.*; class Main{public static void main(String[] args){Scanner scnew Scanner(System.in);int nsc.nextInt();long sum0;while(n-->0){sumsc.nextInt()…

宜搭生产情况调试技巧

在宜搭生产环境中,经常会碰到一些人对于某些操作有报错,即便是有错误日志,但是错误日志没发获取详细的错误栈和错误信息,因此对于复刻某些操作是有必要的,这里我给出一个还蛮好用的方法。 首先找到错误操作的数据来源&#xff0c…

盛元广通全新智能实验室管理系统3.0强势上线

目前,盛元广通全新上线智能实验室管理系统3.0, 在原有的产品基础上迭代更新升级,此次升级以“新势能、智能化、低代码化”为产品功能赋能,从界面的整体布局、数据的维度、和兼容、安全性方面都实现了质的提升,系统在易…

代码随想录算法训练营第14天 part01 | 二叉树理论基础篇

代码随想录 二叉树理论基础篇 二叉树的种类 二叉树有两种主要的形式:满二叉树和完全二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 这棵二叉树为满二叉树…

2023年迟到的年终总结

前言 一年又一年,过的好快啊。本以为上一年是黑云压城城欲摧,2023年可以甲光向日金鳞开,但是没想到23年更是黑暗啊,人生嘛总是十之八九不如意,一年的经历可以大概的概括为,业务转型的Q1,压力倍增…

悲观锁(Pessimistic Locking)是一种数据库锁定机制

悲观锁(Pessimistic Locking)是一种数据库锁定机制,用于防止多个事务同时修改同一数据记录。以下是关于悲观锁的一些详细信息: 锁定数据:当事务对一条记录进行操作时,悲观锁会阻止其他事务对这条记录进行修…

2024年全新的抖店电商创业玩法,一个月多赚大几千!实操教程在这

大家好,我是电商花花。 新一年,新征程,一些打工人回到自己的岗位上做着按部就班的工作。 然后也有一些创业的朋友就开始寻找着2024年的赚钱新机会和新风口。 作为在电商创业将近8年的我,预测2024年的风口依然是电商渠道&#x…

【Redis】基于Redis实现共享Session登录

用户登录是一种常用功能。这里记录一下基于Redis实现用户登录的代码。  下面是登录的流程图: 用户先提交手机号和验证码,服务器以手机号为key校验redis中存储的验证码,存在,则查询数据库中是否存在用户,不存在则创建…

【Quixel Mixer】简单介绍

一、下载 官网下载地址:Quixel Mixer - All-in-one texturing & material creation tool 下载好之后双击exe来安装 等待安装完成 下载后打开,新建一个工程和Mix 二、界面介绍 我们先将软件界面分为如下3个部分 1号区域为菜单栏 2号区域介绍 2号…

Windows Docker 安装

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。 Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux 内核的系统上…

Linux —— 定时任务(sleep、crontab、at)

目录 1、使用 sleep 来完成定时任务 2、使用 crontab 来进行定时任务 3、使用 at 来执行单次的定时任务 1、使用 sleep 来完成定时任务 sleep n 等待 n 秒再继续往后执行 usleep n 等待 n 微秒再继续往后执行(1 秒等于 1 000 000 微秒&#xf…

聚道云如何实现薪人薪事与金蝶云无缝对接,破解财务难题?

一、客户介绍 某科技有限责任公司是一家在信息技术领域具有显著影响力的企业,长期致力于为企业提供全面的解决方案和技术支持。在业务范围上,该公司覆盖了多个关键领域,包括云计算、大数据、人工智能等前沿技术。公司不仅提供定制化的技术解…

从资金管理的角度谈谈个人怎样交易现货白银

刚进入现货白银市场,个人要怎么交易现货白银的?这就涉及现货白银交易生涯的开启问题,开头开的好,我们整个交易生涯都将会有所裨益,所以我们要为个人怎样交易现货白银开个好头。下面我们就从资金管理的角度出发&#xf…