查看详情

VR 视频工作原理简介

最近在小组分享了关于沉浸式多媒体的体验和原理,这里也是简要分享我们如果做头显里的播放器,我们应该关注什么要的体验和如何实现等; 自己分享主要是从四个方面去讲: VR 历史简述 VR 视频播放体验 VR 视频播放原理 目前面临的一些挑战 Stanley G.Weinbaum 发布了科幻小说,《皮格马利翁的眼镜》, 这部小说给大家展现了一部神奇的眼镜,在眼镜里面可以看到万事万物,这也是想象的魅力,没人能够预言到未来会有人实现这样的眼镜; Morton Heilig 发明了人类历史上第一台 VR 设备;虽然看着捡漏,但是显示屏,影响,座椅,风扇,功能非常丰富,现在 4Dx 电影或许也参考了这一点;随后一段时间,他撰写专利,希望将这些都放到一个盒子里,而人们戴上这个盒子,便能实现他设计的诸多功能;这样的专利原型,也给后人制作头显设备留下重要的指引; 1968 年 Sutherland 和 Bob Sproull 发明了第一款头戴虚拟现实设备,它是里程碑的产品,它完成了跟随头部运动而更新画面的能力;但是受限于硬件限制,它需要额外的支持来拖住这个设备; 而到了90年代,诸多游戏公司入局,参与到VR头显设备的研发之中,这里面包括诸如 详情 »

查看详情

VR 中 Monoscopic 和 Stereoscopic 的区别

无论是 VR 拍摄还是 VR 开发中,我们都会遇到这个问题,关于Mono(monoscopic) 和 Stereo(stereoscopic) 的选择。这里简单给大家科普下 在 AR/VR 显示技术原理 (上) 中,曾经涉及到,双眼和单眼成像的区别。而 Monoscopic 和 Stereoscopic 的区别就和这个相关。 Monoscopic (简称 mono) 实际上来源一个镜头的采集,通过本身角度的变化,类似于从0-360 这样来进行连续采集,而这样的图片在还原的时候,有个特点,就是周围距离自己的距离是一致的,比如最近自如VR 的单摄像头拍摄就是这个原理。 Stereoscopic(简称 stereo ) 实际上是双摄像头进行采集。我们知道人体双眼对距离的感知是很明显,所以这种方式采集对物体的距离感非常明显,这也是专业 VR 摄像所采用的设备。比如 Insta360 Pro2 我们可以看到它的镜头分布。 而它由于是多摄像头拍摄,因此平面视频会是不同的风格, 由于这是模拟人眼的方式,因此人类在感知还原的时候对于深度和距离非常准确,VR 详情 »

查看详情

【译】人眼对 AR 空间的理解

原文链接: https://uxdesign.cc/human-eyes-understanding-of-space-for-augmented-reality-d5ce4d9fa37b @Kore 从工程的角度来看,我们的眼睛是精密的光学传感器,其结构长期以来一直被用作设计相机的蓝图。光通过一系列光学元件进入,其中折射和聚焦都发生在这里。光圈控制通过光圈的光量。随后的光图案落在图像平面上,电信号从该图像平面发送到大脑。然后将这些信号解码为图像。尽管眼睛的功能本身就是一个有趣的话题,但是为了简单起见,我还是自由地忽略了眼睛如何工作的很大一部分。但是,我敢肯定,您会有所了解。 可见光谱 人类的视觉离不开光的存在。光是电磁辐射的一种形式,是刺激人类视觉的关键。这种辐射以波的形式在空间中移动,并能够刺激视网膜产生视觉感。电磁辐射根据其波长进行分类,波长是波的两个波峰之间的距离。尽管整个电磁频谱都包括无线电波,红外线,X射线和其他波类型,但人眼仅对380-740纳米之间的款窄带*敏感。这称为可见光谱。 1纳米= 1米的十亿分之一 人眼的基本特性 视场角(FOV) 它定义为两只眼睛都能看到的图像的总角度大小。平均而言,水平双眼FOV为200度,其中120度为双眼重叠。双眼重叠对于进一步讨论的立体和其他深度提示尤其重要。垂直视场约为130度。 瞳距(IPD) 顾名思义,它是眼睛的瞳孔之间的距离,是双目观察系统的一个非常重要的考虑因素。这个距离因性别和种族而异。不正确的IPD可能会导致不良的眼镜对准,图像失真,眼睛疲劳和头痛。成人的平均IPD约为63mm, 详情 »

查看详情

AR/VR 显示技术原理 (下)

原文地址: https://medium.com/hackernoon/fundamentals-of-display-technologies-for-augmented-and-virtual-reality-c88e4b9b0895 @Kore 之前在AR/VR 显示技术原理-上篇翻译过关于人类视觉基本原理和对于空间的理解,这一部分主要翻译现有显示技术的硬件和底层材料使用。 显像技术 图像显示技术在过去一些年发展的极为迅速。高端的 CRT 已经被四种主要的技术所取代: 液晶显示器(LCD) LCD在高清电视中很常见,并且自1980年代以来一直用于AR/VR显示器中。这种显示类型由包含液晶分子的单元阵列组成,该单元夹在两个偏振片之间。这种装置安置于在于数百万个晶体管的薄玻璃基板之间。对于彩色LCD,将包含红色,绿色和蓝色滤光片的附加基板,放置在该基板的每个单元上方。单个RGB液晶单元称为子像素。三个子像素形成一个像素。 电流流过玻璃材料,改变电流可以使LCD调节光的通过以产生精确的颜色。如果所有子像素都完全打开,则会产生白光。 液晶单元不发光,需要背光。液晶单元只能改变光的通过以产生所需的颜色并随后产生图像。 发光二极管(OLED) 此显示技术基于有机(碳和氢键结合)材料,当施加电流时会发光。这是一种固态显示技术,其中通过有机片的能量以光的形式释放,也称为电致发光。可以通过仔细设置有机发光来控制颜色,但是大多数制造商在OLED堆栈中添加了红色,绿色和蓝色薄膜。OLED面板有两种类型: 被动矩阵有机电激发光二极管(PMOLED): 与CRT一样,此显示类型由复杂的电子网格组成,以按顺序控制每行中的各个像素。它不包含使更新速度变慢并且保持像素状态高功耗的存储电容器。 详情 »

查看详情

【译】AR/VR 显示技术原理 (上)

原文地址: https://medium.com/hackernoon/fundamentals-of-display-technologies-for-augmented-and-virtual-reality-c88e4b9b0895 @Kore 随着 Google Glass 和 HTC Vive 给大家带来了对于增强现实和虚拟现实的体验,头戴设备正在成为新型趋势。核心的是对于 头戴设备屏幕 (head-mounted displays,HMDs),它包含两个基本的元素: 光学元件和 图形显示。 光学 在了解光学基础之前,我们需要先弄懂人眼的基本属性。 视场 FOV (Field of View) 它主要表示人眼所能看到的图像最大角度范围。一般人的话,我们水平方向双眼是 200 度,会有 120 度的重叠。双眼重叠部分对于人眼构建立体和景深非常重要,这个我们会在后面讲到,而垂直视角大约为 130 度。 瞳间距 IPD (Inter-pupillary distance) 这个比较好懂,就是人眼瞳孔的距离,它在双目视觉系统有着重要的影响。瞳距在不同的人之间,性别之间以及人种之间都不一样。错误的瞳距计算会影响眼镜的对齐,图形失真,视觉疲劳以及头晕。 详情 »

查看详情

React-360 框架最新进展

由于 react-360 已经很久没有进行代码变动了,让人都很怀疑这个项目是不是快要关停了,最近 OC6 也没有发布新的 设备,让人还是很担心这个项目的未来。 不过最近开发者一,统一回复了大家 传送门 #75 作者回答了关于 WebXR 的集成和最近一些变化, 大概总结下: 作者表示一直在默默的工作,但是需要有明显的变化才会加快目前代码的变动,新的架构方式,可以关注 packages 增加内容 WebXR 草案上周才刚刚结束,因此我们会保持等待的姿势等待 WebXR 正式推出,当前代码的设计会非常方便的进行对 WebXR 的支持 计划取消掉 React-Native 的引入,我们会自己实现模块管理和渲染的方式,这位有助于提升在 Oculus go 或者 Oculus Quest 上的渲染速度 总之,大家需要等待,并保持耐心。 详情 »

查看详情

WebVR 可用性探测

Chrome 在 72 或者之后的版本开始支持 WebVR 的 API (75+ 移至 WebXR 的草案之中)。包括所有集成 Blink 内核的浏览器都会默认支持这个 API。但是实际上,我们做 VR 开发体验的时候还是希望能在合适的头显设备(HMDs)进行功能展示。 我们看下 caniuse 对 WebVR 的支持情况 其中显示: 这个意思是目前依旧需要手动开启功能,对于 Oculus 或者 HTC vivi 的头显,集成 Chrome 内核的浏览器都对该功能表示支持。 由于国内厂商集成内核版本的问题导致一些移动端浏览器默认开启了对 webVR 的支持,但是实际效果并不是理想。 我们常规检测是 if (typeof navigator.getVRDisplays === 'function') { navigator.getVRDisplays().then(displays => { if (displays.length) { // support 详情 »

查看详情

Oculus 自动唤起 VR 模式

移动设备相对传统 PC , 对 Web 的限制相对而言会更加严格一点,尤其 Webkit 针对 网页的权限限制非常严格。 比如我们常见的自动播放,随着 Safari 的限制,后面 Chrome 也开始限制音视频的自动播放功能。 同样的对于头显类设备,注入 Facebook Oculus 系列(Go, Quest 等),三星 MR 等,作为移动设备对音视频同样采取了一些限制。我们在开发 VR 的时候,必然需要唤起 VR 模式, 类似自动播放 的策略,我们也需要做唤起 VR 的手势交互逻辑。 当然唤起失败后,我们需要在界面出现点击的按钮,让用户手动点击。 // display 是 之前 navigator.getVRDisplays() 获取的关于可用头显设备对下 display.requestPresent([ { source: canvasElement, }, ]) .then(() => { console.log( 详情 »

查看详情

开始使用 React-VR

React-VR 是 Facebook 团队推出的使用JavaScript来开发VR应用的框架,和 React 相似,你可以通过编写组件的形式来进行程序的开发。(写过 React-Native的应该可以很快上手吧。) 快速开始 首先我们需要安装脚手架程序: npm install -g react-vr-cli 安装成功后,我们就可以开始创建项目了。 react-vr init vrexamples 如果初始化过程中,遇见了提示 yarn 依赖安装的问题,你可以进入项目目录,重新安装就好。 初始化成功后,我们进入项目,然后输入npm start , 访问: http:/localhost:8081/vr/ 就可以看到web上的内容了。如果你有VR的设备,你也可以戴上体验下。 编辑代码 这个时候我们打开编辑器, 查看index.vr.js 的源码,写过React-Native的是不是有种泪奔的感觉,的却是这样写的: 'use strict'; import React from 'react'; import { AppRegistry, asset, 详情 »