【背景】

经常看到有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度全景相关推荐

  1. 【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景(三)

    [背景] 之前两篇帖子介绍了如何在Unity中捕捉360度全景,以及如何将CubeMap转换为平面2D对象.今天进一步来介绍一下,如何将2D全景对象存储为JPG或其它格式的图片文件. [思路] 要将只 ...

  2. V360推出首款移动端VR视频编辑软件,用手机就可编辑360度全景视频

    通过该软件,小白仅用一部智能手机就可以轻松完成360度全景视频编辑. 如果要制作一款小视频,你或许都用不着电脑,一部智能手机就能完成.现在,这种便捷的方式也延续到VR视频制作了.最近,V360推出了首 ...

  3. 如何在3Dmax中渲染VR草图?

    如何在3Dmax中渲染VR草图? 如何在3Dmax中渲染VR草图?在室内设计中,为了调整方便快捷,需要设置Vray渲染器,调整到草图渲染的水平,这样在调整场景中的灯光时,可以更快地观察灯光的变化.以及 ...

  4. 元宇宙开发:你在虚幻引擎中的第一个虚拟现实游戏

    了解如何开发零编程背景的Oculus Quest游戏 你会学到什么 为Oculus Quest构建应用程序 设计和开发虚拟现实游戏 在虚幻引擎中工作 使用材料和纹理 优化内容,实现移动和虚拟现实游戏的 ...

  5. 360度全景看车制作,vr全景制作方法

    如今360度全景看车相信大家一定都或多或少的接触过,这种技术能够使我们通过手机等设备随时随地对车辆进行查看.对此相信很多人也非常疑惑,这种360度全景看车是怎么制作的呢?今天就来给大家介绍一下vr全景 ...

  6. 如何制作360度vr全景?制作360度全景效果图有哪些技巧?

    360度VR全景图相信对摄影感兴趣的小伙伴一定不陌生,360度全景效果图不仅可以清楚真实的表现出场景,而且还具有很高的商用价值,360VR全景也成为了目前最受欢迎的新型展示方式,那么如何制作360度v ...

  7. 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 ...

  8. 基于vlc的unity3d vr视频播放器开发,360度全景视频

    最早开始是有全景图片,比较早的应用场景在照片拍摄,地图展示上.数据采集需要一台全景摄像机,放到汽车的顶部.开动汽车,慢速驾驶,就可以采集周边建筑的全景图片.数据的成本相对3d建模会低很多.广泛用在gi ...

  9. Unity做360度全景预览,效果类似pano2vr导出的效果或720云做的效果

    上学期间在自学unity,最近需要做一个全景图的效果,鼠标拖动摄像机自旋转,网上查了很久终于找到http://blog.csdn.net/u010476348/article/details/6806 ...

最新文章

  1. redis持久化 mysql_Redis 如何保持和MySQL数据一致
  2. 值传递 引用传递(传地址,传引用)的区别
  3. 洛谷 1379 八数码难题
  4. sql server 2008 远程连接配置
  5. c++中非静态函数不能用类名调用,为什么CWnd的成员函数GetDC()可以直接调用啊?
  6. mysql8.0提示命令_Mysql 8.0 相关命令
  7. spring是如何管理 事务的
  8. Oracle adviser,Oracle10g SQL tune adviser
  9. 理解JQuery中的data()使用方法
  10. 【MyBatis源码解析】MyBatis一二级缓存
  11. login组件的两种用法_Vue.js 组件该如何正确的复用和扩展
  12. Mac中mvn命令安装配置command not found
  13. 哪个软件可以测试服装的衣服,测试男生穿什么衣服的软件:男生脸型测试软件...
  14. Unity发布的exe程序正常 显示窗口右上角的放大缩小功能
  15. matlab 控制命令,Matlab绘图基本控制命令
  16. 电子学会2020年9月青少年软件编程(图形化)等级考试试卷(一级)答案解析
  17. 中标麒麟系统安装达梦8 数据库
  18. 访问网络内不同ip段的计算机,[转]问题:话说两台电脑在一个局域网内,把它们的IP地址都设成不同的网段,请问,它们可不可以通讯?如...
  19. DataSong大数据智能管理平台 用户手册-开发部分
  20. Java练习题-龟兔赛跑

热门文章

  1. [P3374 【模板】树状数组 1](单点修改,区间查询)
  2. 用python画路飞代码_python 全栈开发,Day105(路飞其他数据库表结构,立即结算需求)...
  3. python中ifelse语句怎么写_pythonifelse语句怎么写
  4. 按照拼音排序的SQL语句条件
  5. Tensorflow神经网络框架 小例子 三层神经网络 卷积神经网络 循环神经网络 神经网络可视化
  6. 如何解决MySql报错:only_full_groupBy
  7. Jquery给HTML元素绑定按键事件-回车事件
  8. 那个炒币,8小时赚了一辆法拉利的女大学生,现在怎么样了?
  9. (附源码)ssm高校学生档案信息管理系统 毕业设计 010936
  10. redis的主从同步及高可用集群