【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景
【背景】
经常看到有VR游戏中玩家可以在虚拟场景中拍照的功能,所以打算做一篇系列帖子,主要介绍三个功能,第一个功能是如何在Unity VR项目中从玩家视角捕捉游戏全景,第二个功能是如何将这个捕捉到的全景转换为一般的平面图,第三个功能是如何将这个平面图保存成一般的图片文件,其他还会介绍如何将游戏中捕捉到的全景图作为VR图片发布到网页上等的窍门。
这篇帖子先介绍第一个功能,如何在Unity VR项目中从玩家视角捕捉游戏全景。下面就开始吧。
【思路和方法】
全景图在Unity中的格式是CubeMap,所以思路就是将代表玩家视觉的VR Rig的Camera中捕捉到的图片转换成CubeMap对象显示出来。
【步骤和脚本】
随便新建一个VR项目,放一些场景,让游戏的MainCamera能够有合适的视角捕捉到这些场景。
然后新建一个Empty对象,命名为PanoramaCapture,我们的脚本就会挂载在这个空对象下。
在空对象下新建一个脚本命名为PanoramaCapture,双击打开后继续补充功能内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PanoramaCapture : MonoBehaviour
{// Start is called before the first frame updatepublic Camera targetCamera;public RenderTexture cubeMapLeft;// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Space)){Capture();}}public void Capture(){targetCamera.RenderToCubemap(cubeMapLeft); }
}
先讲变量,造了两个Public变量,targetCamera用来关联捕捉风景的相机。再造一个RenderTexture变量,用来关联放转换成CubeMap后的全景格式容器。
再讲方法,Update中方法的作用是放一个便于测试的动作,摁下Space就触发Capture函数。
核心是Capture函数,就一句话,讲targetCamera捕捉到的图像转换为cubemap,存储到cubeMapLeft中。
最后,来讲实际的对象关联到脚本中,mainCamera放到targetCamera位置,而CubeMapLeft,需要我们先在Asset下面右击,新建一个RenderTexture对象,然后把这个对象命名为CubeMapLeft后关联到脚本。
【测试】
运行游戏,选中Asset中的CubeMapLeft方便观察结果,按下键盘Space,发现成功捕捉了Camera看到的图像并以CubeMap的形式呈现。成功!
【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景相关推荐
- 【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景(三)
[背景] 之前两篇帖子介绍了如何在Unity中捕捉360度全景,以及如何将CubeMap转换为平面2D对象.今天进一步来介绍一下,如何将2D全景对象存储为JPG或其它格式的图片文件. [思路] 要将只 ...
- V360推出首款移动端VR视频编辑软件,用手机就可编辑360度全景视频
通过该软件,小白仅用一部智能手机就可以轻松完成360度全景视频编辑. 如果要制作一款小视频,你或许都用不着电脑,一部智能手机就能完成.现在,这种便捷的方式也延续到VR视频制作了.最近,V360推出了首 ...
- 如何在3Dmax中渲染VR草图?
如何在3Dmax中渲染VR草图? 如何在3Dmax中渲染VR草图?在室内设计中,为了调整方便快捷,需要设置Vray渲染器,调整到草图渲染的水平,这样在调整场景中的灯光时,可以更快地观察灯光的变化.以及 ...
- 元宇宙开发:你在虚幻引擎中的第一个虚拟现实游戏
了解如何开发零编程背景的Oculus Quest游戏 你会学到什么 为Oculus Quest构建应用程序 设计和开发虚拟现实游戏 在虚幻引擎中工作 使用材料和纹理 优化内容,实现移动和虚拟现实游戏的 ...
- 360度全景看车制作,vr全景制作方法
如今360度全景看车相信大家一定都或多或少的接触过,这种技术能够使我们通过手机等设备随时随地对车辆进行查看.对此相信很多人也非常疑惑,这种360度全景看车是怎么制作的呢?今天就来给大家介绍一下vr全景 ...
- 如何制作360度vr全景?制作360度全景效果图有哪些技巧?
360度VR全景图相信对摄影感兴趣的小伙伴一定不陌生,360度全景效果图不仅可以清楚真实的表现出场景,而且还具有很高的商用价值,360VR全景也成为了目前最受欢迎的新型展示方式,那么如何制作360度v ...
- oculus vr开发_如何在Oculus Quest上无线玩Steam VR游戏
oculus vr开发 Oculus 眼 The Oculus Quest is a fully stand-alone headset. It's free of the wires of PC-o ...
- 基于vlc的unity3d vr视频播放器开发,360度全景视频
最早开始是有全景图片,比较早的应用场景在照片拍摄,地图展示上.数据采集需要一台全景摄像机,放到汽车的顶部.开动汽车,慢速驾驶,就可以采集周边建筑的全景图片.数据的成本相对3d建模会低很多.广泛用在gi ...
- Unity做360度全景预览,效果类似pano2vr导出的效果或720云做的效果
上学期间在自学unity,最近需要做一个全景图的效果,鼠标拖动摄像机自旋转,网上查了很久终于找到http://blog.csdn.net/u010476348/article/details/6806 ...
最新文章
- redis持久化 mysql_Redis 如何保持和MySQL数据一致
- 值传递 引用传递(传地址,传引用)的区别
- 洛谷 1379 八数码难题
- sql server 2008 远程连接配置
- c++中非静态函数不能用类名调用,为什么CWnd的成员函数GetDC()可以直接调用啊?
- mysql8.0提示命令_Mysql 8.0 相关命令
- spring是如何管理 事务的
- Oracle adviser,Oracle10g SQL tune adviser
- 理解JQuery中的data()使用方法
- 【MyBatis源码解析】MyBatis一二级缓存
- login组件的两种用法_Vue.js 组件该如何正确的复用和扩展
- Mac中mvn命令安装配置command not found
- 哪个软件可以测试服装的衣服,测试男生穿什么衣服的软件:男生脸型测试软件...
- Unity发布的exe程序正常 显示窗口右上角的放大缩小功能
- matlab 控制命令,Matlab绘图基本控制命令
- 电子学会2020年9月青少年软件编程(图形化)等级考试试卷(一级)答案解析
- 中标麒麟系统安装达梦8 数据库
- 访问网络内不同ip段的计算机,[转]问题:话说两台电脑在一个局域网内,把它们的IP地址都设成不同的网段,请问,它们可不可以通讯?如...
- DataSong大数据智能管理平台 用户手册-开发部分
- Java练习题-龟兔赛跑
热门文章
- [P3374 【模板】树状数组 1](单点修改,区间查询)
- 用python画路飞代码_python 全栈开发,Day105(路飞其他数据库表结构,立即结算需求)...
- python中ifelse语句怎么写_pythonifelse语句怎么写
- 按照拼音排序的SQL语句条件
- Tensorflow神经网络框架 小例子 三层神经网络 卷积神经网络 循环神经网络 神经网络可视化
- 如何解决MySql报错:only_full_groupBy
- Jquery给HTML元素绑定按键事件-回车事件
- 那个炒币,8小时赚了一辆法拉利的女大学生,现在怎么样了?
- (附源码)ssm高校学生档案信息管理系统 毕业设计 010936
- redis的主从同步及高可用集群