1
2
3
4
5
6
  • AR开发
7
8
  • 系统优化与发布

全景

发布时间:2021-02-26 22:55   发布人:焦卫峰   浏览次数:539

1.全景

全景,英文名(Panorama),又被称为3D实景,其与视频,声音,图片等传统的流媒体最大的区别是“可操作,可交互”。

全景是把相机环360度拍摄的一组或多组照片拼接成一个全景图像。

全景虚拟现实(也称实景虚拟)是基于全景图像的真实场景虚拟现实技术,它使用鼠标控制环视的方向,可左可右可近可远。使观众感到处在现场环境当中,好像在一个窗口中浏览外面的大好风光。

基于静态图像的虚拟全景技术是初级虚拟现实技术。它开发成本低廉,适合网络在线传播,可广泛应用于在线的房地产楼盘展示、虚拟旅游、虚拟教育等领域。

 

全景顾名思义就是给人以三维立体感觉的实景360度全方位图像,此图像最大的三个特点是:

1、全:全方位,全面的展示了360度球型范围内的所有景致;可在例子中用鼠标左键按住拖动,观看场景的各个方向;

2、景:实景,真实的场景,三维实景大多是在照片基础之上拼合得到的图像,最大限度的保留了场景的真实性;

3、360:360度环视的效果,虽然照片都是平面的,但是通过软件处理之后得到的360度实景,却能给人以三维立体的空间感觉,使观者犹如身在其中。

 

全景球的空间状态,视角涵盖地平线360度,垂直180度,即上下前后左右六个面完全包含。能够表达这种模式的照片有很多种。

能够正确地展开全物理视域的真实场景到一张2D图片上,并且能够还原到VR眼镜中实现沉浸式观看的数学过程,就叫做投影(projection)。

而那张看起来平凡无奇的世界地图,使用的就是一种名为Equirectangular(等距长方投影)的常见投影方式,它的特点是水平视角的图像尺寸可以得到很好的保持,而垂直视角上,尤其是接近两极的时候会发生无限的尺寸拉伸,它的长宽比例固定为2:1。

2.全景摄像机

主要分为单镜头的和多镜头的两类全景摄像机。单镜头的大多应用在安防监控领域,但是单镜头的全景摄像机存在视角盲区的不足之处;多镜头的全景摄像机具有实时无盲区全景视角和真实感强的全景视频优势,但人存在很多的技术问题,如视频图像的分辨率不高,视频拼接不完整,画面不连续,视频图像快速显示存在延迟等。

相机 鱼眼镜头 云台 三脚架

3.全景漫游技术

全景漫游是指利用带有鱼眼镜头的照相机,拍摄水平 360 度方向及垂直 180 度方向的多张图像,再拼接成一张全景图像。然后通过全景图的串连构建出虚拟实现的全景空间。可应用于虚拟旅游、数字地图等场合。在浏览漫游场景时,可使用鼠标控制 360 度的方向,可左右操作,可上下操作,可拉推近远,就好像沉浸在现场环境当中浏览场景。

1)真实感强:实地取景后对图像进行的拼接处理比三维建模生成的图像更真实可信

2)人机交互性强:可以根据自己的意愿随意浏览,可上下操作,可左右操作,可推拉远近;如果配备虚拟现实设备,如虚拟现实眼镜、体感设备等,将进一步增强人机交互的体验感。

3)展示流畅:在互联网上可以很灵敏的嵌入到页面,对于网络带宽的需求较低,可以很顺利的完成三维空间图画的播映。

4)画面高清:在取景时所运用的相机像素都比较高,能够拍摄像素很高的图像,使其展示画面达到高清的效果。

5)可塑性强:可以依据不一样的需求完成很多功用拓展。

6)经济适用性强:开发周期短,制作速度快、成本低;数据量小,传输方便,适合网络使用。

7)创新体验式推广:全景漫游展示突出体验式推广的新理念,经过互联网和移动互联网完成网上真实场景体验。

 

安徽宏村

https://720yun.com/t/58vknhf9ddl

日照职业技术学院校园漫游

https://720yun.com/t/738jepuyum5

网红风现代简约【霓裳】720°样板房全景效果图

https://720yun.com/t/85vkumih7q9

平遥古城360视频

https://720yun.com/v2/01ez477t5kO

 

https://www.airpano.com/

4.Unity中浏览360全景图

1.全景图导入项目中,设置属性如下:

Texture Type:Default

Texture Shape:Cube

此选项将纹理定义为立方体贴图。例如,可将其用于天空盒或反射探针。

Mapping:Latitude Longitude (Cylindrical)

将纹理映射到 2D 纬度/经度表示形式。

Wrap Mode:Clamp

 

2.创建材质,材质类型为Skybox/Cubemap

点选Cubemap(HDR),选择贴图

 

3. Window/Rendering/Lighting Settings 将刚刚创建的Material给Skybox

4.通过调节Camera的Rotation X、Rotation Y和Filed of View来观看360全景图。

5.鼠标控制相机

思考:

如何实现按住自动旋转的效果?

 

尝试使用Input.mousePosition记录鼠标按下的坐标和鼠标按住的坐标,求出坐标的差,然后使用Rotate函数在x,y轴上进行旋转。这时可以实现按住自动旋转的效果,但是会出现Z轴旋转的情况,如何解决?

6.切换全景图片

使用拖动赋值,对材质、贴图进行赋值。

使用Material类中的SetTexture方法切换贴图。

 

思考:

添加景点介绍、交互,实现点击图片切换360全景场景

7.VideoPlayer组件

使用视频播放器组件可将视频文件附加到游戏对象,然后在运行时在游戏对象的纹理上播放。

默认情况下,视频播放器组件的__材质属性 (Material Property)__ 设置为 _MainTex__,这意味着视频播放器组件附加到具有渲染器的游戏对象时,它会自动将自身分配给该渲染器上的纹理(因为这是该游戏对象的主纹理)。此处,游戏对象有一个网格渲染器 (Mesh Renderer) 组件,因此视频播放器会自动将其分配给 Renderer 字段,这意味着视频剪辑会在网格渲染器的纹理上播放。

 

Source    选择视频源类型。

Video Clip     使用此字段来定义分配给视频播放器组件的视频剪辑。

URL 从 URL(例如 https:// 或 file://)分配视频。Unity 在运行时从此 URL 读取视频。

 

Play On Awake     勾选 Play On Awake 复选框可在场景启动时播放视频。取消勾选此复选框,可使用 Play() 命令通过脚本触发视频播放。

Wait For First Frame     勾选,Unity 将在游戏开始前等待源视频的第一帧准备好显示。如果取消勾选此复选框,可能会丢弃前几帧以使视频时间与游戏的其余部分保持同步。

Loop      勾选,在源视频到达结尾时循环播放视频。

Playback Speed     播放速度的乘数,为 0 到 10 之间的值。

 

Render Mode 使用下拉选单来定义视频的渲染方式。

Camera Far Plane 在摄像机的远平面上渲染视频。

Camera Near Plane在摄像机的近平面上渲染视频。

Camera  定义接收视频的摄像机。

Alpha     添加到源视频的全局透明度级别。此属性允许透过平面看到平面背后的元素。请参阅视频透明度支持文档以了解有关 Alpha 通道的更多信息。

Render Texture     将视频渲染到渲染纹理中。可以供物体或者RawImage使用。(Camera组件也有此选项)

Target Texture      定义视频播放器组件用于渲染图像的渲染纹理。

Material Override 通过游戏对象渲染器的材质将视频渲染到游戏对象的选定纹理属性中。

Renderer 视频播放器组件用于渲染图像的渲染器。设置为 None 时,使用与视频播放器组件位于同一游戏对象上的__渲染器。 | ||| Material Property__   接受视频播放器组件图像的材质纹理属性的名称。

API Only 将视频渲染到 VideoPlayer.texture 脚本 API 属性中。必须使用脚本将纹理分配给其预期目标。

 

Aspect Ratio  图像的宽高比。

No Scaling     不使用缩放。视频在目标矩形内居中。

Fit Vertically   对源进行缩放以垂直适应目标矩形,在必要时裁剪左侧和右侧或在每侧留下黑色区域。此情况下保留源宽高比。

Fit Horizontally     对源进行缩放以水平适应目标矩形,在必要时裁剪顶部和底部区域或在顶部和底部留下黑色区域。此情况下保留源宽高比。

Fit Inside 对源进行缩放以适合目标矩形而不必裁剪。根据需要,在左侧和右侧或上方和下方留下黑色区域。此情况下保留源宽高比。

Fit Outside    对源进行缩放以适应目标矩形,而不必在左侧和右侧或上方和下方留下黑色区域,可根据需要进行裁剪。此情况下保留源宽高比。

Stretch   在水平和垂直方向均进行缩放以适应目标矩形。不会保留源宽高比。

Audio Output Mode    定义如何输出源的音频轨道。

None      不播放音频。

Audio Source 音频样本发送到选定音频源,允许应用 Unity 的音频处理。

Direct     音频样本绕过 Unity 的音频处理,直接发送到音频输出硬件。

API Only (Experimental)      Audio samples are sent to the associated AudioSampleProvider.

 

Controlled Tracks  视频中的音频轨道数量。

Mute 静音

Volume  音量

7.播放360度全景视频

1.全景视频拖拽进场景中,Unity会自动生成Video Player组件。

2.创建一个Render Texture,将其Size属性改为全景视频的分辨率尺寸

3.选中场景中的Video Player物体,修改Video Player组件中Render Mode为Render Texture,将刚创建的Render Texture拖拽到Target Texture上。

4.创建一个Material,修改Shader为Skybox/Panoramic,并将Render Texture拖拽到Sperical(HDR)上。

5.打开Lighting Settings窗口,将其中的Skybox Material换成刚创建的Material。

6.运行就能看到整个的全景视频效果,可以转动相机查看周围的环境。场景中的相机换成VR摄像机就能在VR环境下观看360度全景视频。

8.VideoPlayer类

将视频内容播放到目标上。

UnityEngine.Video

 

常用属性

frameCount   Number of frames in the current video content. (Read Only)

frameRate     The frame rate of the clip or URL in frames/second. (Read Only)

height    The height of the images in the VideoClip, or URL, in pixels. (Read Only)

isLooping      Determines whether the VideoPlayer restarts from the beginning when it reaches the end of the clip.

isPaused Whether playback is paused. (Read Only)

isPlaying 是否正在播放内容。(只读)

isPrepared     Whether the VideoPlayer has successfully prepared the content to be played. (Read Only)

length    The length of the VideoClip, or the URL, in seconds. (Read Only)

playbackSpeed     基本播放速率的增加倍数。

width  The width of the images in the VideoClip, or URL, in pixels. (Read Only)

 

常用方法

Pause     暂停播放并保持当前时间不变。

Play     开始播放。

Prepare  Initiates playback engine preparation.

Stop     Stops the playback and sets the current time to 0.