WebGL应用实时云渲染改造后如何与网页端实现数据通信

WebGL是一种基于OpenGL ES 2.0的Web技术,属于BS架构,它允许在浏览器中渲染交互式3D和2D图形。

随着大场景高精度的开发要求深入,对于较高级的 WebGL 应用程序,需要性能更强的系统要求,如仍然维持低端硬件或浏览器,会导致 WebGL 性能下降或无法正常运行;使用复杂的 3D 模型或大型 360° 图像可能会导致性能不佳或阻止在移动设备上加载空间。

如何解决WebGL性能局限性的问题,可以借鉴3D实时云渲染的技术路线,即将WebGL的BS架构,再包一层壳,实现真正解放算力的BS化。

WebGL技术与实时云渲染技术对比

同为BS架构的呈现效果,实时云渲染与WebGL的不同之处在于:

  1. 实时云渲染是将计算渲染在服务端完成,将交互视频流推送到客户端,不再占用客户端算力,只要能观看高清视频的设备就可以进行实时交互操作;WebGL则需要依托客户端的硬件设备,有比较高的配置要求,无法做到强兼容各个时期的电脑设备

  2. 实时云渲染自带各类操作系统/终端设备的自适应,可将一套Windows/Linux系统程序在各类操作系统(含国产信创/手机移动端OS等)上直接运行;WebGL对浏览器有架构要求,比如Safari会受到影响而不能完全使用

  3. 实时云渲染的可拓展性极强,对于数字孪生行业,老场景低精度用WebGL,大场景高精度用UE/Unity等三维引擎是行业普遍认知,云渲染可以兼容各类操作系统,如Linux/Windows/iOS/Android/MacOS/Ubuntu/国产银河麒麟/国产统信UOS/深度DeeplnOS等,也可以支持各类主流设备,如服务器/工作站/笔记本/平板/手机/互动大屏/全息投影/VR/AR/MR等各类终端,其中VR支持市面上所有主流VR一体机眼镜,包括Meta/Apple Vision Pro/PICO/HTC/Xreal/NOLO/Xvisio/奇遇/HUAWEI/玩出梦想,为拓展项目生命周期和项目建设规模提供了极大的技术支持。而这些是WebGL技术不具备的。

  4. 实时云渲染性能更佳,支持一卡多并发和多卡集群部署大并发:每个GPU默认可以支持多路并发,多GPU的场景下,单GPU可支持更多并发。不占用客户端算力,灵活动态调节。

实时云渲染赋能WebGL应用无需加载、秒级打开

经过实时云渲染后生成的新URL网页链接,如何与可视化业务系统进行对接?可以使用“数据通道”功能组件来实现这一效果。

WebGL应用集成数据通道功能组件

1. 初始化数据通道

在WebGL页面加载完成后,需要初始化数据通道。此函数会调用 window.larkxr_dc_init() 方法,完成数据通道的初始化。

2. 接收文本数据

当用户端页面发送文本数据时,页面会调用 onDcTxtData 函数。此函数会将接收到的文本数据显示在WebGL页面上的指定 div 元素中。

3. 接收TaskId

当数据通道连通,WebGL页面会调用 onTaskStatus 函数。此函数会接收到TaskId参数。

4. 发送消息到用户端页面

WebGL页面上有一个按钮,点击该按钮会调用 larkxr_dc_send 函数,将消息发送到用户端页面。

页面结构:以下是页面的WebGL HTML 结构 Demo:

  <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LarkXR Data Channel Example</title><style>.fixed-size-div {width: 100px;height: 100px;background-color: lightblue;display: flex;justify-content: center;align-items: center;font-size: 14px;}</style></head><body><h1>LarkXR Data Channel Example</h1><button onclick="larkxr_dc_send('Hello from WebGL page!')">发送消息"Hello from WebGL page!"到用户端页面</button><div class="fixed-size-div">This is the target div,接收用户端页面发送的数据:<span id="targetDiv"></span></div><script>// 初始化数据通道function larkxr_init() {console.log("Data Channel Initialized");window.larkxr_dc_init();}// 接收用户端页面发送的文本数据function onDcTxtData(data) {console.log("Received text data from user end:", data);// 获取目标 div 元素const targetDiv = document.getElementById('targetDiv');// 将参数值赋值给 div 的 innerTexttargetDiv.innerText = data;}// 接收当前的taskIdfunction onTaskStatus(taskId) {console.log("Received task status with taskId:", taskId);}// 页面加载完成后调用初始化函数window.onload = function () {larkxr_init();};</script></body></html>

客户端集成WebSDK实现与服务端的双向通信

1. 下载源码

从[GitHub - ParaverseTechnology/lark\_sr\_websdk\_demos 下载 WebSDK 源码。此项目提供了如何使用 LarkSR WebSDK 创建云渲染客户端的简单介绍。

2. 参考手册

详细操作请参考 [LarkSR WebClient SDK 文档]。文档中包含了如何安装、使用 SDK 以及如何实现数据通道的具体步骤。

本文已发布于官网:https://www.pingxingyun.com/

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

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

相关文章

初始化列表,变量存储区域和友元变量

前言初始化列表是书写构造函数的一种方式&#xff0c;某些成员变量之只能通过初始化列表进行初始化。另外学习c不可避免地需要知道什么样的变量存储在什么区域当中如栈&#xff0c;堆&#xff0c;静态区&#xff0c;常量区初始化列表书写格式书写上&#xff0c;初始化列表&…

excel插入复选框 亲测有效

特别说明 1.开始位置是0 2.\u0052是勾选对号 3.\u25A1是不勾选 4.\u0052长度是1 5.\u25A1长度是1 6.汉字长度是1 7.起止位置不能超过索引位置(比如整体长度是6,截止位置最大填写5) 示例代码 package com.zycfc.xz.Util.excel;import org.apache.poi.hssf.usermodel.HSSFRichT…

Mac上优雅简单地使用Git:从入门到高效工作流

Mac上优雅简单地使用Git&#xff1a;从入门到高效工作流 本文将带你解锁在Mac上优雅使用Git的技巧&#xff0c;结合命令行与图形工具&#xff0c;让版本控制变得轻松高效&#xff01; 一、为什么Mac是Git的最佳搭档&#xff1f; 天生支持Unix命令&#xff1a;Git基于Linux开发…

一文了解SOA的纹波

什么是光谱纹波我们在SOA/RSOA/SLD的ASE&#xff08;放大的自发辐射&#xff09;光谱测试中&#xff0c;经常会观察到光谱中有周期性的变化&#xff0c;通常我们称之为纹波。在实际应用中&#xff0c;我们大多不希望这些纹波的存在。添加图片注释&#xff0c;不超过 140 字&…

ossutil 使用方法

目录 ossutil 使用方法 1. &#x1f4e4; 上传文件/文件夹到 OSS 上传单个文件&#xff1a; 上传整个文件夹&#xff08;递归&#xff09;&#xff1a; 2. &#x1f4e5; 从 OSS 下载文件/文件夹 下载单个文件&#xff1a; 下载整个文件夹&#xff1a; ossutil 使用方法…

从“多、老、旧”到“4i焕新”:品牌官方商城(小程序/官网/APP···)的范式跃迁与增长再想象

全新升级版本「佛罗伦萨小镇奥莱GO」商城正式上线&#xff01;会员福利加码 2025年&#xff0c;品牌官方商城应该如何定义&#xff1f;—— 还是一套“电商货架”&#xff1f; 在商派看来&#xff0c;现如今“品牌官方商城”则需要重新定义&#xff0c;结合不同品牌企业的业务…

WIN QT libsndfile库编译及使用

一、概述 libsndfile库是一个用 C 语言编写的开源库&#xff0c;用于读取和写入多种音频文件格式。 环境&#xff1a;QT5.9.9、cmakegui3.23.0、QT的编译器是minWG32 二、安装 1、下载libsndfile源码&#xff0c;连接&#xff1a;https://github.com/libsndfile/libsndfile…

Supergateway教程

Supergateway 是一款专为 MCP&#xff08;Model Context Protocol&#xff09;服务器设计的远程调试与集成工具&#xff0c;通过 SSE&#xff08;Server-Sent Events&#xff09;或 WebSocket&#xff08;WS&#xff09;协议实现基于 stdio 的服务器与客户端的高效通信。 Super…

203.移除链表元素 707.设计链表 206.反转链表

203.移除链表元素 Python链表节点定义&#xff1a; class ListNode:def __init__(self, val, nextNone):self.val valself.next next 性能分析 链表的特性和数组的特性进行一个对比&#xff0c;如图所示&#xff1a; 203. 移除链表元素 这道题就是给大家一个链表&#x…

人工智能之数学基础:利用全概率公式如何将复杂事件转为简单事件

本文重点 全概率公式是概率论中的核心工具,用于计算复杂事件的概率。其核心思想是将复杂事件分解为若干互斥且穷尽的简单事件,通过计算各简单事件的概率及其条件概率,最终求得目标事件的概率。 全概率公式 全概率公式就是将复杂事件简单化,定义如下: 如果随机事件A1,…

飞算JavaAI深度解析:从入门到对比

目录 一、飞算JavaAI是什么 二、如何注册和开始使用 三、使用体验&#xff1a;它能带来什么 四、与其他大模型的对比分析 五、总结与展望 随着人工智能技术的飞速发展&#xff0c;大模型在软件开发领域的应用越来越广泛。其中&#xff0c;代码生成工具作为提升开发效率的利…

Flutter各大主流状态管理框架技术选型分析及具体使用步骤

技术选型决策树 #mermaid-svg-m5gUL7Cpx4rYV2BQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-m5gUL7Cpx4rYV2BQ .error-icon{fill:#552222;}#mermaid-svg-m5gUL7Cpx4rYV2BQ .error-text{fill:#552222;stroke:#552…

Redis类型之String

1.Redis中的string注意本文以及之后讲的redis的类型但是指的value的类型&#xff0c;所有的key都是stringRedis中的字符串&#xff0c;直接就是按照二进制数据的方式存储的&#xff0c;不会做任何的编码转换&#xff0c;这里相对于mysql就比较好&#xff08;个人感觉&#xff0…

[激光原理与应用-156]:光学器件 - 激光器为什么会出现多余的能量,哪些地方会出现多余能量?

在激光器运行过程中&#xff0c;多余能量的出现是不可避免的物理现象&#xff0c;其根源在于能量转换与传输过程中的非理想特性。以下从能量来源、产生位置及具体机制三方面进行详细说明&#xff1a;一、多余能量的主要来源泵浦源效率限制泵浦源&#xff08;如激光二极管、闪光…

Arxiv-Daily

Daily Paper Report - 2025-07-24 12:53 Today’s Recommended Papers 1. Multi-modal Multi-task Pre-training for Improved Point Cloud Understanding Authors: Liwen Liu, Weidong Yang, Lipeng Ma, Ben Fei Deep-Dive Summary: 多模态多任务预训练以改善点云理解 预…

如何对云环境或者超融合系统进行性能测试?

最近几个月&#xff0c;公司开启了新的产品计划&#xff0c;准备来做一个国产超融合一体机&#xff08;其实个人觉得现在入行已经晚了太多了&#xff0c;市场基本没有多少了&#xff09; POC功能测试过完&#xff0c;但是感觉不到什么优势&#xff0c;由于芯片架构采用的是arm架…

【web自动化测试】实战

web自动化测试就是对界面的测试1、编写测试用例2、参考测试用例&#xff0c;创建自动化测试项目&#xff0c;编写自动化测试脚本论坛登录页&#xff1a;ForumLoginTest.py论坛首页&#xff1a;ForumListTest.py论坛详情页&#xff1a;ForumDetailTest.py论坛编辑页&#xff1a;…

在Maxscript中随机化对象变换、颜色和材质

只需几行Maxscript,即可为3ds Max场景带来更多活力和变化! 在本文中,您将学习如何快速随机化选定对象的位置、旋转、线颜色和材质。 非常适合在ArchViz、动态图形和产品可视化项目中创建更自然、更少机械的布局。 为什么要使用随机化脚本? 1.快速为场景添加自然随机性 2.…

分类数据集 - 交通事故场景分类数据集下载

数据集介绍&#xff1a;交通事故场景分类数据集&#xff0c;真实交通场景高质量图片数据&#xff1b;适用实际项目应用&#xff1a;公共场所监控场景下是否发生交通事故检测项目&#xff0c;以及作为监控场景通用交通检测数据集场景数据的补充&#xff1b;数据集类别&#xff1…

内网公网详解,及无公网IP内网穿透给外网直接远程连接访问的具体实现方法步骤

一、什么是内网、外网1、内网IP&#xff08;局域网IP&#xff09;是指在私有网络或局域网内部使用的IP地址&#xff0c;无法直接从互联网访问&#xff0c;需通过NAT&#xff08;网络地址转换&#xff09;技术实现对外通信。内网IP&#xff08;Intranet IP&#xff09;是专为局域…