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

简介: WebGL应用虽然可以实现BS化的交互浏览,无需安装程序用浏览器即可访问。但是由于其对使用终端具有较高配置要求,想要流畅运行WebGL应用具有一定的门槛。实时云渲染技术可以改造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可支持更多并发。不占用客户端算力,灵活动态调节。

经过实时云渲染后生成的新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 的 innerText
                targetDiv.innerText = data;
            }

            // 接收当前的taskId
            function onTaskStatus(taskId) {
                console.log("Received task status with taskId:", taskId);
            }

            // 页面加载完成后调用初始化函数
            window.onload = function () {
                larkxr_init();
            };
        </script>
    </body>
    </html>
相关文章
|
10月前
|
Web App开发 编解码 数据可视化
实时云渲染解决像素流2更新带来的UE引擎版本适配及云推流插件迁移问题
UE5.5版本发布了新版像素流送插件,即像素流送2的技术栈。老版本插件以及低版本程序升级迁移会带来诸多问题。实时云渲染作为一种成熟的云推流平台,不受限于引擎版本、插件版本,让开发者专注于使用UE引擎开发3D场景,PaaS平台一键推流,与业务系统通过SDK及功能组件等方式无缝衔接。
951 154
|
8月前
|
移动开发 数据可视化 安全
数字孪生云渲染终极指南(一):什么是实时云渲染?
将三维可视化程序上云可以有效解决上述问题。通常可采用WebGL、HTML5、threejs、虚拟化、云桌面,以及云渲染等各类技术方案,实现客户端与服务端的分离,从一定程度上降低客户端硬件配置要求,提高程序兼容性。实时云渲染技术是目前最先进的云化技术之一,也是数字孪生三维可视化场景商业模式破局的关键。
565 155
数字孪生云渲染终极指南(一):什么是实时云渲染?
|
12月前
|
资源调度 运维 图形学
如何实现UE像素流大并发多集群的弹性扩容部署
面对高并发访问与高稳定性需求,例如数字孪生、元宇宙、虚拟仿真课程、3D展览展示、XR文旅、云游戏等场景,同时多人在线的高并发访问,通过实时云渲染LarkXR的分布式GPU节点池,将渲染任务智能拆分,借助统一管理中枢,实现资源调度毫秒级响应,动态扩容 。
515 154
|
11月前
|
缓存 自然语言处理 JavaScript
Github 3k+ star,中后台管理系统框架,支持多款 UI 组件库,兼容PC、移动端!比商业系统还专业!!
Fantastic-admin/basic 是基于 Vue3 与 TypeScript 的中后台管理系统框架,支持多款 UI 组件库,如 Element Plus、Arco Design、Naive-UI 等。它提供完整的项目结构、权限控制、国际化、多级缓存标签页等功能,兼容 PC、平板及移动端,适合快速搭建企业级后台应用。框架具备高度可定制性,拥有 3k+ GitHub Star,生态完善,适合中小团队和个人开发者提升效率。
772 2
|
存储 API 图形学
Unity精华☀️二、到底是什么原因导致“万向锁”?旋转翻车的终极解析!
Unity精华☀️二、到底是什么原因导致“万向锁”?旋转翻车的终极解析!
|
人工智能 开发者
基于LangChain的Prompt模板
LangChain是一个开源库,简化了基于LLM的AI应用开发,充当AI开发的万能适配器,抽象并整合了大语言模型(如OpenAI和文心)的交互。要使用LangChain,首先通过`pip install langchain`安装。示例展示了如何使用LangChain与OpenAI模型交互,包括直接调用OpenAI接口和使用LangChain接口。LangChain的提示词模板功能用于构建Prompt,提高与AI对话的效率。LangChainHub是一个资源库,提供模板、工作流和最佳实践,方便开发者发现和分享。本文介绍了LangChain的基本用法和其生态系统中的LangChainHub。
基于LangChain的Prompt模板
|
消息中间件 Linux
Linux进程间通信(IPC)教程 Linux共享内存介绍:介绍POSIX共享内存的基本概念、用途和编程实践
Linux进程间通信(IPC)教程 Linux共享内存介绍:介绍POSIX共享内存的基本概念、用途和编程实践
584 2
|
程序员 数据库 uml
UML—时序图是什么
UML—时序图是什么
1077 0
|
人工智能 测试技术
Orca LLM:模拟 ChatGPT 的推理过程
Orca 是一个 13B 参数模型,它学习模仿 LFM 的推理过程。它使用ChatGPT的渐进式学习和教师协助来克服能力差距。通过利用来自 GPT-4 的丰富信号,Orca 增强了其功能并提高模仿学习性能。
568 0