UE5像素流局域网本地部署(Windows服务器,单实例)

1.UE5像素流程序打包

(1)新建一个ue5的项目(名字不能是test否则打包会出错)。

(2)在“编辑-插件”中找到Pixel Streaming插件,点击勾选后自动提示重启ue以安装插件。

(3)在编辑器偏好设置里修改相关参数

(4)执行打包操作(注意打包路径不能有中文!!!)

2、像素流部署操作

(1)找到打包的项目

(2)创建YunW.exe的快捷方式,并在属性中添加相关的运行参数。

 如:-PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 

(3)进入信令服务器文件夹

1)  双击运行信令服务器文件夹的\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd目录下的setup.bat文件

2)等待自动下载安装好所需的文件,下载完后就会出现coturnnode两个文件夹

检查两个文件夹里的文件,确认下载完全,否则后续会报错

coturn:

node:

3)对信令文件进行配置

打开config.json文件,修改为自己服务器的IP(由于我们这里是本地局域网部署,这一步骤可以省略或者可以改为127.0.0.1)

(4)启动信令服务器,这里有两种启动方式(尝试过的都可以的方法)

a. 运行 \Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd下的run_local.bat脚本,可以开启信令服务器

出现以下界面说明启动成功

b. 运行 \Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd 下的Start_WithTURN_SignallingServer.ps1也可以开启信令服务器。(右键单击选择PowerShell运行)

出现以下界面说明启动成功

(5)启动项目。(提供三种方式)

a. 双击刚刚创建的YunW.exe的快捷方式直接启动。

b. 在项目所在位置用命令行启动,在cmd中输入以下命令:

项目名.exe -AudioMixer -PixelStreamingIP=服务器IP -PixelStreamingPort=8888

c. 创建启动脚本start.bat,双击启动。脚本代码:

@echo off
start E:\Yun\Windows\YunW.exe -AudioMixer -PixelStreamingIP=服务器IP -PixelStreamingPort=8888 -log -RenderOffScreen

前面的路径以自己项目的为准。

如果成功启动了UE的像素流,在信令服务器命令行出现如下命令提示行,代表连接成功:

(6)访问像素流:在浏览器地址栏中输入地址 http://服务器IP:信令端口(HttpPort端口,默认是80,如果需要修改在config.json文件中修改

至此,本地局域网部署像素流成功!

ps:1、windows云服务器(有GPU)公网部署单实例与此方法相同,ip换为公网服务器ip即可。 

       2、windows云服务器(无GPU)项目只能在本机渲染,只需把信令文件夹放到服务器即可,其他步骤是一样的,项目在本机启动。

3、遇到的一些问题:

一开始运行这几个脚本时候都无法成功,一直报错

(1)Node.js环境中的证书问题

报错内容大概如下:

npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/run-script-os failed, reason: certificate has expired

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\86180\AppData\Local\npm-cache\_logs\2024-05-15T03_31_12_660Z-debug.log
node:internal/modules/cjs/loader:930
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- E:\Yun\Windows\Samples\PixelStreaming\WebServers\SignallingWebServer\cirrus.js
[90m    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:927:15)[39m
[90m    at Function.Module._load (node:internal/modules/cjs/loader:772:27)[39m
[90m    at Module.require (node:internal/modules/cjs/loader:999:19)[39m
[90m    at require (node:internal/modules/cjs/helpers:93:18)[39m
    at Object.<anonymous> (E:\Yun\Windows\Samples\PixelStreaming\WebServers\SignallingWebServer\cirrus.js:5:15)
[90m    at Module._compile (node:internal/modules/cjs/loader:1095:14)[39m
[90m    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1124:10)[39m
[90m    at Module.load (node:internal/modules/cjs/loader:975:32)[39m
[90m    at Function.Module._load (node:internal/modules/cjs/loader:816:12)[39m
[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)[39m {
  code: [32m'MODULE_NOT_FOUND'[39m,
  requireStack: [
    [32m'E:\\Yun\\Windows\\Samples\\PixelStreaming\\WebServers\\SignallingWebServer\\cirrus.js'[39m
  ]
}

查阅之后发现是本地计算机上的根证书已过期。这个错误可能是由于操作系统或Node.js环境中的证书问题导致的。

解决方法:清除npm缓存(一般都能解决)

npm cache clean --force

一定不要随便升级npm版本!!!会与node.js版本不匹配导致npm没法用,会出现如下报错

(2)coturn文件夹为空。可能是80等相关端口被占用,打开即可。

(3)其他情况一般都是node文件夹的问题。

网络不好没下载完或者是其他原因导致run_local.bat运行时候报错,可以选择从官网下载node对应版本的压缩包,解压到自己项目的\package\Windows\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd目录下。

官网:Node.js — Node v16.4.2 (Current) (nodejs.org)

解压到cmd文件夹中并重命名为node,删除zip包。

(4)不确定是不是导致报错的问题,但是自己本机的node.js版本最好在18以上(ue5.0.3)

这篇文章是因为自己需要实现这个需求,参考网上其他大佬的文章尝试以后可以成功实现的流程,记录下来方便以后查看,有些地方可能术语描述不准确但是操作是对的。之后如果有遇到其他的问题会再做补充!

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UE5支持多实例像素,这使得从多个场景或渲染出来的图像中进行选择和精确的定位成为了可能。在处理多实例像素时,我们需要进行动态调度,以便快速准确地找到所需的像素并处理。 动态调度涉及到从多个像素中选择目标像素,这需要依据需求的准确度和速度来进行选择。UE5提供了多种动态调度技术,包括最近邻、高斯加权、双三次插值等,使用这些技术可以使得选择过程更为准确,并且可以提高处理速度。 另外,UE5还提供了处理鼠标偏移的功能。鼠标偏移是指在多视角操作时,鼠标的运动与场景中的运动不一致,这会导致观察画面的不便。UE5通过实时计算场景中的物体位置和方向,并将鼠标运动转化为相对于物体的运动,从而实现了处理鼠标偏移的功能。 总的来说,UE5的多实例像素和处理鼠标偏移的功能,使得多视角操作更为方便和精确,在游戏制作和虚拟现实场景中具有重要的应用价值。 ### 回答2: UE5中的多实例像素是一种在GPU上实现的计算模式,它可以同时处理多个像素的计算任务,在某些情况下可以极大地提高渲染效率和性能。 在多实例像素中,像素位置的计算是并行和分离的,每个像素的计算可以独立进行,这就需要一个动态的调度算法来决定每个像素计算的先后顺序,以保证计算结果的正确性和渲染效果的稳定性。 UE5中的动态调度算法是一种基于像素之间依赖关系的优先级排序方法,它可以根据像素之间的依赖关系和计算量大小来动态调整像素的计算顺序,使得计算任务的负载均衡和并行性能得到了很大的提升。 在动态调度算法中,还需要考虑到鼠标的偏移情况,以保证鼠标的交互时不会出现卡顿和延迟等问题。为此,UE5中实现了一种智能调度策略,可以动态地根据鼠标的偏移来调整像素的计算顺序,以保证鼠标的交互响应性能和渲染效果的质量。 总之,UE5中的多实例像素和动态调度算法为游戏开发者提供了一种高效、稳定和灵活的渲染技术,可以极大地提高游戏的性能和游戏体验。 ### 回答3: UE5的多实例像素是一种新的技术,其能够极大地提高游戏的性能和画质。其另一个优势在于可以动态调度和处理鼠标偏移,这意味着当玩家鼠标的位置发生变化时,游戏画面也会动态地进行调整,从而保证玩家游戏体验的畅性和真实性。 在多实例像素中,游戏画面被分成若干个小的“实例“,每个实例都是独立地进行计算和绘制。这样做的好处在于可以并行处理每个实例,从而提高游戏的帧率和画质。不过在进行鼠标偏移的处理时,这种并行计算会带来一些挑战。 具体来说,当玩家移动鼠标时,游戏需要立即对鼠标位置进行响应。如果使用传统的线程方法,游戏需要先处理完整张画面才能响应鼠标的移动,这会导致游戏的响应速度变慢。而在多实例像素中,每个实例都是独立地进行绘制和计算的,因此在处理鼠标偏移时,游戏可以先对当前实例进行特殊处理,从而迅速响应玩家鼠标的移动。 具体而言,当玩家移动鼠标时,游戏首先会检测当前的鼠标位置,并确定鼠标所在的实例。如果鼠标移动范围只涉及到一个实例,那么游戏会直接对该实例进行特殊处理,从而迅速响应玩家鼠标的移动。如果鼠标移动范围涉及到多个实例,游戏则需要动态调度这些实例的绘制,保证画面的一致性和畅性。 总之,UE5的多实例像素可以动态地调度和处理鼠标偏移,从而提高游戏的响应速度和畅度。这不仅可以增强玩家的游戏体验,还可以促进游戏产业的发展和进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值