unity 实时画面投屏到手机_将Unity实时画面投屏到手机
一直有个想法,如果手机只作为VR显示端,那么用PC来运行VR程序,传输实时画面到手机不就可以了。今天就来实验下,看看方案是否可行。
首先创建一个Render Texture,用于将相机渲染到该目标。
创建以下脚本,实时获取Render Texture中的数据:
using UnityEngine;
using UnityEngine.UI;
public class GetCameraTexture : MonoBehaviour
{
Camera cam;
RenderTexture rt;
public RawImage ri;
public Text text;
void Start()
{
cam = GetComponent();
rt = cam.targetTexture;
rt.vrUsage = VRTextureUsage.TwoEyes;
t2d = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false, true);
ri.texture = t2d;
}
const float MB = 1024 * 1024;
float max = 0;
float min = float.MaxValue;
void OnPostRender()
{
GetRTPixels(rt);
byte[] x = t2d.GetRawTextureData();
//byte[] x = t2d.EncodeToJPG(); //这种也不靠谱,帧率瞬间降至15 float send = x.Length / MB;
float cur = send / Time.deltaTime;
max = Mathf.Max(max, cur);
min = Mathf.Min(min, cur);
text.text = "发送一次的大小:" + send.ToString("0.##") + " MB\n\n" + "单位:MB/S\n当前:" + cur.ToString("0.##") + "\n最大:" + max.ToString("0.##") + "\n最小:" + min.ToString("0.##");
}
static Texture2D t2d;
static public Texture2D GetRTPixels(RenderTexture rt)
{
RenderTexture currentActiveRT = RenderTexture.active;
RenderTexture.active = rt;
t2d.ReadPixels(new Rect(0, 0, t2d.width, t2d.height), 0, 0);
t2d.Apply();
RenderTexture.active = currentActiveRT;
return t2d;
}
}
然后将Unity切换到XR模式,运行看效果:
当使用HTC Vive分辨率时,传输需要的速率一下上升到了600MB/S,以现在的Wifi网络环境根本达不到这要求呀,看来还是放弃算了。
今天的实验到此结束,欢迎神通广大的网友说说你的看法吧~
更新于 2018年7月30日
1080P分辨率发送一次的数据量如此庞大,于是决定进行一下小小的压缩。思路就是通过ComputeShader来将一个像素压缩到一个16bit大小的单元中。经过今天一晚上的努力终于成功了,不过最终结果就是数据体积减半,实际使用还是不太现实。
首先创建一个ComputeShader来用于压缩像素,将最终压缩完的像素保存到以下变量:
RWStructuredBuffer Result;
然后编写脚本,在每帧中读取GPU为我们压缩好的数据:
void RunShader()
{
int kernelHandle = shader.FindKernel("CSMain");
shader.SetTexture(kernelHandle, "InputTex", rt);
shader.SetBuffer(kernelHandle, "Result", buffer);
shader.SetTexture(kernelHandle, "OutputTex", rt_result);
shader.Dispatch(kernelHandle, rt.width, rt.height, 1);
buffer.GetData(output);
}
运行以后最终结果,测试还是使用的是华为手机1080P分辨率大小
看结果一帧画面还是很大,广大网友们有没有更好的思路呢。。。
联系我们
* 网址:神工团队
* 工作邮箱:2423200363@qq.com
unity 实时画面投屏到手机_将Unity实时画面投屏到手机相关推荐
- screen投屏怎么用_教大家Screen怎么投屏电脑的方法
近日有关于教大家Screen怎么投屏电脑的方法的问题受到了很多网友们的关注,大多数网友都想要知道教大家Screen怎么投屏电脑的方法的具体情况,那么关于到教大家Screen怎么投屏电脑的方法的相关信息 ...
- 苹果概念手机_力压苹果!环绕屏概念手机发布:360度都是屏!
NEWS 折叠屏手机还没用上,环绕屏手机又来了. 9月24日,小米公司在北京举行产品发布会,发布了"环绕屏"概念手机小米Mix Alpha,定价为19999元(人民币,下同).这款 ...
- 苹果概念手机_吊打华为苹果!马云概念手机终于问世?
[]点击上方蓝色字体免费关注 整个网络都被马云的手机刷屏了.. 三面折叠 ,比苹果.华为还绚丽,简直不要太美! (图:来源支付宝官方微博) 据支付宝官方微博透露 马云家的第一款手机 取名 " ...
- unity lookat导致物体颠倒怎么解决_在Unity 2D中如何用一行代码实现LookAt的效果,以及向量归一化小总结...
被疫情困在家无聊翻翻以前的文章,发现好黑历史啊,虽然是刚学unity的时候写的,后面学习了DX11并且补了3D数学,发现这些问题都是小case了O(∩_∩)O. 在我最近制作的小游戏中,需要实现防御塔 ...
- w7电脑蓝屏怎么解决_教你win7电脑蓝屏怎么办
上期小编讲解了引用了一个不可用的位置,详细教您电脑引用不可用的位置,本次正特手机网小编给大家讲解一下教你win7电脑蓝屏怎么办,win7系统的电脑会时常出现蓝屏的现象,而导致电脑蓝屏的原因有五花八门, ...
- 为什么苹果录屏没有声音_原来苹果手机自带录屏功能,还能同时录制声音,教你这样开启...
最近有位朋友新买了一部苹果手机,发现不能录屏,其实苹果手机内置一个录屏功能,还能同时录制声音,下面教你如何开启. 一.自带的屏幕录制 1.首先我们需要把录屏的快捷键,添加到控制中心里面,先打开苹果手机 ...
- w7电脑蓝屏怎么解决_详解win7电脑蓝屏怎么办
win7系统的电脑会时常出现蓝屏的现象,而导致电脑蓝屏的原因有五花八门,但大多数集中在不兼容的硬件和驱动程序有问题的软件.病毒等.如果遇到蓝屏怎么办呢?小编建议你尝试下面的解决方法. 电脑蓝屏是常见的 ...
- 苹果电脑投屏到电视_最全小米电视投屏官方教程公布:手机、PC、APP通吃
如今越来越多人用手机代替电视观影,这与手机端内容的丰富以及操控便捷性,而电视端内容的匮乏密不可分. 不过6寸的手机屏幕和60寸的电视屏幕,观影的感觉完全是两种体验,因此手机投屏电视成为很多人的选择. ...
- 苹果x怎么投屏到电视_苹果手机怎么连接、投屏电视?一招解决,看完涨知识了...
用惯了安卓手机,换了苹果手机后,发现有点不习惯.平时,我喜欢在手机听听音乐,但又不太喜欢苹果手机的音效.除了蓝牙连接小音响,我还会把苹果手机投屏到电视上,这样就能在其他设备上听到手机里面喜欢的音乐啦( ...
最新文章
- windows7 64位机上CUDA7.0配置及在VS2010中的简单使用举例
- 数据库like匹配的实现猜测
- 使用小技巧教你用Selenium获取鼠标指向的元素
- Adaboost原理与推导
- UESTC_摩天轮 2015 UESTC Training for Dynamic ProgrammingProblem K
- gulp编译less简单demo
- 高通摄像头调试(OV8856)
- android APP优化知识图谱
- AI风向标:发改委重大工程项目公布,首个无人车路测试点落户亦庄
- python之语音识别(speech模块)
- 多媒体制作技术心得体会_多媒体课件制作的学习心得体会
- 【Get深一度】信号处理(三)——3db带宽
- Lifelong learning with dynamically expandable networks - 使用动态可扩展网络的终身学习-不完全记录
- AlertDialog.Builder setPositiveButton 点击时不关闭dialog
- 老版本 linux 浮点,Linux-浮点运算
- 二代证|港澳台居民居住证|电子护照阅读器 读卡器MEPR200+的应用与二次开发攻略
- VUCA时代的领导力开发
- Windows 8 自带定时关机的4种实现方法
- 使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小
- 打开word出现运行时错误‘-2147418113 (8000fff)‘的解决办法
热门文章
- 三星S10系列首销告捷:热度高涨超前代 供不应求也要“拧螺丝”
- 常见的HTTP响应状态码类型
- 魅族16S“SOC点胶门”事件落幕,买一赔二!
- 爬了个爬(一)爬虫入门
- Word里为什么输不了空格?怎么处理?
- KARL LAGERFELD推出2022早春虎年胶囊系列
- JavaWeb 实现密码修改的案例
- Vector - VTESTStudio(软件篇) - CAPL实现MD5算法 - 01
- js 时间戳 格式化 年月日
- logstash中Ruby代码把@timestamp时间戳格式转换