显示伪三维图像的设备及方法和机器可读记录介质的制作方法

文档序号:1636812阅读:204来源:国知局
专利名称:显示伪三维图像的设备及方法和机器可读记录介质的制作方法
技术领域
本发明涉及一种用于显示从一给定视点观察到的诸如在显示的视频游戏图像的游戏角色的运动物体的伪三维图像的设备及方法,该运动物体的三维坐标和旋转角度已建立,及机器可读的记录介质,该记录介质存储用于显示这种伪三维图像的计算机程序。
迄今为止,已知有用于根据游戏者所做出的控制动作显示和控制运动物体诸如在显示的视频图像中的游戏角色的伪三维图像显示设备,以及包含有这样的伪三维图像显示设备的游戏设备。近年来已出现了采用先进的计算机图形技术的游戏设备,该计算机图形技术用于将运动物体、场景、障碍物等各种数据作为多边形数据存储,并且用于显示从特定的方向、特定视点来观察这些运动物体、场景、障碍物时的图像。该多边形数据通常至少具有对应于多边形顶点的三维坐标,而运动物体等实际上就是三维物体。然而,因为诸如CRT等显示视频图像的显示单元具有二维显示屏,所以该显示单元显示这种运动物体的图像,该图像从特定视点来观察是投影到这种二维显示屏上的图像,即伪三维地投向该二维显示屏的伪三维图像。
观察游戏图像的视点根据视频游戏设备上显示的视频游戏的内容而变化。例如;在一视频游戏中,游戏者沿着一特定路线移动一显示的角色,诸如一驾驶视频游戏中,视点固定地建立在沿着该角色前进的方向且在该角色的后方。在游戏者可以在一给定区域内相对自由地移动某一角色的视频游戏中,比如在战争游戏、体育游戏等中,视点固定于一当该角色运动时便可观察到的距离的位置,或者固定于当该角色运动时可被跟踪的位置,就好象是从一电视摄像视点观察一样。
在通常的伪三维图像显示设备中,根据运动物体的当前位置和当前运动方向来确定诸如观察角色这样的运动物体的视点和方向。这种图像观察原理对诸如体育游戏这样的视频游戏而言没有什么问题,即,既便是游戏者的视点与显示图像中的视点不同,该视频游戏也不会令游戏者感到奇怪。然而,在诸如驾驶视频游戏等视频游戏中,其中游戏者的视点最好与显示图像的视点相同,根据上面提到的图像观察原理,因为游戏者的视点与显示图像的视点有可能不同,因而游戏者会感到奇怪。
发生这种问题的原因会在以下参照一驾驶视频游戏说明。在驾驶视频游戏中,视点在某种情况下确立,以在显示屏上再现从汽车中驾驶员观察到的场景。在这种情况下,通常为了从该辆汽车上的特定位置,通过该辆汽车的前挡风玻璃来观察前面的场景而确定视点。在汽车以恒速朝确定的方向行驶的情况下,驾驶员的观察区域同显示在显示屏上的图像的区域基本上是一致的。然而,当由驾驶员驾驶的汽车转弯时,驾驶员在离心力的作用下侧向倾斜,其相对于汽车的位置发生变化,这就导致了驾驶员的观察区域同显示屏上显示的图像的区域出现偏差。
一种解决办法是模拟作用在角色诸如汽车和驾驶员上的力,并依据计算好的力来计算待设定的前面的场景的视点和方向。然而,如果要执行一个严格的模拟过程来确定某一精确的视点,那么需要考虑的参数数量会大大增加,并且计算这些力所需要的时间也会大大增加。这就会难以实现实时模拟过程。在该驾驶游戏中,因为汽车(角色)基本上在一个二维平面上运动,该角色的行为可相对容易地从物理上(动态地)模拟。然而,对于采用象飞机这样在半空中三维自由运动的视频游戏,其角色行为便不能精确模拟。
因此,本发明的一个目的是提供一种用于根据游戏者的方位通过较容易地模拟观察图像的视点和方向来显示伪三维图像的设备及方法。
本发明的另一个目的是提供一种机器可读的记录介质,该记录介质存储用来显示这种伪三维图像的计算机程序。
按照本发明的一个方面,本发明提供了一种用于显示从一给定视点观察到的运动物体的伪三维图像的设备,该运动物体的三维坐标和旋转角度已建立,该设备包括第一存储装置,用来存储该运动物体的坐标和/或旋转角度的过去值(history);视点确定装置,用于根据存储在第一存储器装置中的运动物体的坐标和/或旋转角度的过去值来确定运动物体的坐标和/或旋转角度的视点;和显示控制装置,用于产生和显示从由视点确定装置确定的坐标和旋转角度上的视点观察到的图像。
该设备还包括第二存储器装置,用于存储该视点的坐标和/或旋转角度的过去值,该视点确定装置包括用来根据存储在该第二存储装置中的视点的坐标和/或旋转角度的过去值来确定该视点的坐标和/或旋转角度的装置。
该设备还包括速度计算装置,用于计算运动物体的速度;视点确定装置包括用于还根据该速度计算装置计算出的该运动物体的速度来确定视点的坐标和/或旋转角度的装置。
该运动物体在其三维坐标已确立的领域上运动,并且该设备还包括梯度计算装置,用于计算运动物体下面领域的梯度;视点确定装备包括用来还把该梯度计算装置计算的梯度来确定视点的坐标和/或旋转角度的装置。
按照本发明的另一个方面,提供了一种用于显示从一给定视点观察到的运动物体的伪三维图像的方法,该运动物体的三维坐标和旋转角度已建立,该方法包括以下步骤存储该运动物体的坐标和/或旋转角度的过去值;根据运动物体坐标和/或旋转角度的存储的过去值来确定视点的坐标和/或旋转角度;以及产生并显示从所确定的坐标和/或旋转角度的视点看到的图像。
该方法还包括以下步骤存储视点的坐标和/或旋转角度的过去值;以及还根据存储的视点的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度。
该方法还包括以下步骤计算运动物体的速度;以及还根据计算出的运动物体的速度来确定视点的坐标和/或旋转角度。
运动物体在其三维坐标已被确立的领域上移动,并且该方法还包括以下步骤计算运动物体下面的领域的梯度;还根据计算出的梯度来确定视点的坐标和/或旋转角度。
按照本发明的再一个方面,提供了一种机器可读记录介质,该记录介质存储用于控制计算机执行显示从一给定视点观察到的运动物体的伪三维图像的过程的计算机程序,该运动物体的三维坐标和旋转角度已被建立,该计算机程序包括以下步骤存储运动物体的坐标和/或旋转角度的过去值;根据已被存储的运动物体的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度;产生并显示从所确定的坐标和/或旋转角度上的视点看到的图像。
从下面通过举例方式参照附图对本发明的一个优选实施例进行的描述中,本发明的上述及其它目的、特征和优点将变得很明朗。


图1是表示按照本发明可在飞行模拟游戏中模拟的飞行环境的概略透视图,该飞行模拟游戏是在包含有伪三维图像显示设备的飞行模拟游戏设备上进行的;
图2是该飞行模拟游戏设备的内部结构的透视图;图3A是该飞行模拟游戏设备偏动结构的局部分解透视图;图3B是该偏动结构的局部透视图;图4是该飞行模拟游戏设备主体支架的局部透视图;图5是该飞行模拟游戏设备的控制系统的框图;图6是由图5中所示的控制系统执行的功能的框图;图7和图8是说明计算视点线位段和角位移的过程的示意图;及图9是该飞行模拟游戏设备操作顺序的流程图。
如图1所示,根据本发明包含有伪三维图像显示设备的飞行模拟游戏设备将一架滑翔器H模拟为一架飞机,以使游戏者能在飞行模拟游戏中亲身体验在半空中飞行的感觉。该滑翔器H在平面上看成等腰三角形,并且有一轻重量金属框架和连接在该轻重量金属框架上的三角形布制机翼H1。
滑翔器H还具有一用来悬挂飞行员M的挂钩H2,挂钩H2连接到该轻重量金属框架上并从该框架中心部位向下伸出。该滑翔器H还包括一水平控制杆H3,该水平控制杆H3连接到该轻重量金属框架上并从其前面的部位向下伸出。由挂钩H2悬挂的飞行员M水平地向一方向或另一方向移动控制杆H3来使滑翔器H左转或右转。飞行员M也可以通过挂钩H2来改变体重从而改变悬挂的滑翔器H的方向或提高或降低滑翔器H的高度。
如图1所示,真实的飞行环境包括上升气流区域Z1、下降气流区域Z2和湍流区域Z3。当飞行的滑翔器H进入上升气流区域Z1时则上升,而当其进入下降气流区域Z2时则下降,并当进入湍流区域Z3时则变得不稳定。当在飞行环境中飞行时,飞行员M控制控制杆H3飞越平原与河流,躲过山脉,并且在湍流区域Z3中利用飞行技巧来操纵该滑翔器H以便由此享受飞滑的体验。
飞行模拟游戏设置1能使游戏者体验并享受滑翔器H的模拟飞行。飞行模拟游戏设备1被设置成用来使游戏者保持模拟在挂钩H2上的飞行员的悬挂位置的姿态,也用来显示箭头所指方向上所看到的前方和下方景物的伪三维图像。所显示的伪三维图像随游戏者与实际控制动作相类似的方式所作的控制动作而变化,因而游戏者能获得与实际直观飞行体验相同的模拟直观飞行体验。
下面将参照图2至4详细描述飞行模拟游戏设备1。
图2表示按照本发明的第一个实施例的飞行模拟游戏设备1的内部结构,游戏设备1包含有一个控制杆移动机构4。相对于飞行模拟游戏设备1的内部结构的主要方向在下文将参照为图2中箭头+X、-X所指的横向和箭头+Z、-Z所指的纵向。具体地讲,箭头-X所指的方向被参照为向左的方向,箭头、+X所指的方向被参照为向右的方向,箭头-Z所指方向被参照为向前的方向,箭头+Z所指的方向被参照为向后的方向。
飞行模拟游戏设备1包含由三维角形组件所组成的框架2;安装在框架2上部后端的控制杆3;控制杆移动机构4,控制杆3可在在其上纵向运动;用来支撑游戏者脚的主体支架5,该主体支架安装在机构2下部后端;用于显示飞行中所模拟景物的图像的显示监视器6;和控制系统(显示控制装置)7,其具有用于在显示监视器6上滚动显示图像的微型计算机。
这里用到的字眼“滚动”是指在模拟飞行中根据控制杆3的控制动作连续不断地通过显示器6所示景物的三维图像的运动。
机构2有一对安装在地板F上的横向间隔的基架21和一对分别受基架21支撑的横向间隔的L型框架22。每一个L型框架22包含一个固定于基架21之一上的水平杆22a和一个垂直地从远离基架21的水平杆22a伸出的垂直杆22b。L型框架22的垂直杆22b有与上前部的水平杆23相连接的相应上端。
水平杆22a的后端与垂直杆22b的中间部分通过一对横向间隔的中间框架24相互连接,每个中间框架24包含垂直杆24a和水平杆24b。其各个后端与垂直杆24a的相应上端连接的水平杆24b连接到相应的横向间隔直立框架25上,直立框架25的各相应下端连接到相应的水平杆22a上靠近其前端的部位。
直立框架25具有相应上端放置于与水平杆23上前部的高度基本一致的高度。直立框架25的上端和水平杆23的上前部支撑着一块基本上方形框架26,方形框架26包括前横向水平杆26a;后横向控制杆支撑板26b,该支撑板26b与前横向水平杆26a纵向间隔;以及一对横向间隔的纵向连接杆26c,该纵向连接杆26c延伸于前横向水平杆26a和后横向控制杆支撑板26b的端之间并且将其连接。连接杆26c的后端通过一对角拉条256连接到直立框架25上。相应地,基本上方形框架26借助于对角拉条256牢固支撑在直立框架25和上前部的水平杆23上。
控制杆3、控制杆移动机构4、主体支架5、显示监视器6以及控制系统7支撑在上面结构中的框架2上,正如将在下面的详细说明。
控制杆3通过纵向运动的控制杆移动机构4连接到控制杆支撑板26b上。控制杆3基本上呈U型状,从主体支撑架5的向前方向-Z来看,略微向下伸长。具体地讲,控制杆3包含有一对横向间隔的垂直棒31,其从控制杆移动机构4的两对立端向下延伸并逐渐相互远离;以及水平握持棒32,该握持棒32在垂直棒31的下端间延伸并与其连接。游戏者用双手握持握持棒32并在纵向-Z、+Z的方向上移动握持棒32,来做些用于进行飞行模拟游戏的控制动作。
控制杆移动机构4包含一对安装在控制杆支撑板26b上的横向间隔的轴承41;绕其自身轴线做角运动并可旋转地由轴承41支撑的水平轴42;多个偏动机构43,安装在控制杆支撑板26b上并沿水平轴42与轴承41相间隔,用于向水平轴42施加阻力或偏置力以抵消该轴的角运动;以及角位置传感器44,安装在控制杆支撑板26b上并同轴连接在水平轴42的左端,用于检测水平轴42的角位移。如图3A和3B所示,水平轴42包含有一对可旋转地由轴承41支撑的圆柱棒42a(仅显示一个)和一个延伸在各圆柱棒42a之间的棱柱棒42b。控制杆3的垂直棒31将其相应的上端固定到相应的水平轴42上靠近各轴承41处,以便当游戏者在纵向-Z、+Z上移动控制杆3时,水平轴42能在绕其轴做角运动。
图3A和3B中详细显示出偏动结构43之一。因为各偏动结构43彼此相同,所以下面只描述图3A和3B中显示的偏动结构43。偏动结构43这样设置,即,产生恢复力并以与参考位置的位移成比例地增加的速率来抵制应用中的角位移。具体地讲,偏动结构43包含装于控制杆支撑板26b上的槽形架43a;放在槽形架43a中的矩形横断面的外层管43b;安装在外层管43b中的矩形横断面的内层管430b;及放置于内层管道430b和外层管43b之间的4个圆柱形橡胶恢复构件43c。
内层管430b有一确定于其中的内孔,其尺寸比棱柱棒42b的尺寸略大。内层管430b和安装于其中的棱柱棒42b能相互协调地绕水平轴42的轴线旋转。
如图3B所示,放置在外层管43b中的内层430b使其四个角朝向外层管道43b的相应侧,在内层管道430b的四个外层边与外层管43b的四个角之间空出四个三角形横断面空隙。四个圆柱形橡胶恢复构件43c分别放在这四个空隙中并且紧贴内层管430b相应外侧。通过安装在内层管430b中的棱柱棒42b,水平轴42被穿过偏动结构43安装在控制杆支撑板26b上。
当游戏者握持住握持棒32(见图2)并绕握持棒32的轴线来转动控制杆3时,棱柱棒42b及相应地内层管430b使橡胶恢复构件43c塑形变形,而橡胶恢复构件43c存储了弹性恢复力。当游戏者释放握持棒32时,控制杆3在存储于橡胶恢复构件43c中的弹性恢复力的作用下自动回到它原来的位置,而此时该橡胶恢复构件43恢复原形。
与普通的螺旋弹簧不同,当水平轴42绕其轴的角位移小时,偏动结构43施加的恢复力也相对小,但是当水平轴42绕其轴的角位移增加时,偏动结构43施加的恢复力成平方增加。这种由偏动机构43所产生的成平方改变的恢复力施加给游戏者手的感觉类似于实际飞行中滑翔机中驾驶员真正体验的那种感觉。
图4详细显示出主体支架5。如图4所示,主体支架5包括主体支架框架51;腿支撑架52和安装在主体支架框架51上的大腿支撑架53;以及主体支架运动机构54,用于在横向-X、+X上移动主体支架框架51。
主体支架框架51从平面上看呈矩形,安置在框架2下部的后面并且其底部与地板F向上隔开。腿支撑架52以平板的形式配置在主体支架框架51的后面部分并且使其主板在-Z的方向上向前向下倾斜一小角度。大腿支撑架53安置在腿支架52的前面并且在-Z的方向上向前倾斜。腿支撑架52向水平面倾斜的角度要选择得使在主体支架5上的游戏者身体前倾,大腿支撑架53倾斜于水平面的角度要选择得使游戏者前倾的身体能被腿支撑架52上的游戏者的腿所承受。
大腿支撑架53有一个背面,其上支撑有一块由诸如泡沫塑料或类似的东西制成的垫53a。垫53a有一个中间垂直凹槽或沟槽53b和一对安置于中间垂直凹槽两边之一的边缘53c。当游戏者位于主体支架5上,并将其腿放在腿支撑架52上时,大腿放在各边缘53c之间的中间垂直凹槽53b中。
主体支架移动机构54用安装在框架2下部的前面的内部框架27来支撑。内部框架27包括上下各一对纵向间隔的、横向角形物27c;一对垂直间隔的、安装在横向角形物27c上并且在其间纵向延伸的上、下支撑板27a;和一对垂直间隔、固定地安装在各自支撑板27上彼此同轴的上和下轴承27b。
主体支架移动机构54包括一个可旋转地支撑在上、下轴承27b以绕其轴线作角运动的垂直轴55;一个连接其前端到各轴承27b之间的垂直轴55上的水平连接器56;及一个安装在垂直轴55上端的第二偏动结构57,垂直轴55从上轴承27b上伸出。
连接器56从垂直轴55向后延伸,伸出内部框架27到框架2下部后面的一位置。该连接器56有一个向后方向+Z向下倾斜的斜后端56a。主体支架框架51有一前端固接到该斜后端56a上。因此,主体支架框架51能绕垂直轴55在预定的角度范围内沿横向-X,+X作角运动。
第二偏动机构57基本上与偏动结构43相同。第二偏动机构57包括连到垂直支撑板571上的支撑架51a,该垂直支撑板571安装到与垂直轴55平行的上支撑板27a的前端;安装在支撑架57a中的外层管57b;及四个安装在外层管51b中的圆柱橡胶恢复构件57c。
垂直轴55在其上端具有棱柱棒55a,该上端安装在一内层管中,四个圆柱橡胶恢复构件57c放置在内层管与外层管57b之间。这样,当垂直轴55绕其轴旋转时,四个圆柱恢复构件57c发生塑形变形,存储恢复力。当主体支架框架51绕垂直轴55作角运动时,主体支架框架51的角运动通过连接板56。垂直轴55、棱柱棒55a和内层管传送到恢复构件57c上,而该恢复构件57c存储抵制主体支架框架51的角运动的恢复力。
与腿支撑架52平行并延伸到其下的斜轴58安装在连接器56的斜后端56a上且向后延伸。腿支撑架52将其下表面上支撑在固定在斜轴58上的轴承52a上,以可使腿支撑架52绕斜轴58作角运动。
支撑板571包括一个从其上端向后水平延伸的水平基座572,并且垂直轴55的棱柱棒55a具有一上端穿过水平基座572而向上凸出。第二角位移传感器59同轴地固定到棱柱棒55a凸出的上端,以检测垂直轴55,而后检测腿支撑架52的角位移。
主体支架框架51包括一对安装到其后端的横向间隔的角形物51c和一个固定到斜轴58下面角形物51c上并在其间延伸的桥形板51a。两个可提供相同的偏动力的横向间隔的垂直弹簧51b安装在腿支撑架52与桥形板51a之间,并各自位于斜轴58的每一边。垂直弹簧51b通常施加弹性偏动力以使该支撑架52保持水平姿态。当游戏者将更多的重量施于放在腿支撑架52上的一只腿上时,腿支撑架52绕斜轴58偏离其水平姿态在受重压的腿的作用下降低其位置。
各角位移传感器52c放置在腿支撑架52与桥形板51a之间,并各自放在斜轴58的每一边上,来检测腿支撑架52的角位移。
如图2中所示,显示监视器6包括一个安置在控制杆3之前和各直立框架25之间的前监视单元61,和一个位于在控制杆3和前监视单元61之下和各水平杆24b之间的低监视单元62。前监视单元61有一个朝向后面且基本上垂直的监视屏。低监视单元62有一个朝向上面且向前面-Z方向上倾的监视屏。当游戏者将腿放在腿支撑架52上、大腿放在大腿支撑架53上、并用手握住握持杆32向前面移动视线时,游戏者能观察到前监视单元61的监视屏。当游戏者向下面移动视线时,能看到低监视单元62的监视屏。
控制系统7安置在框架2下面部分的后端的限定范围中。将参照图5详细说明控制系统7。
控制系统7包括CPU(中央处理器)100;包含地址总线、数据总线和控制总线并连接到CPU 100的总线102;连接到CPU 100的图形数据产生处理器103;连接到总线102的主存储器105;连接到总线102的ROM(只读存储器)106;多边形数据存储器107;连接到总线102的纹理数据存储器108;连接到总线102的图形处理器110;连接到图形处理器110的缓冲器111;及连接到总线102的D/A(数-模转换)转换器114、115。变阻器118、119通过各自的接口116、117连接到D/A转换器114、115。变阻器118、119分别安置在角位移传感器44、59中,并具有根据由位移传感器44、59检测到的角位移而变化的各自的电阻。机器可读记录介质120连接到记录介质驱动器113上。该记录介质120存储有图像数据、音频数据以及包含有用于控制控制系统7的计算机程序的游戏数据。用作前、后监视单元61、62的显示监视单元121、122被连接到图形处理器110上。
飞行模拟游戏设备1制成一个拱形游戏机并且控制系统7的各组件都放在一个单独的场所内。但是飞行模拟游戏设备1并不限于这种拱形游戏机,也可根据它如何使用而采用不同的配置。例如,如果飞行模拟游戏设备1制造为家用型游戏机,那么显示监视单元121、122便与游戏设备上别的部分分离开来。如果飞行模拟游戏设备1是围绕一台个人电脑或工作站制造的,那么显示监视单元121、122就与这样的个人电脑或工作站的显示监视器相对应,处理器103、110与个人电脑或工作站中记录在记录介质120上或插在扩展槽中的扩展板上安装的硬件部分的游戏数据相对应,缓冲器111与主存储器105或扩展存储器(未示出)的一区域相对应。
图5中显示的各种组件将在下面详细说明。图形数据产生处理器103用作CPU100的一个协处理器。图形数据产生处理器103进行坐标变换、光源计算以及固定点的矩阵和向量的并行处理。图形数据产生处理器103的主要处理工作是坐标变换和光源计算。
按照坐标变换,根据线和角位移数据对由CPU100提供图像数据的二维或三维平面中顶点的绝对坐标数据进行处理,以确定显示区域中图像的地址,并且将所确定的地址返回到CPU100。坐标变换将在以后详细说明。按照光源计算器,图像的亮度是根据光线的向量数据、代表多边形表面的方位的方向数据、以及代表表面颜色的数据来计算的。
主存储器105包括有例如一个诸如RAM(随机存取存储器)或类似的可读/写存储器,其存储游戏程序数据,这将在以后说明。主存储器105中存储物体的线和角位移的数据以及视点的线和角位移的过去值。ROM106将游戏程序数据作为飞行模拟游戏设备1的操作系统而存储。在ROM106中的游戏程序数据与个人电脑中的BIOS(基本输入输出系统)相对应。
多边形数据存储器107包括例如诸如ROM或类似的存储介质,并存储许多多边形顶点的三维绝对坐标数据。多边形是一种多边形二维图像,该二维图像在这个优选实施例中可能呈三角或矩形形状。类似地,纹理数据存储器108包括诸如ROM或类似的存储介质,并存储结构数据和彩色调色板数据。该纹理数据包含二维图像数据,而彩色调色板数据包含用于表示纹理数据颜色的数据。
图形处理器110根据从CPU100发出的图形指令对存储在缓冲器111中的数据进行图形处理。缓冲器111具有显示区和非显示区。显示区是用于存储将被显示在显示单元121、122的显示屏上的数据的区域,而非显示区是用于暂时存储结构数据、彩色调色板数据等的区域。这些数据从多边形数据存储器107和纹理数据存储器108中通过CPU100与视频游戏过程同步地以一个周期或多个周期传送到缓冲器111的非显示区。
从CPU100发出的图形指令包括例如,用于显示线的图形指令;用于利用多边形来显示三维图像的图形指令;以及用于显示普通二维图像的图形指令。
用于显示线的图形指令包括开始显示和结束显示线的地址,以及代表线颜色和显示线的数据。显示线的图形指令由CPU100直接发送到图形处理器110。
利用多边形来显示三维图像的图形指令包括缓冲器111的显示区中的多边形顶点地址数据;代表着将被映射到多边形的纹理数据在缓冲器111中的存储位置的纹理地址数据;代表着表示纹理数据颜色的彩色调色板数据在缓冲器111中的存储位置的彩色调色板地址;以及代表着纹理数据亮度的亮度数据。这些数据中,多边形顶点地址数据是由图形数据产生处理器103根据来自CPU100的多边形绝对坐标数据、多边形运动数据以及视点运动数据来计算的。多边形顶点地址数据的确定方式将在下面详细说明。
在显示监视单元121、122的显示屏上的物体的运动是通过该物体的自身运动以及相对于该物体的视点的运动来确定的。例如如果物体运动而视点固定,那么在显示监视单元121、122的显示屏上的物体的运动与物体本身的运动相同。相反,假如物体并不移动而只有视点运动,那么在显示监视单元121、122的显示屏上的物体的运动是与视点本身的运动相同。如果“视点”这个字眼以“摄像机位置”来代替,那么上述解释会更容易理解。这样,在显示监视单元121、122的显示屏上显示该物体时,就好象是物体被一移动的摄像机拍摄成像。当或者物体或者视点描绘成按上述解释移动时,就象物体和视点都运动一样处理和显示数据。
物体的运动包含角位移和线位移。相对于视点的物体的角位移是由物体和视点的旋转角度产生的。在使用二维坐标系的数据处理中,角位移和旋转角度以矩阵表示,而在使用三维坐标系的数据处理中以3×3矩阵来表示。相对于视点的物体的线位移是由物体的位置(坐标)、视点的位置(坐标)、及视点的旋转角度所产生的。在使用二维坐标系的数据处理中,旋转角度是通过2×2矩阵表示的,而在使用三维坐标系的数据处理中则以3×3矩阵来表示。基于游戏者的控制行动并通过变阻器118、119检测的物体和视点的旋转角度存储在表格中。根据游戏者的控制行动,CPU100从该表格中读取物体和视点的相应的旋转角度,并且利用读取的旋转角度来确定物体相对于视点的角位移和线位移。
在显示区中的各边形顶点地址数据按以下方法决定响应于游戏者的控制行动,CPU100确定物体的旋转角度和位置以及视点的旋转角度和位置。根据所确定的物体和视点的旋转角度,CPU100决定物体相对于视点的角位移。根据物体的位置以及视点的位置和旋转角度,CPU100确定物体相对于视点的线位移。如果利用三维坐标系来处理物体的角位移和线位移的数据,那么它们就用3×3矩阵来表示。
物体的角位移和线位移数据连同多边形的绝对坐标数据一起被送到图形数据产生处理器103。根据所提供的物体的角位移和线位移数据,图形数据产生处理器103把多边形绝对坐标数据转换成多边形顶点地址数据。多边形绝对坐标数据按照上述处理得到。
多边形顶点地址数据表示缓冲器111的显示区中的地址。图形处理器110在缓冲器111的显示区中建立一个由3个或4个多边形顶点地址数据所表示的三角形或矩形范围,并在所建立的范围中写入纹理数据。这样的写入过程通常称作“纹理映射”。显示监视单元121、122的显示屏通过将纹理数据映射到多个组成物体的多边形上来显示该物体。
显示普通二维图像的图形指令包括顶点地址数据、纹理地址数据、彩色调色板地址数据。及代表着纹理数据亮度的亮度数据。这些数据中,顶点地址数据包括坐标数据,该坐标数据是当图形数据产生处理器103根据来自CPU100得到的线位移数据转换来自CPU100的二维空间中的顶点坐标数据时产生的。
记录介质驱动器113可包括硬盘驱动器、光盘驱动器、软盘驱动器、硅盘驱动器、盒式磁带阅读器或类似物,而记录介质120可包括硬盘、光盘、软盘、半导体存储器以及类似物。记录介质驱动器113从记录介质120中读取游戏程序数据,用ECC(纠错码)对游戏程序数据实施纠错处理,并将纠错后的游戏程序数据送到主存储器105。
D/A转换器114、115通过各自的接口116、117周期循环地从包含在角位移传感器44、59中的变阻器118、119中读取检测电压,并将检测电压转换成数字数据。由D/A转换器114、115产生的数字数据代表着游戏者的控制动作。
飞行模拟游戏设备1的基本操作将在下面说明。飞行模拟游戏设备1的详细操作将在以后参照流程图说明。
飞行模拟游戏设备1的电源开关(未示出)被打开。如果记录介质120插入记录介质驱动器113中,则CPU100指示记录介质驱动器113根据存储在ROM106中的操作系统从记录介质120中读取游戏数据。然后,记录介质驱动器113从记录介质120中读取游戏程序数据,并对游戏程序数据进行纠错处理。纠错后的游戏程序数据被提供给主存储器105。然后CPU100根据存储在主存储器105中的游戏程序数据以及游戏者输入的指令,即从D/A转换器114、115中输出信号,来执行飞行模拟游戏。具体地讲,CPU100根据游戏者输入的指令来控制图像处理和内部处理操作过程。在图像处理操作过程中,角位移数据和线位移数据以及绝对坐标数据被提供给图形数据产生发生器103,包括有缓冲器111的显示区中的地址数据和亮度数据、并由图形数据产生处理器103确定的图形指令被发出。在内部处理操作过程中,根据游戏者输入的指令来执行计算。
图6显示由图5中所显示的控制系统所执行的功能框图。当CPU100读取已从记录介质120中读取并存储在主存储器105中的游戏程序数据时,执行图6所示的一定功能。如图6所示,由CPU100执行的功能包括坐标位置检测器100a、速度计算器100b、视点计算器100c、数据计算器100d、图像处理器100e以及一对显示控制器100f。
在游戏者的控制行动下,坐标位置检测器100a计算当游戏者操作控制杆3和水平连接板56时变阻器118、119所产生的检测电压与当控制杆3的垂直棒31在垂直面上且水平连接器56与纵向-Z,+Z平行时变阻器118、119所产生的参考电压之间的差值,并且由计算出的控制行动来计算角色的线位移和角位移。速度计算器100b以向量即一个有数值有方向的量的形式,根据由坐标位置检测器100a计算出的线位移和角位移来计算角色的运动速度。
视点计算器100c根据由坐标位置检测器100a计算出的线位移和角位移、由速度计算器100b计算出的速度以及存储在主存储器105中的角色和视点的线位移和角位移的过去值来计算视点的线位移和角位移。数据计算器100d根据由坐标位置检测器100a计算出的线位移和角位移以及由视点计算器100c计算出的线位移和角位移来计算多边形顶点数据等。图像处理器100e根据由数据计算器100d计算出的多边形顶点数据等来产生图像数据。显示控制器100f根据由图像处理器100e产生的图像数据来控制显示监视单元121、122以显示图像。
图7和图8描述了用视点计算器100c来计算视点的线位移和角位移的过程。
按照本实施例,如图8所示,角色P的坐标以绝对坐标形式给出,即,坐标P(X1,Y1,Z1),该坐标位于固定原点为0的空间坐标系中,视点Q以坐标Q(x,y,z)给出,该坐标位于原点位于角色P的位置的局部坐标系中。角色P和视点Q的角位移分别以对应于空间坐标系的角位移P(Θx,Θy,Θz)、Q(θx,θy,θz)的形式给出。每个空间坐标系和局部坐标系都是称作右手系的坐标系,该右手系中有一个从游戏者来看向右延伸的+X轴,一个向上延伸的+Y轴、以及一个向游戏者延伸的+Z轴。
当坐标位置检测器100a计算坐标,该坐标能从角色的线位移和角位移立即被决定,且速度计算器100b决定角色的运动向量时,视点计算器100c按照下面的方程(1)来确定视点的坐标Q(x,y,z)
这里的向量v代表角色的速度向量,k1-k3都是正常数,Θz由下面的方程(2)计算Θzi=Θzi-1+k×sin(ω-Θzi-1)…(2)这里的Θzi代表当前计算出的角色绕Z轴的角位移,Θzi-1代表先前已算出的角色绕Z轴的角位移,ω代表腿支撑架52的角位移,而k是一个正常数。方程(2)包含有一个时间滞后因数,这是因为,由于滑翔器的操纵特征,滑翔器的转弯要稍微滞后于游戏者水平地向侧向倾斜控制杆3的水平握持棒32。
由方程(1)产生的视觉效果将在下面说明。方程x表示这样一种方式离心力作用在角色转弯,即当视点随Θz而移动时的方向上。具体地讲,因为当水平握持棒32被水平地向侧向倾斜时滑翔器向左或右转弯,所以,根据水平握持棒32的水平倾斜运动时的腿支撑架52的角位移(对应于Θz),视点侧向运动。常数k1有一个负号是因为离心力作用在与角色转弯方向相反的方向上。方程y表示视点直接放在角色后面的水平方向上。方程z表示视点放在角色后面用于得到一个清晰的开阔视野,这是因为由于角色的速度比较高,因而控制滑翔器更加困难,并且当角色的速度比较高,视点变得远离角色以表示显示的图像的速度。
同样地,视点Q的角位移Q(θx,θy,θz)由以下方程(3)给出
这里加到角位移各个分量上的下标i表示当前计算的值,下标i-1表示先前计算值,k4-k6是正常数。
方程(3)产生的视觉效果将在下面说明。方程θx用来增加一个时间滞后因数,即,仿效角色角位移施加视觉效果。另外,当角色向它飞行的前方看去时,Θz对应于上升或下降角度。如果角色滑翔过一座陡峭的山谷,则角色开始向山谷的表面下滑,并且向下看起来很自然。于是,从视点观察到的图像代表着从上面所看到的谷底。方程θy也用来增加一个滞后因数,用于仿效角色角位移的视觉效果。方程θz代表从受角色角位移决定的视点观察到的图像的倾斜。
方程θx、θy从角色的角位移与先前计算出的视点的角位移之间的差值来计算各自的时间滞后因数。然而,这样的时间滞后因数可以从角色的角位移过去值,即,一些过去已计算出的角色的角位移中算出来。然而,上述方程θx、θy具有基本上不需要存储容量的优点。
视点的坐标Q(x,y,z)算出后,角色的坐标P(X1,Y1,Z1)加到坐标Q(x,y,z)上,从而确定空间坐标系中的视点坐标Q(X2,Y2,Z2)。然后,视点的坐标被作为-X2、-Y2、-Z2提供给数据计算器100d,角位移值-θx、-θy、-θz被转换成旋转矩阵并提供给数据计算器100d。然后,数据计算器100d根据视点来计算多边形顶点数据。
图9显示出飞行模拟游戏设备1的操作顺序。每1/60秒执行图9中所显的操作顺序。当电源开关打开后,记录介质驱动器113按照存储在ROM106中的操作系统的指令从记录介质120中读取游戏程序数据,并将该游戏程序数据存储在主存储器105中。此时CPU100便能执行图6中所示的功能。图9中所示的操作顺序步骤是当由游戏程序数据表示的游戏程序被执行时执行的。
与此同时,纹理数据从纹理数据存储器108中读取并存储在缓冲器111的非显示区,并且赋以相应的纹理号。尽管实际上并非所有的纹理数据都存储在缓冲器111中,为举例目的而假定所有的纹理数据都存储在缓冲器111中。
在步骤S1中,CPU100根据来自变阻器118、119的信号来计算由游戏者所做的控制行动所产生的控制杆3和腿支撑架52的两个操纵量。然后,CPU100在步骤S2中计算两个操纵量的变化。在步骤S3中,CPU100根据在步骤S2中计算出的两个操作量的变化来计算角色的当前位置和当前方向。在步骤S4中,CPU100根据在步骤S3中计算出的角色的当前位置和当前方向来计算被观察角色的视点和方向。这样,在步骤3、步骤4中算出的角色的当前位置和当前方向,以及被观察角色的视点和方向被顺序存储在主存储器105中。在步骤S5中,根据已算出并存储在主存储器105中的角色的当前位置和当前方向以及被观察角色的视点和方向,来产生并显示图像。
按照以上所述,按照本发明的伪三维图像显示设备能够根据游戏者的方位等来模拟被观察角色的视点和方向。
被观察角色的视点和方向能够用除角色和视点的坐标和角位移以外的参数来算出。例如被观察角色的视点和方向能用角色飞行于其上的领域的梯度数据来计算出,这样当角色滑翔过一陡峭的山谷时,被观察角色的方向可以定为从上向下观察山谷的底。
尽管已详细表示和说明了本发明的一个优选实施例,但应当了解的是,在不脱离所附权利要求书范围的条件下可对本发明作各种变化和修改。
权利要求
1.一种用于显示从一给定视点观察到的运动物体的伪三维图像的设备,该运动物体的三维坐标和旋转角度已确定,该设备包括第一存储装置,用于存储运动物体坐标和/或旋转角度的过去值;视点确定装置,用于根据存储在所述第一存储装置中的运动物体的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度;及显示控制装置,用于产生和显示从由所述视点确定装置确定的坐标和/或旋转角度上的视点所观察到的图像。
2.按照权利要求书1所述的设备,还包括第二存储装备,用于存储视点的坐标和/或旋转角度的过去值;所述视点确定装置包括用于还根据存储在所述第二存储装置中视点的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度的装置。
3.按照权利要求书1或2所述的设备,还包括速度计算装置,用于计算运动物体速度;所述视点确定装置包括用于还根据由所述速度计算装置计算出的运动物体速度来计算视点的坐标和/或旋转角度的装置。
4.按照权利要求书1所述的设备,其中,所述运动物体在其三维坐标已建立的领域上运动,所述设备还包括梯度计算装置,用于计算在所述运动物体下面的领域的梯度;所述视点确定装置包括还根据由所述梯度计算装置计算的梯度来计算视点的坐标和旋转角度的装置。
5.一种显示从一给定视点观察到的运动物体的伪三维图像的方法,该运动物体的三维坐标和旋转角度已建立,该方法包括以下步骤存储运动物体的坐标和/或旋转角度的过去值;根据存储的运动物体的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度;及产生和显示从坐标和/或旋转角度已确定的视点上观察到的图像。
6.按照权利要求书5所述的方法,还包括下列步骤存储视点的坐标和/或旋转角度的过去值;及还根据存储的视点的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度。
7.按照权利要求书5或6所述的方法,还包括下列步骤计算运动物体的速度;及还根据计算出的运动物体速度来确定视点的坐标和/或旋转角度。
8.按照权利要求书5所述的方法,其中所述运动物体在其三维坐标已建立的领域上运动,该方法还包括以下步骤计算所述运动物体下方领域的梯度;及还根据计算出的梯度来确定视点的坐标和/或旋转角度。
9.一种机器可读记录介质,其存储用于控制计算机执行显示从一给定视点观察到的运动物体的伪三维图像过程的计算机程序,该运动物体的三维坐标和旋转角度已建立,所述计算机程序包括以下步骤存储运动物体的坐标和/或旋转角度的过去值;根据已存储的运动物体的坐标和/或旋转角度的过去值来确定视点的坐标和/或旋转角度;及产生并显示从坐标和/或旋转角度已确定的视点所观察到的图像。
全文摘要
一种伪三维图像显示设备,其显示从特定视点观察到的运动物体的伪三维图像,该运动物体的三维坐标和旋转角度已建立。伪三维图像显示设备具有用于存储运动物体的坐标和/或旋转角度的过去值的存储器;用于根据存储在存储器中的运动物体的坐标和/或旋转角度的过去值来确视点的坐标和/或旋转角度的视点计算器;及用于产生和显示从由视点计算器确定的坐标和/或旋转角度上的视点所观察到的图像的数据计算器。
文档编号A63F13/00GK1192558SQ9810387
公开日1998年9月9日 申请日期1998年2月17日 优先权日1997年2月18日
发明者矢野治夫, 和田哲也 申请人:科乐美股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1