找回密码
 立即注册
查看: 376|回复: 7

5分钟教你搭建Unity云渲染服务

[复制链接]
发表于 2022-4-30 17:55 | 显示全部楼层 |阅读模式
背景

昨天大佬在群里发了一个关于 Unity 正式发布云渲染服务的链接,突然想起自己早在 19 年底(记得当时还是1.x版本,现在都 3.1.0 了,看来 Unity 对其还是蛮重视的)就在 git 上 fork Unity 的 WebRtc 和 Stream Rendering 项目,但是由于各种杂七杂八的项目琐事,一直没有完整的跑过整个流程,于是今天晚上,忙完手头的事情,决定跑一下整个流程,其实云渲染是一个说了很多年很多年的概念,业内也有很多创业公司在搞,方案也很多,Unity 当前发布的云渲染方案其实就是利用他们的一个开源方案 Render Streaming方案,其实原理就是基于WebRTC,通过建立长连接,实时的传输画面和音频,通过信令进行交互控制,那么接下来就主要讲一下如何在本机部署,然后在 WEB 端操作。


详细内容见官方文档:
Install Render Streaming Package

首先通过 Unity 新建一个 3D 项目,我采用的是 Unity 2019.4.28f1c1,如下:


接下来,通过 Unity 的包管理工具 Package Manager  进行依赖包的安装,如下图打开:


打开后,设置 Advanced 的 Show dependencies 和 Show preview packages 选项(注:如果是 2020 以后的版本其实可以直接在搜索窗口搜索 Unity Render Streaming),如下图:


打开上面的选项后,可在搜索框直接搜索 Unity Render Streaming(注:因为我刚安装了,所以没有 Install 按钮),出现如下界面,可以看到有个 Install 按钮(就在 remove 旁边),点击直接安装即可;


接下来需要安装 Example ,如上操作就行,在如下图位置(应该有个 Import Project 的按钮就在 Import again 整个按钮上):


Unity 上的工作基本上告一段落,接下来我们要在 WEB 端体验云渲染,就需要搭建一个简单的 WEB Server,Unity 很贴心,现在已经提供一个直接可以使用的进程了,记得最早还要自己写,哎!以后这种还是等正式版比较靠谱,真实越来越简单;
Install WEB Server

是真的想骂人呀(之前搞了很久各种编译不过,现在如此简单)!贼简单,如下图:


会下载一个 webserver 的 exe 可执行文件,你可以通过命令行直接运行,如下:


是不是很简单,但是我们可以观察到用的是 websocket,但是在 Unity 侧可以设置各种网络方式(如下图:),WEB Server 是不是可以自己制定,不用急后面我会讲到;


接下来切换到 Unity,选择 WebBrowserInput 场景,信令模式选择 WebSocket,URL 设置成 ws://localhost,点击 Run,如下图:


在本地打开浏览器并访问 http://127.0.0.1/ ,也可以邀请同事(在一个域内)通过你的 IP 地址进行访问,就可以看到如下界面,此后点击 VideoPlayer Sample 可以打开云渲染场景(同时大家可以观察我红框圈的位置有什么差异),如下图:




到此就差不多完成了整个流程,你可以使用 WASD 来操作,也可以通过鼠标来进行操作,同时也可以点击按钮控制灯光和播放声音,相对比较简单(低端机也可以完美体验高端功能了,例如:HDRP),是不是简单,不过到此并未结束,接下来在说下上面提的问题,我们如何搭建自己的服务器,展示端该如何 Coding 呢?
换一个姿势

首先我们看 Unity Render Streaming 的 Package 描述,如下图:


我们可以清晰的发现,它依赖了两个主要的库,一个是 WebRTC,一个是 Input System,在去看项目依赖 Packages,如下图:


那么原理已经比较清晰了,就是在游戏里面截获所有游戏的 Input 操作,再将游戏的音频(PCM Data)和视频数据(RTT 传输纹理 ID)通过 WebRTC 传输出去,那么在 WebRTC Client 之间就需要有个 Signal Server,才能进行连接通信,Unity 在 git 上开源了 UnityRenderStreaming,地址如下:
里面也同时提供了一个 WebApp,如下图:


我们可以单独下载这个 WebApp 到本地,当然请注意版本,请在 Release 处下载,下载到本地后首先打开 package.json 看下项目结构和启动主脚本,如下图:


发现主启动脚本是 index.js,其实是 index.ts(js 是 ts 编译后文件),如下图:


回过头看 index.ts 脚本你会发现是可以通过 args 修改端口,同时也可以修改服务器信令模式,如下图:


接下来可以通过执行 run.bat 脚本即可启动,如下流程和上面官方提供的无异,不在多做介绍,如下图:


回顾

整个过程足够简单,对开发者侵入性也不是很严重,但是目前只是尝试了 Web 端展示,移动端和桌面端如何运转的再此没有做介绍,等后续有时间我会在验证下移动端和桌面端,看着发布的 RoadMap 还是很心动的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-4-30 18:00 | 显示全部楼层
win10运行不了webserver.exe怎么解决呢
发表于 2022-4-30 18:04 | 显示全部楼层
我就是win10可以运行,另外运行不了报什么错了吗?
发表于 2022-4-30 18:14 | 显示全部楼层
点击提示:此应用无法在你的电脑上运行....请问你是怎么运行的呢
发表于 2022-4-30 18:23 | 显示全部楼层
还真有记不得了 应该是命令行
发表于 2022-4-30 18:30 | 显示全部楼层
在webserver.exe文件夹下用cmd执行webserver.exe -w吗
发表于 2022-4-30 18:33 | 显示全部楼层
是的,但是我建议你还是认真读下文章,里面有介绍....[笑哭]
发表于 2022-4-30 18:34 | 显示全部楼层
您好请问只能在3d项目下运行么?通用和高清管线项目我搜索不到那个插件呀
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 16:29 , Processed in 0.099477 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表