Unity Render Streaming,3D模型流式云渲染的解决方案
Unity Render Streaming是Unity开源的一个高质量、高复杂的3D模型在云端渲染,手机端侧、浏览器显示的解决方案。此解决方案的流技术利用了WebRTC,开发人员甚至可以使用WebRTC包创建自己独特的解决方案。
WebRTC的安装使用我们在此前的博客中说过了,大家可以看我之前的博客查看怎样安装。
好,现在我们开始搭建一个Unity Render Streaming来看看demo的运行。
一、Unity Render Streaming安装部署以及案例的运行
1、首先创建一个工程,在Package Manager 的Advanced中首选勾选上Show preview packages,否则你查询不到Unity Render Streaming。
2、安装Unity Render Streaming,我们安装最新版本3.0.1-preview.1。
3、安装完成之后,我们导入Examples,还是在Unity Render Streaming的安装界面,在右下角点击Import into Project,就可以把Example导入Assets中了。我们就可以跑案例了。
4、接下来我们都知道webrtc client之间需要有个signal server,才能进行连接通信。Unity Render Streaming自己提供了一个web app的服务,能够作为signal server。首先我们可以在github上下载代码。地址: https://github.com/Unity-Technologies/UnityRenderStreaming
5、下载完成之后,运行webapp需要安装npm与nodejs,请自行安装。我们进入WebApp目录,我们点击run.bat进行运行。Webserver默认的监听端口为80,如果你想修改端口,可以打开package.json,修改"start": "node ./build/index.js", 为"start": "node ./build/index.js --port 9000 -w"。点击run.bat就可以运行了。
运行结果如下:
6、webapp运行之后,我们可以继续运行Unity Render Streaming的例子了。点击WebBrowserInput场景,点击Render Streaming组件,修改Signaling URL: ws://127.0.0.1:9000,并运行之。
7、我们在浏览器中输入在webapp设置的IP 与端口,比如127.0.0.1:9000。
8、点击VideoPlayer Sample,然后运行就可以查看到Unity中渲染的场景了。
当前已经完成了Unity Render Streaming案例的运行,大家就可以行动起来,搭建自己的3D远程渲染服务了。
二、Unity Render Streaming android版本支持
由于Unity Render Streaming还不支持在Android手机版本,会在3.1版本支持,如果大家不着急可以等待官方发布3.1版本支持Android手机。但是,我是比较着急的,就自己尝试修改了Unity Render Streaming代码,来支持android手机上的运行。
1、重新创建一个项目,然后我们找到上个项目中的Unity Render Streaming包的缓存找到,一般都是在项目工程目录的Libray/PackageCache中,我们com.unity.renderstreaming@3.0.1-preview目录拷贝到新的工程的Pakcage目录中。
2、进入com.unity.renderstreaming@3.0.1-preview目录,我们修改package.json文件,把依赖的com.unity.webrtc版本提高到2.4.0-exp.1版本,支持android的版本。
3、修改兼容性代码,首先修改Runtime\Scripts\RenderStreamingInternal.cs文件的第350行,修改函数SendOfferCoroutine,这主要修改的是设置只接收流的方式改变,之前使用RTCOfferOptions option = new RTCOfferOptions { offerToReceiveAudio = true, offerToReceiveVideo = true };来进行设置,新的webrtc版本不支持这种设置方式,修改为
RTCRtpTransceiver transceiver = pc.AddTransceiver(TrackKind.Video);
transceiver.Direction = RTCRtpTransceiverDirection.RecvOnly;
修改第447行RTCAnswerOptions改为RTCOfferAnswerOptions。
其他的地方都是修改RTCAnswerOptions改为RTCOfferAnswerOptions。
4、我们知道webrtc只支持ARM64。所以需要进行配置,Build Settings->Android->Player Settings->Player->Other Settings,找到Scripting Backend,把Mono更改为IL2CPP, 把ARM64勾选上。然后在编译到android手机上,就可以正常运行了。当然在配置之前,先Switch Platform一下,否则你无法配置。
最后
一个高质量、高复杂、无法在各种端侧渲染的3D模型,我们可以使用Unity Render Streaming在云端渲染,端侧呈现的解决方案。为以后VR/AR端边云协同渲染提供了一个解决方案,有值得研究的价值。
Unity Render Streaming,3D模型流式云渲染的解决方案相关推荐
- Unity Render Streaming(亲测可用)
1.简介 Unity渲染流包含构建在Unity Render Streaming之上的公共 API 和项目示例.可以使用Unity Render Streaming包快速开发一个点对点的流媒体解决方案 ...
- Unity Render Streaming使用方法,WebRTC的基础搭建使用
1.简介 Unity渲染流包含构建在Unity Render Streaming之上的公共 API 和项目示例.可以使用Unity Render Streaming包快速开发一个点对点的流媒体解决方案 ...
- Unity Render Streaming 云渲染解决方案
Render Streaming是Unity官方推出的一套云渲染解决方案,可以实现将我们打包的.exe程序运行于服务器云端,在浏览器.移动端进行显示,该解决方案基于Google开发的WebRTC流技术 ...
- Unity Render Streaming 云渲染
版本: Unity:2021.3.16f1 Unity Render Streaming:3.1.0-exp.5 (目前 .6 好像有些问题,我只好降到 .5 了) 创建项目 先搞这几个版本或者 ...
- Unity Render Streaming 云渲染企业项目解决方案
Unity Render Streaming 文章目录 Unity Render Streaming 前言 效果展示 打开场景 版本选择 Web服务器 1.Server下载,Node.js安装 2.S ...
- Unity开源的webrtc库,为流式远程渲染提供视频流传输方案
最近的项目中,可能会用webrtc跟Unity的结合,那就先研究一下webrtc怎样玩呗.那就找找看看有没有开源的的项目可以进行借鉴. 幸得Unity官方自己出了一个Unity结合Webrtc的开源项 ...
- 阿里云发布首个流式存储与播放解决方案
本文讲的是阿里云发布首个流式存储与播放解决方案[IT168资讯]9月11日,首个面向视频监控行业的流式存储与播放一体化方案在阿里云官网上线.借助这份技术方案,摄像头接入云端的时间将从一两个月缩短到一周 ...
- Unity加载倾斜摄影模型/激光点云,开源
[重大更新]现已支持WebGL 业余时间尝试了下用Unity加载倾斜摄影模型/激光点云,目前支持Bentley ContextCapture生成的3MX格式 源码见 https://github.co ...
- Unity Render Streaming
使用版本Unity2019 4.28 Unity Render Streaming文档 PackageManager中 选择高级Advanced 显示预览包 搜索:Unity Render Strea ...
最新文章
- C#委托、事件学习之(二)——简单按钮委托事件
- 各种模板(数据结构图论)
- Tomcat(四):发布和优化
- 关于caffe-ssd训练时smooth_L1到底参与运算与否的问题
- jumpserver开源堡垒机部署安装
- GPS定位,经纬度附近地点查询–C#实现方法
- spring学习笔记一(基于xml)
- android 如何启动nfc卡模拟模式_用手机模拟小区业主卡,出入更加便捷,免去带卡的烦恼,(限安卓)...
- C# 标准ASCII 码表
- UI设计和原型设计的区别
- Hugging Face:成为机器学习界的“GitHub”
- poco linux,centos7.2 安装poco
- 推荐1个易上手代码开源的好用的H5网页编辑工具
- JS_微信公众号开发调用扫码支付功能
- APK瘦身-是时候给App进行减负了
- 使用Python实现QQ窗口抖动
- HTML(进阶核心标签)
- 他整整复习了三个月,金三成功上岸字节,面试题及答案分享
- Mysql基础到进阶精品视频教程附讲义文档 91课
- IOS开发笔记(九)——IM聊天工具个人详情页面,自定义tableview的accessaryView