VR应用的开发,立体渲染是一个非常重要的步骤,下面就和大家说说立体渲染的开发教程吧。
立体渲染
在虚拟现实中,三维图像渲染是一个大问题,然而现在又碰到了如何处理相机这个难题,相机本身就需要处理变换矩阵和投影矩阵,可恶的是,VR中我们还需要处理两次(每只眼睛处理一次)。
不过境况并没有那么糟糕,我们有几种处理相机的方法,下面来介绍一个最简单的方法:
创建一个主相机:应用程序控制唯一一个主相机,所有的逻辑动画等等都只针对主相机,这样,我们在处理相机与其他物体交互的时候就变得简单统一,此外需要注意主相机不参与真正的渲染。
主相机还有一个好处,就是可以在双立体视图和传统单一视图之间切换。
用两个相机渲染:除了主相机,VR程序需要外加两个相机,用来真正处理渲染。
这两个相机需要与主相机的位置和朝向保持一致,只是有一点不同,就是它们分别要向左向右偏移一点点,用来模拟我们的瞳距。
渲染至两个视口:VR应用分别创建的左右眼的渲染相机,它们的视口宽度都是屏幕宽度的一半,高度都为屏幕高度。
每个相机处理图形的时候都用了特殊的投影矩阵,这个投影矩阵可以处理反畸变问题(Oculus SDK中提供了这个算法)。
至此,我们已经简单的了解了VR的图像处理过程,这里讲的非常简单,如果要深入那么每一个点都可以用一整本书来介绍。
随着你的程序变得越来越庞大,你需要处理大量的底层问题,对于这些问题最好交个游戏引擎来做。
当然,你要是非常NB,你可以自己写一个引擎,但是如果你跟我一样希望集中精力做应用层的事情,那么最好还是使用一个现成的引擎。
上一篇VR转换矩阵开发教程
下一篇VR材质贴图光照开发教程
累计评论0条
展开其余评论