5分钟搞懂VR APK的双目渲染原理(上)
VR APK的双目渲染是VR终端呈现的基础能力,在通常情况下双目渲染由VR设备厂商的VR SDK中均实现了相关的基础能力。
但在某些特殊的情况下,VR APK确不得不深入了解其中的细节,比如一个典型的场景就是3D影片的播放。
本文从基础入手,力求让开发者搞明白双目渲染的基本原理,以及在应用中可以涉及到的技术细节。
什么是VR双目渲染
在了解相关知识之前,不妨先做一个有趣的实验:
1、 拿一个比较小的物件(比如一支笔)放在眼前正前方约半米的位置。
2、 闭上一只眼睛。
3、用你的一只手指慢慢向物件靠近,直接触碰到物体。
大多数人(某些具备超能力的人除外)会发现在这个实验中,我们没有办法准备的预知到手指何时会触碰到物体。
思考一下为什么?
我们知道人眼之所以能看物体,是因为物体上发出的光线,经过了眼睛晶状体的折射后,在视网模上成像后被大脑所接受。
如下图所示:
由于人的两眼之间有一定的距离(我们称之为瞳距),从物体上每一点发出的光线分别到达左右眼,两条光线之间存在一定的夹角。导致同一个物体分别在左右眼视网膜上的成像存在一定细微的差异。人的大脑是个神奇的超级计算机,可以将左右眼的图像自动合成3D的图像。
这就是人眼成像的基本原理。
而在VR SDK中双目渲染,就是通过图像计算,直接将左右视网膜上的图像分别生成好,通过显示屏幕分别输出,再通过凸透镜(在VR眼镜中为了降低凸透镜厚度,会采用菲涅尔透镜)直接到达双眼。
要达到模拟过程,所以在VR SDK中,涉及到双目渲染图像合成计算的光学参数有如下几个:
1 瞳距(offset):模拟人眼左右眼之间的瞳距,主要体现为左右显示屏与中间区域的偏移量(毫米)。如,+/- 50毫米
2 可视角(FOV field of view):模拟人眼可以看到的最大角度,参数具体形态为上下左右四个可视角。市面上的VR设备的FOV是指水平方向的最大可视角,比如PICO一体机的设备为102度。
3 渲染画面宽高(renderWidth/renderHeight):输出画面的象素宽高度,具体呈现为设备显示屏幕的像素,比如PICO Neo一体机左右两个屏都是2K屏,该值即为:2048/2048。
4 视椎体的极大值/极小值( depthFar/depthNear):定义视椎体远近可视范围,只有视椎体内的体物才会被渲染输出。
5 透镜焦距(Convergence):定义VR眼镜中的透镜的成像焦距。
6 反畸变系数(Anti-distortion):定义VR眼镜中的透镜的畸变系数,用于成像的反畸变计算。
- 点赞
- 收藏
- 关注作者
评论(0)