HOOPS Communicator对3D大模型轻量化加载与渲染的4种解决方案

news2024/9/22 21:14:39

今天给大家介绍一些关于3D Web轻量化引擎HOOPS Commuicator的关键概念,这些概念可以帮您在HOOPS Communicator流缓存服务器之上更好地构建您自己的模型流服务器。如果您是有大型数据集,那么,使用流缓存服务器可以极大地帮助您最大限度地减少内存使用量,并确保浏览器中模型数据的交互流畅性。

HOOPS中文网icon-default.png?t=N7T8http://techsoft3d.evget.com/

一、SC Server(流缓存服务器)

SC Server(流缓存服务器)通过Websocket(网络接口)连接,支持将一个或多个SC模型中包含的数据高效地流式传输到HOOPS Web Viewer。SC Server的单个实例仅支持一个客户端连接,但SC Server的多个实例通常会在单个Web服务器上并行运行。SC Server支持两种渲染模式——CSR(客户端渲染)和SSR(服务器端渲染)。

在CSR模式下,SC Server将CAD模型几何图形发送到连接的HOOPS Web Viewer,并让HOOPS Web Viewer直接在用户浏览器中使用WebGL执行3D渲染。在SSR模式中,SC Server将在服务器机器上自行执行3D渲染,然后将渲染结果作为图像数据发送到HOOPS Web Viewer进行显示。

SC Server使用WebSocket技术与HOOPS Web Viewer进行通信,这要求每个SC Server都可以访问未使用的网络端口。如果所有中间防火墙均已正确配置,HOOPS Web Viewer可以直接连接到此端口,或者HOOPS Web Viewer可以通过代理技术使用单个共享端口。

但请注意,即使使用代理方法,每个SC Server实例仍然需要服务器计算机内的专用网络端口,因为代理在网络序列中稍后发生。如果正在使用代理,服务器计算机可能只需要为单个代理端口配置其防火墙即可允许网络流量。HOOPS Communicator HOOPS Server,它管理多个SC Server实例。但是您不使用HOOPS Server的服务器配置,则可以直接运行SC Server。

二、HOOPS Server

HOOPS Server的主要任务是管理单个计算机上的多个SC Server实例和关联资源。任务包括:

  • SC Server生命周期管理

通常会启动新的SC Server实例来响应查看模型的请求。如果关联的HOOPS Web Viewer断开连接或发生响应超时,现有SC Server实例将关闭,每台服务器计算机同时运行的SC Server实例的最大数量将受到用户管理的配置文件的限制,因此正确控制这些实例的启动和关闭非常重要。

  • 网络端口管理

HOOPS Server配置必须包括一系列专用于SC Server与HOOPS Web Viewer之间的WebSocket的通信端口。HOOPS Server必须确保可正确使用这些端口,并且如果SC Server实例关闭或意外启动,则必须收回任何端口。

  • 查看请求

当用户希望启动新的HOOPS Web Viewer时,必须发出请求来创建新的查看会话,从而为该HOOPS Web Viewer启动新的SC Server实例。

HOOPS Server支持两种类型的查看请求:

① REST协议

在此模式下,查看请求通过REST样式的HTTP URL发送到HOOPS Server。HOOPS Server将启动一个新的SC Server实例,并使用可用于HOOPS Web Viewer查看的URI进行响应。

② WebSocket代理服务器

在此模式下,查看请求通过WebSocket URL发送到HOOPS Server,通常采用“ws://<服务器主机名>:<端口>”形式。服务器将启动一个新的SC Server实例,并在内部将请求直接代理到该新实例。

三、HTTP Server

任何情况下,标准HTTP Web Server还必须与Communicator服务器结合使用,以将HTML、JS、CSS、图像和任何其他文件传送到请求浏览器。HOOPS服务器包含一个内置HTTP Web服务器,可用于开发和评估目的,但不建议在生产环境中使用。在特定情况下,应使用针对文件服务进行优化的工业级Web服务器,Apache或NGINX也是不错的选择。

四、渲染类型
  • 客户端渲染(CSR)

通过CSR,SC Server将模型数据流式传输到HOOPS Web Viewer,允许客户端硬件使用WebGL技术渲染3D图形。WebGL是一种JavaScript API,用于在Web浏览器中渲染交互式3D图形,而无需使用第3方插件。它在大多数现代浏览器中都可用。

对于小型模型,SC Server通常只需发送整个模型即可,但对于大型模型,这种方法在内存或网络带宽方面并不实用。因此,在模型较大的情况下,SC Server会使用启发式方法,并结合对当前3D摄像机方向的模型面的了解,来确定向所连接的HOOPS Web Viewer发送模型的最佳部分。通过这种方式,当使用CSR方法时,大型模型几乎可以立即开始部分数据的渲染。

由于WebGL依赖客户端硬件来执行所有渲染,因此运行HOOPS Web Viewer的任何设备都必须足以渲染交互式3D图形,比如:

①您需要有非常高频的网络带宽,可以在可接受的时间内提供3D模型数据

②客户端设备具有足够的计算能力和GPU能力来正确渲染3D模型

③客户端浏览器支持WebGL

④您打算在每台服务器计算机上同时运行大量SC Server

  • 服务器端渲染(SSR)

当HOOPS Web Viewer设置为服务器端渲染时,3D模型的所有渲染均由Web服务器上的GPU执行。因此,您的服务器后端必须包含一个包含GPU的实例。当用户与模型交互时,服务器会渲染每一帧,并将图像发送回客户端的网络浏览器进行显示,从而最大限度地降低对客户端硬件的要求。

图像是实时发送的,因此在用户看来,渲染就像是在本地计算机上实时完成的。

请注意,SSR仅用于3D模型渲染,所有其他功能(如按钮和模型浏览器)都是通过HTML在客户端创建的,这包括所有用户创建的测量和标记数据。SSR的优势是可以只将图像发送到客户端,因此用户几乎可以立即开始模型交互。SSR还允许您使用高性能GPU技术,该技术可以为非常大的模型带来显着的优势。但使用SSR模式会将硬件要求转移到服务器上。

在以下情况下,您可以选择SSR:

☉ 您希望针对最广泛的客户端硬件☉您正计划为不同的客户提供超大型的模型

☉ 您拥有一个复杂的服务器后端,能够以可接受的速度渲染您的模型,它还应该能够根据模型的大小和并行用户数量进行扩展

  • SCS基于单个文件的渲染

在转换源CAD模型时,可以指示HOOPS Communicator Converter生成名为“<模型名称>.scs”的单个文件。通过这种方法,您无需使用HOOPS Server或启动关联的SC Server即可渲染模型。这是CAD模型的独立版本,可以加载到HOOPS Web Viewer中,以便使用WebGL在客户端上进行渲染。SCS文件通常会使用HTTP Web服务器传送到客户端浏览器,所以SCS文件仍然会用到服务器,不过这种方法不需要HOOPS Server或SC Server。

虽然SCS文件方法因其简单性而提供了一些明显的价值,但也有特定条件:

① 在对CAD模型进行任何渲染之前,浏览器必须接收整个SCS文件。对于非常小的模型,这很好,但对于中型到大型模型,与使用CSR相比,这会造成明显的启动滞后。

② 对于较大的模型,SCS文件的大小可能会变得太大而不实用,所以,如果您是仅查看小型模型时,SCS这种方式会更便捷且实用。

欢迎持续关注,下期内容,我们将手把手教您构建您自己的流缓存服务器:

  • 如何以编程方式配置和生成SC-Server (流缓存服务器)实例
  • 如何将JavaScript WebViewer连接到生成的SC-Server
  • 如何监控SC-Server实例的生命周期
关于Tech Soft 3D

Tech Soft 3D是工程软件开发工具包的领先提供商,成立于1996年,总部位于俄勒冈州本德,在法国、英国、日本和挪威均设有办事处。该公司的工具包产品为全球数亿台计算机上运行的700多个独特应用程序提供支持。了解更多HOOPS信息,请访问“HOOPS中文网”

申请HOOPS试用icon-default.png?t=N7T8http://x7pfmmn259623uby.mikecrm.com/d7EBgIv

如果您的企业目前也有3D数据格式转换、3D Web轻量化渲染的需求,欢迎联系我们申请3D 轻量化引擎HOOPS的试用哦~

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

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

相关文章

EthSign联合创始人 POTTER LI 确认出席Hack .Summit() 香港区块链开发者大会!

thSign联合创始人 POTTER LI确认将出席由 Hack VC 主办&#xff0c;并由 AltLayer 和 Berachain 联合主办&#xff0c;与 SNZ 和数码港合作&#xff0c;由 Techub News 承办的Hack.Summit() 2024区块链开发者盛会。 Potter Li&#xff0c;南加州大学应有数学系&#xff0c;南加…

hook函数——useReducer

目录 1.useReducer定义2.useReducer用法3.useState和useReducer区别 1.useReducer定义 const [state, dispatch] useReducer(reducer, initialArg, init?) reducer&#xff1a;用于更新 state 的纯函数。参数为 state 和 action&#xff0c;返回值是更新后的 state。state …

excel统计分析——拉丁方设计

参考资料&#xff1a;生物统计学 拉丁方设计也是随机区组设计&#xff0c;是对随机区组设计的一种改进。它在行的方向和列的方向都可以看成区组&#xff0c;因此能实现双向误差的控制。在一般的试验设计中&#xff0c;拉丁方常被看作双区组设计&#xff0c;用于提高发现处理效应…

新《公司法》规定5年内完成注册资本实缴有哪些影响

2024年对很多企业可谓是一个洗牌的年份。随着新公司法的颁布&#xff0c;很多企业都忧心忡忡面临着各种挑战。其中新《公司法》规定5年内完成注册资本实缴就让很多企业老板睡不着觉。新《公司法》规定注册资本实缴制度将对市场和企业产生一系列影响。主要有以下这几方面&#x…

【Java项目介绍和界面搭建】拼图小游戏——键盘、鼠标事件

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

【javascript】快速入门javascript

本文前言及说明 适合学过一门语言有一定基础的人看。 省略最初学习编程时的各种编程重复的基础知识。 javascript简介 编程语言&#xff08;主前端&#xff09; 用途&#xff1a;主web前后端&#xff0c;游戏&#xff0c;干别人网站 优点&#xff1a;速度快&#xff0c;浏…

Python之Web开发初学者教程----卸载ubuntu系统

Python之Web开发初学者教程----卸载ubuntu系统 Windows 10自带了Subsytem for Linux (WSL)功能&#xff0c;可以让用户在Windows命令行环境下运行Linux命令。用户可以在Windows应用商店中下载和安装Ubuntu子系统&#xff0c;有时在使用过程中需要完全删除Ubuntu子系统以释放硬…

Go语言学习-实现一个workshop

Creating new Go packages 1、创建一个Go package&#xff0c;叫&#xff1a; MyLib • Let’s create a Go package called MyLib and use it in our program 2、在go_project文件夹下开启终端&#xff0c;输入指令创建go.mod文件。 go mod init go_project• Assuming our…

【HTML】HTML基础6.1(表格以及常见属性)

目录 表格介绍 表格标签 表格标签的常见属性 案例 知识点总结 表格介绍 在浏览器中&#xff0c;我们经常见到形如 这样的表格形式&#xff0c;一般来说&#xff0c;表格是为了让数据看起来更加清晰&#xff0c;增强数据的可读性 有的程序员也会用表格进行排版 表格标签 &…

(UE4升级UE5)Selected Level Actor节点升级到UE5

本问所用工具为&#xff1a; UE5 UE4 插件AssetDeveTool包含&#xff1a;快速选择功能自动化批量LOD功能自动化批量展UV功能自动化批量减面功能自动化批量修改查找替换材质功能批量重命名工具碰撞器修改工具资源整理工具支持4.26 - 5.3版本https://mbd.pub/o/bread/mbd-ZZubkp…

ControlNet作者新作LayerDiffusion,让SD直接生成生成透明图像,堪比商用抠图软件

ControlNet作者又出新工作&#xff0c;这次的工作LayerDiffusion它使得大规模预训练的Stable Diffusion能够生成透明图像。该方法允许生成单个透明图像或多个透明图层&#xff0c;效果堪比商业产品Adobe Stock。而且LayerDiffusion和ControlNet一样支持基于SD微调的模型。 &quo…

Flutter的线程模型

在Flutter框架中&#xff0c;Embedder层负责把Flutter嵌入到各个平台上去&#xff0c;其所做的主要工作包括线程设置、渲染Surface设置&#xff0c;以及插件等。因此&#xff0c; Embedder负责线程的创建和管理&#xff0c;并且提供Task Runner给Engine使用。Engine则是负责提供…

钉钉h5应用 环境报错Error: Do not support the current environment:notInDingTalk

钉钉h5应用 环境报错 Error: Do not support the current environment&#xff1a;notInDingTalk problem Error: Do not support the current environment&#xff1a;notInDingTalk reason 前端页面运行在普通浏览器 solution 需要将h5页面在后台发布后&#xff0c;在钉…

Java中的日期时间类详解(建议收藏)!!!

Java中的日期时间类详解 1. LocalDate、LocalTime和LocalDateTime2. DateTimeFormatter3. 日期时间计算和比较4. **时区和日历**&#xff1a; 总结 本文详细解释了Java提供了 java.time 包来处理日期和时间的方式。 1. LocalDate、LocalTime和LocalDateTime LocalDate &#…

【HarmonyOS】鸿蒙开发之Stage模型-UIAbility的启动模式——第4.4章

UIAbi lity的启动模式简介 一共有四种:singleton,standard,specified,multion。在项目目录的:src/main/module.json5。默认开启模式为singleton(单例模式)。如下图 singleton&#xff08;单实例模式&#xff09;启动模式 每个UIAbility只存在唯一实例。任务列表中只会存在一…

【EI会议征稿通知】第四届控制与智能机器人国际学术会议(ICCIR 2024)

第四届控制与智能机器人国际学术会议&#xff08;ICCIR 2024&#xff09; 2024 4th International Conference on Control and Intelligent Robotics 第四届控制与智能机器人国际学术会议&#xff08;ICCIR 2024&#xff09;由华南理工大学自动化科学与工程学院主办&#xff…

【Android移动开发】helloworld项目文件剖析

本文讨论了一个Android应用的Gradle项目的各个方面。涵盖了Gradle的启动脚本&#xff0c;项目的配置文件&#xff08;如build.gradle和gradle.properties&#xff09;&#xff0c;以及应用的源代码和资源文件。具体内容包括了项目结构、Gradle插件的配置、AndroidManifest.xml文…

SSM框架,SpringMVC框架的学习(上)

SpringMVC介绍 Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#xff0c;但它通常被称为“Spring MVC”。 SpringMVC涉及组件 …

复合式统计图绘制方法(3)

复合式统计图绘制方法&#xff08;3&#xff09; 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图环形图绘制较难。 在统计图的应用方面&#xff0c;有时候有两个关联的统计学的样本值要用统计图来表达&#xff0…

Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录 往期精彩内容&#xff1a; 前言 1 数据集和特征提取 1.1 数据集导入 1.2 扰动信号特征提取 2超强模型XGBoost——原理介绍 2.1 原理介绍 2.2 特征数据集制作 3 模型评估和对比 3.1 随机森林分类模型 3.2 支持向量机SVM分类模型 3.3 XGBoost分类模型 代码、数据…