当前位置: 首页 > web >正文

实时云渲染解决UE像素流送无法进行二次开发的问题

UE的像素流送(Pixel Streaming)作为一种强绑定UE引擎的功能插件,是UE开发者们首先接触到的云化方案,可以实现点对点的低频次推流演示,但当项目需要产品化落地的时候,会存在诸多限制,尤其是对于程序、系统、前端等深度定制,有很多难以突破的瓶颈,门槛极高。这也促使了很多开发者转而选择行业中成熟、稳定的商业化实时云渲染产品,在之前的讨论中已经剖析过,像素流送与实时云渲染二者从技术架构、推流能力、集群并发能力、产品迭代与优化,以及程序兼容性等多个指标进行了对比。

本文主要介绍LarkXR实时云渲染平台,为UE数字孪生提供的产品化、平台化功能模块,以及必备的二次开发能力。

集群部署满足大并发需求

1. 集群版

LarkXR实时云渲染平台本身具有一卡多并发和渲染集群支持大并发的产品架构,适合于高可用场景。通过组建多机渲染集群,确保平台的渲染效率与性能最佳,直接下载“LarkXR集群版”安装部署:https://www.pingxingyun.com/devCenter.html 

以“简易集群”部署为例:

为了部署简易集群版最小容量(https://docs.pingxingyun.com/doc/599/ ),需要准备两台服务器:

  • 一台服务器可以是非GPU节点,支持Windows、Linux Docker,部署 larkxr-center-×× 程序包。如果您选择Linux作为管理节点,您需要自行安装基础环境。
  • 另一台服务器是GPU节点,支持Windows和Ubuntu,您需要部署 larkxr-render-×× 程序包。一旦您完成了单机版或简易集群版最小容量的部署,如果您想要实现动态扩容,您可以直接使用 larkxr-render-×× 程序包来动态扩展部署GPU节点。

2. 资源监控

资源监控是LarkXR的核心功能之一,集成了产品云、网、端和PaaS平台的功能属性,对于商业化、落地型的项目具有极高的性价比和极强的适用性,尤其对于云资源的使用和分配,做到了量化监控。

部署成功后,登录管理后台(使用浏览器访问http://{{主节点服务器IP}}:8182 ,初始用户名/密码为:admin/123456),可以看到GPU Server资源概览,有多个GPU节点的渲染集群,同时可以监控到各种异常运行情况,并可以使用平台自带的“远程控制”功能,来监控服务器使用情况。当遇到渲染节点异常时,可以采取冻结/重启等服务操作。

3. 客户端异常监控

大并发时兼容各类访问终端,存在不同的终端设备、网络环境、应用类型等使用现状,可能出现客户端无法正常访问的情况。通过“客户端异常监控”功能,在不侵入最终使用场景的前提下,通过管理后台来定位/远程云渲染服务器,快速恢复云渲染服务。默认筛选出近24小时的客户端异常上报数据,可以查看到客户端来源ip,应用名称,分配的服务器IP,报错信息以及出错时间。点击“远程控制”按钮可以连到渲染服务器上查看日志等操作。

PaaS平台管理功能

1. 丰富的数据统计功能

默认自带使用次、使用时长、地域信息等总统计维度,以及按照应用进行详情筛选,方便查看平台的实时运行情况。也可以将这些统计信息集成到已有业务系统中。

2. 应用/终端/组别管理

应用管理:在应用一览页面,显示应用ID、应用名称、最大客户端并发数、应用类型、上架状态和操作信息。可对应用进行“编辑/上架/分享/触屏键鼠映射”等操作。

组别管理:渲染节点可以通过分组管理进行管理。选择应用所属组别,在进入应用的时候系统会智能地公平调度到同一组别下的渲染节点上。

终端管理:管理正在运行的3D应用终端,其中终端ID/名称对应任务ID。用户可以单独或批量停止终端上运行的应用,并且可以按照终端ID和终端IP进行筛选。

兼容各类型程序应用

LarkXR支持所有主流的可视化程序,包括传统纯三维、二三维混合、WebGL、自研引擎、多进程跨用户访问等类型的应用,提供了3D共享、2D普通共享和WebGL应用等多种云渲染方案。解决新老业务系统对接问题,平稳过渡。

1. 3D共享模式

此类型限制应用是纯三维仿真程序,并且一台服务器可以同时运行多个这样的应用。支持的引擎包括:Unreal、Unity3D、DirectX9、DirectX10、DirectX11、DirectX12、OpenGL、Enscape等。以Unity程序为例,打包时不要勾选“Exclusive Fullscreen”,以窗口最大化方式启动。

对于由Unreal引擎开发的应用,在上传应用时指定的路径正确的目录应为同级目录下->工程名相同目录->Binaries->Win64->xxx.exe 。若有启动参数,请添加到后台的启动参数文本框中。(UE程序实时云渲染的具体使用问题请见:
https://www.pingxingyun.com/contribute/detail?topicId=10107&categoryId=3 )

2. 普通共享模式

这种模式适用于既有2D又有3D元素的应用程序,主要解决带有2D元素的应用程序的多开需求。该模式支持预启动功能、音频输出、数据通道、互动模式,不支持客户端调整分辨率、麦克风、摄像头等设备透传。

2D应用共享模式实现效果:

1. 每个GPU默认可以支持5路并发,多GPU的场景下,单GPU可支持更多并发。
2. 渲染帧率稍低于60帧。

3. WebGL 2D共享方案

直接在添加程序包时选择WEBGL程序,填写WEBGL地址。

提升大场景易用性

1. 大程序预启动

针对大场景本地启动慢的UE数字孪生程序,LarkXR提供“预启动应用”的功能模块,可以让应用提前加载,使客户端访问时无需等待,即点即用。

有两种方式可以添加预启动信息,在应用数据栏点击“更多”->“设置预启动”,可以直接打开“设置预启动”页面,添加该应用的预启动数据。也可以在预启动一览界面,点击“添加”按钮即可设置预启动的应用,选择要预启动的应用。选择启动应用的渲染服务器、预启动的数量,设定应用启动的码率帧率。开启自动调整功能后,可以设置应用启动的最大值和最小值,以及最小的空闲数和最大的空闲数量,还可以设定犹豫时间

2. 鸟瞰模式

针对大分辨率程序,开启后显示鸟瞰图,可对局部进行放大操作,便于操作。关闭时恢复原始视频推流,隐藏时隐藏鸟瞰缩略图。点击进入URL链接,打开前端页面-设置按钮-页面选项中,开启鸟瞰模式。

多终端自适应

1. 多浏览器支持

LarkXR实时云渲染平台支持超过10种主流浏览器:

2. 自带移动端适配

移动端访问URL链接,进行自动适配。默认支持摇杆和手势操作,也可以在页面上设置开启模拟键鼠操作。

默认摇杆设置:在添加应用时,可以在“移动端高级设置”中选择“是否初始显示虚拟摇杆”。若选择“是”,打开应用时将默认显示遥杆;若选择“否”,则应用默认不显示遥杆。此外,通过点击顶部的平行云logo,在弹出的按钮选择中切换手柄圆盘的显示与隐藏。如下图所示:左侧的圆盘代表键盘上的A、W、S、D键。可开启自定义设置。

移动端触摸指令:应用的移动端触摸指令模式可选择鼠标模式或触屏模式,如下图所示:

鼠标模式

  • 单指操作:对应鼠标左键
  • 双指滑动:对应鼠标右键按下并滑动
  • 双指缩放:对应鼠标滚轮操作
  • 三指滑动:对应鼠标中键按下并滑动

触屏模式:直接传递触屏事件给应用,适用于需要响应触摸事件的应用。

混合模式:同时传递鼠标事件和触屏事件。

3. 支持VR/AR等MR终端

LarkVR目前支持Unity3D、Unreal、Unigine开发的基于SteamVR的应用,以及基于OpenXR的应用。

VR(SteamVR共享):常用的基于SteamVR开发的共享型VR应用,无需Steam平台账号登录即可使用

VR(SteamVR独占):适用于基于SteamVR开发的独占型VR应用,需登录Steam平台账号,每台机器只能同时运行一个应用。该功能在 V3.3.3.0 版本中默认已禁用。如需启用,请在
larkxr-center/application.properties 文件中添加以下配置项:

pxy.dispatch-policy.enable-exclude-mode=true

VR(OpenXR):基于OpenXR开发的VR应用。必须勾选以VR启动选项,否则无法正常使用。

更多功能可以访问开发者社区深入了解:
https://www.pingxingyun.com/community/classify

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

http://www.xdnf.cn/news/12273.html

相关文章:

  • spring注解之配置注解
  • 《图解技术体系》How Redis Architecture Evolves?
  • 【科研绘图系列】R语言绘制和弦图(Chord diagram plot)
  • 大模型数据流处理实战:Vue+NDJSON的Markdown安全渲染架构
  • 高防服务器能够抵御哪些网络攻击呢?
  • 宠物空气净化器哪个好用?2025宠物空气净化器测评:352、希喂、有哈
  • 智慧园区数字孪生全链交付方案:降本增效30%,多案例实践驱动全周期交付
  • 基于正点原子阿波罗F429开发板的LWIP应用(5)——TFTP在线升级功能
  • Spring之事务管理方式
  • Go中的协程并发和并发panic处理
  • GitHub 趋势日报 (2025年06月04日)
  • Linux --环境变量,虚拟地址空间
  • 强化学习在LLM中应用:RLHF、DPO
  • 网络通信核心概念全解析:从IP地址到TCP/UDP实战
  • 面试题:Java多线程并发
  • JAVA之 Lambda
  • chrome使用手机调试触屏web
  • Nginx学习笔记
  • 【Go语言基础【2】】数据类型之基础数据类型:数字、字符、布尔、枚举、自定义
  • Unity3D中Newtonsoft.Json序列化优化策略
  • [蓝桥杯]倍数问题
  • 倍福 PLC程序解读
  • kubectl 命令
  • docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(2)
  • 游戏设计模式 - 子类沙箱
  • 计算机网络备忘录
  • SDC命令详解:使用set_fanout_load命令进行约束
  • AI Agent 项目 SUNA 部署环境搭建 - 基于 MSYS2 的 Poetry+Python3.11 虚拟环境
  • 鸿蒙jsonToArkTS_工具exe版本来了
  • 上门服务小程序会员系统框架设计