在前面我已经实现了两个例子,一个是在FPGA上用纯硬件逻辑写成的类似于打地鼠的游戏,就是有一定数目的LED和与之对应的按键,每一个按键对应一个LED,这些LED随机发光,当它发光时,玩家需要按下与亮的LED对应的按键就为正确,否则错误,并且设置了等级和错误等限制,通过改变亮灯的频率来提高难度,直到游戏结束。另外一个是在FPGA上植入microblaze软核来构建SOPC,添加自己的IP核,如TFT-LCD,GPIO等,然后在上面跑软件程序,在液晶显示屏上面显示游戏画面并且通过中断来检测按键的输入并判断正确与否。
下面我们就进一步的深入来探讨一下我们的这个我们的基于Virtex-5的3D体感互动游戏设计,我们的设计就是希望你能够在游戏里面互动,进行全身心的体验和享受。这个系统整体来讲可以分为几个部分动作捕获,三维重建,整体控制。
现在动作捕获主流的有两种方式:一种就是基于多传感器(以微机电MEMS方式设计的加速度计作为目前的主流的架构和搭配陀螺仪架构成惯性量测系统,以及一系列的其他的传感器)融合的方法和基于视觉的动作捕捉的方法(主要就是用一个或者多个CCD的或者CMOS的传感器来捕捉动作,然后进行处理),
首先来探讨一下基于传感器的实现,从实现上来讲,基于传感器的方法实现起来比较简单,可靠性也很好,但是它最大的一个问题在于不能摆脱一样东西,那就是玩家手里始终要拿一个基于动作感应的“手柄”或者称为遥控器一类的东西,我们可以用无线传输技术将其与主机来分开,对于人的位置没有太大的要求,但是,你始终要挥舞这个控制器才能进行操作,这就是他的最大弊端;加速度计是基于牛顿第二理论基础之下的应用技术,根据机本的物理原则,处在一个系统内部,速度是无法进行测量的,不过其加速度却可以测量出来。如果初速度已知,那么可以通过积分计算出线性速度,进而可以计算出直线位移。如果结合陀螺仪(用来测角速度),还可以进一步对物体进行精确定位。加速度计的工作原理其实相当简单:当加速度计连同外界物体(该物体的加速度就是待测的加速度)受到外力一起进行加速运动时,惯性质量就受到惯性力的作用向相反的方向运动。而惯性质量发生的位移将会受到弹簧和阻尼器的限制,这两者之间的关系相当密切,当外界加速度固定时,惯性质量将会具有确定的位移,而外界加速度变化时(只要变化不是很快),惯性质量的位移也发生相应的变化。另一方面,当惯性质量发生位移时,传感器之间的电容就会发生相应的变化;如果测得传感器输出电压的变化,就等同于测得了惯性质量的位移。因此透过输出电压的感测就能得知外界的加速度。 |