Cocos实战:解析《捕鱼达人3》玩3D
在不久前结束的Cocos2015春季开发者大会上,现场演示的由Cocos引擎开发的3D游戏在开发者中获得了不错的反响。目前开始有少部分人尝试使用Cocos进行高阶的操作以实现3D功能,实际上,用Cocos开发3D并非高不可攀,接下来我们就从原理角度进行分析。
3D成像原理
“虚拟现实”是用设备模拟/重现人类的各种感觉,包括但不限于视、听、嗅、触、温感等,当中以视觉(偏振式3D成像)最为重要并最有可行性。
在脑电波技术突飞猛进之前,要提供“沉浸式”视觉感受的方法就只有两种:把屏幕做大,或者把眼睛与屏幕的距离缩短。很明显虚拟显示眼镜用的是后者,它在把屏幕做大的同时,将外界的光线隔绝,就会产生一种没入另外一个空间的错觉。加上三轴陀螺仪、重力感应器等体位传感器的帮助,画面就可以跟随佩戴者头部的移动而做出相应的反应,产生近似现实的视觉反馈。
怎样实现3D?
偏振式3D成像是根据人眼成像原理发明的,人眼看到的景象呈现立体感,是由于双眼所观察到的景象有略微的差别,因为瞳距(两眼球之间的距离)导致观察的物体的角度不同。
所谓偏振成像就是将两幅不同偏振态的图像送到双眼,每只眼睛只允许看到其中一幅,我们用Cocos制作3D游戏,其实就是制作这两幅图像。或者说模拟3D信号。
现在的硬件技术能帮我们做什么,我们需要做什么?
在真3D显示器出现之前,我们要做3D立体游戏一般只能用两台投影仪来实现3D效果,做为游戏的开发者我们就只需要模拟出左右半宽的两副图像就可以了。
如何用Cocos引擎模拟出3D图像?
要模拟出真实的3D立体影像,首先要知道人眼成像原理,因为我们有两只眼睛,并分开一定距离(大约150px),这样就出现了距离感。我们都知道Cocos中的摄像机是模拟人的眼睛的,一般我们在Cocos中观察场景都是创建一个摄像机,当然就没有立体感了,要模拟人的眼睛,就要创建两个摄像机,并把它们分开一段很小的距离,角度调成一样,注意不是往中间看,而是平视,人的双眼也都是平视向前的,类似于下面这样:
通过以上分析我们可以看出,使用Cocos引擎通过物理成像方式实现3D并非那么神秘,随着用户的硬件水平不断增长,我们能看到3D绝对是手游的未来趋势。但是,一味追求3D而不考虑游戏的整体效果的产品在市场上依旧是没有竞争力的。一款游戏更需要在内容上进行不断地创新,才能在推向市场后走的长远。■