计算角色距离和将多边形投射于多边平面的视频仿真系统的制作方法

文档序号:6413765阅读:206来源:国知局
专利名称:计算角色距离和将多边形投射于多边平面的视频仿真系统的制作方法
技术领域
本发明涉及视频仿真系统,尤其涉及计算在显示监视器屏幕上的伪三维空间中显示的角色之间距离的方法和装置、将一多边形投射到在显示监视器屏幕上的伪三维空间中显示的多边形平面上的方法和装置、以及采用这样装置的视频仿真器。
近年来,流行各种各样的能够在显示监视器屏幕上的伪三维空间中显示多个角色的游戏装置。为了使得这些游戏装置上玩的视频游戏更吸引人,要求这些游戏装置具有包括下面的功能在内的多个功能能够判断显示的不同角色是否互相碰撞,例如,一移动的角色如空中飞行物是否碰到或撞到一固定角色如山峰或地面。为此,通常采用粗略地将移动角色的图像数据和固定角色的图像数据相互比较,来判断角色之间的碰撞。
最近,出现了对具有高速数据处理能力和高分辨率图像显示器的游戏装置的需求。为满足这种需求,现在的游戏装置能够清楚地显示互相逐渐接近的移动和固定角色。然而,常规的粗略数据比较处理跟不上现在游戏装置具有的清楚显示移动和固定角色的能力。具体地讲,虽然实际上一移动角色没有碰到或撞到一固定角色,粗略数据比较处理也许判断成该移动角色碰撞到该固定角色;或者,相反地,虽然实际上一移动角色撞到或碰到一固定角色,粗略数据比较处理也许判断成该移动角色没有碰撞到该固定角色。当出现这种判断错误时,由于判断结果明显不同于在显示监视器屏幕上显示的内容,游戏者会感到困惑或不安。
有些能够在显示监视器屏幕上的伪三维空间中显示多个角色的仿真游戏装置,它们配备了多个道具,如轿车、滑雪板、冲浪板、摩托艇等。轿车和摩托艇仿真游戏装置具有包括一驾驶座、一方向盘、一加速踏板、和一刹车踏板在内的多个部件。滑雪板仿真游戏装置具有放置双脚的滑板和两个撑杆。冲浪板仿真游戏装置具有放置双脚的踏板。在这些仿真游戏装置上玩视频游戏的游戏者操作上述部件,控制在显示监视器屏幕上显示的角色,以便(例如)超越在显示监视器屏幕上显示的前面的对手、避开在显示监视器屏幕上显示的障碍物(包括由计算机控制的轿车和赛艇)。
另一些仿真游戏装置能在显示监视器屏幕上的伪三维空间中显示一飞行物,并能使游戏者控制所显示的飞行物在伪三维空间中飞行。这样设计的仿真游戏装置比上述仿真游戏装置更能激发游戏者的兴趣。如果能将一飞行物的影子投射到另一显示的物体如所显示的地面上,这种仿真游戏装置就更吸引人了。
对于包括仿真游戏装置的仿真器来说,上面所述的问题和需求也同样存在。
本发明的一个目的是提供一种计算显示在显示监视器屏幕上伪三维空间中的移动角色和固定角色之间距离的方法,以准确判断该移动角色是否碰撞到该固定角色。
本发明的另一个目的是提供一种计算显示在显示监视器屏幕上伪三维空间中的移动角色和固定角色之间距离的装置,以准确判断该移动角色是否碰撞到该固定角色。
本发明的再一个目的是提供一种采用上述距离计算装置的仿真器。
本发明的又一个目的是提供一种将表示飞行物影子的多边形投射到例如表示地表地形角色的多边形上的方法。
本发明的还一个目的是提供一种将表示飞行物影子的多边形投射到例如表示地表地形角色的多边形上的装置。
本发明的更一个目的是提供一种采用上述多边形投射装置的仿真器。
本发明的一个特点是,所提供的计算显示在显示监视器屏幕上伪三维空间中的移动角色和在该空间中显示的由多个多边形组成的固定角色之间距离的计算方法,包括下述步骤确定包含表示移动角色位置的一平面坐标点的一多边形;计算在该移动角色和所确定的多边形之间的距离。
本发明的另一个特点是,所提供的计算显示在显示监视器屏幕上伪三维空间中的移动角色和在该空间中显示的由多个多边形组成的固定角色之间距离的计算装置,包括第一装置,用于确定包含表示移动角色位置的一平面坐标点的一多边形;第二装置,用于计算在该移动角色和由所述第一装置确定的多边形之间的距离。
本发明的再一个特点是,所提供的仿真器包括显示监视器,用于将移动角色和固定角色显示在显示监视器屏幕上的伪三维空间中;控制器,由游戏者操控;检测器,用于检测由控制器产生的控制动作;计算器,用于根据来自检测器的检测信号,计算在显示监视器屏幕上移动角色的位置;以及计算装置,用于计算移动角色和固定角色之间的距离。所述计算装置包括第一装置,用于确定包含由所述计算器计算的表示移动角色位置的一平面坐标点的一多边形;第二装置,用于计算在该移动角色和由所述第一装置确定的多边形之间的距离。
本发明的又一个特点是,所提供的计算在显示监视器屏幕上伪三维空间中移动显示的角色和在该空间中显示的由多个多边形组成的多边模型之间距离的计算方法,包括下述步骤在伪三维空间中建立一假想平面,并确定位于当所述角色和多边模型的各多边形投射到假想平面上时所述角色所投射到的一多边图形内部或外围的某一多边形;以及,计算所确定的该多边形和该角色之间的距离。
本发明的还一个特点是,所提供的计算在显示监视器屏幕上伪三维空间中移动显示的角色和在该空间中显示的由多个多边形组成的多边模型之间距离的计算装置,包括多边形确定器,用于在伪三维空间中建立一假想平面,并确定位于当所述角色和多边模型的各多边形投射到假想平面上时所述角色所投射到的一多边图形内部或外围的某一多边形;距离计算器,用于计算多边形确定装置所确定的该多边形和该角色之间的距离;以及,碰撞判断器,用于根据由距离计算器计算的距离,判断角色和多边模型是否已相互碰撞。
本发明的更一个特点是,所提供的仿真器包括游戏者可观看的显示监视器;显示控制器,用于将移动角色和有多个多边形构成的多边模型显示在显示监视器屏幕上的伪三维空间中,就象从一预定视点上看去的那样;控制器,由游戏者操控;检测器,用于检测由控制器产生的控制动作;计算器,用于根据来自检测器的检测信号,计算在显示监视器屏幕上移动角色的位置;以及计算装置,用于计算移动角色和多边模型之间的距离。所述计算装置包括多边形确定器,用于在伪三维空间中建立一假想平面,并确定位于当所述角色和多边模型的各多边形投射到假想平面上时所述角色所投射到的一多边图形内部或外围的某一多边形;距离计算器,用于计算多边形确定装置所确定的该多边形和该角色之间的距离;以及,碰撞判断器,用于根据由距离计算器计算的距离,判断该角色和该多边模型是否已相互碰撞。
本发明的又再一个特点是,所提供的利用旋转矩阵将表示一标记的多边形投射到表示在显示监视器屏幕上显示的伪三维空间中一角色的一多边形平面上的方法,包括下面的步骤确定在该多边形平面上的一预定位置与该多边形平面垂直的法向量;确定在该多边形平面中包含的与该法向量垂直的第一向量;确定在该多边形平面中包含的与该法向量和该第一向量均垂直的第二向量;以及,由法向矩阵、第一矩阵和第二矩阵确定旋转矩阵。
本发明的另一个特点是,所提供的利用旋转矩阵将表示一标记的多边形投射到表示在显示监视器屏幕上显示的伪三维空间中一角色的一多边形平面上的装置,包括第一装置,用于确定在该多边形平面上的一预定位置与该多边形平面垂直的法向量;第二装置,用于确定在该多边形平面中包含的与该法向量垂直的第一向量;第三装置,用于确定在该多边形平面中包含的与该法向量和该第一向量均垂直的第二向量;以及,第四装置,用于由法向矩阵、第一矩阵和第二矩阵确定旋转矩阵。
本发明的又另一个特点是,所提供的仿真器包括显示监视器,用于将移动角色和固定角色显示在显示监视器屏幕上的伪三维空间中;控制器,由游戏者操控;检测器,用于检测由控制器产生的控制动作;计算器,用于根据来自检测器的检测信号,计算在显示监视器屏幕上移动角色的位置;以及投射装置,用于利用旋转矩阵,将一多边形投射到表示固定角色的一多边形平面上。该投射装置包括第一装置,用于确定在该多边形平面上的一预定位置与该多边形平面垂直的法向量;第二装置,用于确定在该多边形平面中包含的与该法向量垂直的第一向量;第三装置,用于确定在该多边形平面中包含的与该法向量和该第一向量均垂直的第二向量;以及,第四装置,用于由法向矩阵、第一矩阵和第二矩阵确定旋转矩阵。
通过以下参照附图对本发明的优选实施例的举例说明,本发明的上述和其它目的、特点和优点会更加清楚。附图中

图1为显示监视器屏幕上显示的伪三维空间中飞行仿真图像的示意视图,该飞行仿真视频游戏是在采用本发明原理的飞行仿真装置上进行的;图2示出由飞行仿真游戏装置模拟的滑翔器的飞行路线;图3是飞行仿真游戏装置内部结构的透视图;图4是飞行仿真游戏装置的控制系统的方框图;图5是所显示的多边地表地形的平面图6是所显示的多边地表地形的透视图;图7是控制系统的用于判断滑翔器即移动角色是否碰到或撞到一障碍物即固定角色的操作顺序的流程图;图8示出在滑翔器上的一特定点和由三角形形成的多边形之间位置的关系。
图9示出显示监视器屏幕上显示的伪三维空间中在地面上形成的滑翔器影子的示意视图,该飞行仿真视频游戏是在所述飞行仿真装置上进行的;图10是控制系统的用于在地面上形成滑翔器影子的操作顺序的流程图;图11是说明确定与在本地坐标系中建立的多边形平面垂直的法向量、与该法向量垂直的第一向量、与该法向量和第一向量均垂直的第二向量的处理过程的示意图。
如图1所示,采用本发明原理的飞行物游戏装置1(见图3)模拟作为飞行物的滑翔器H,使游戏者在飞行仿真视频游戏中能够体验在空中滑翔的实际感觉。滑翔器H的平面图为等腰三角形的形状,滑翔器H具有轻金属框架和能附着在该轻金属框架上的布料制的三角形翼H1。
滑翔器H还具有用于支撑飞行员M的悬挂杆H2,悬挂杆H2与轻金属框架中部连接并从轻金属框架中部向下伸展。滑翔器H还包括一水平控制杆H3,该水平控制杆H3与轻金属框架前段连接并从轻金属框架前段向下伸展。被悬挂杆H2悬挂的飞行员M水平地在某个方向移动控制杆H3,使滑翔器H向左或向右。飞行员M也能改变滑翔器H的方向或通过在悬挂杆H2上移动身体重心来提升或降低滑翔器H。
如图1所示,实际的飞行环境包括上升气流区、下降气流区和湍流区。飞行中的滑翔器H在进入上升气流区时被提升,在遇到下降气流区时下降,在进入湍流区时会不稳定。在实际飞行环境的飞行中,飞行员M控制控制杆H3,来飞过平地N和湖泊L,避开山峰MT,在湍流区利用飞行技术操纵滑翔器H,来享受滑翔的乐趣。
飞行仿真游戏装置1能够使游戏者体验和享受到在显示监视器屏幕上伪三维空间中滑翔器H的模拟飞行。飞行仿真游戏装置1被设计成使游戏者保持一姿势,以模拟在悬挂杆H2上的飞行员M的悬挂位置,并且还显示如图1所示的前景和后景的伪三维图像。所显示的伪三维图像随着游戏者的与实际控制动作相似的控制动作而变化,以使游戏者能够获得与实际飞行视觉体验相似的仿真飞行视觉体验。
在飞行仿真游戏装置1中,游戏者打算使滑翔器H从起始点ST沿飞行路线HK滑行到目的地GR,由附近存在的山峰和森林所限制的飞行路线HK如图2所示。图2所示的飞行路线HK被分成多个连续的部分或区域。在进行飞行仿真视频游戏的过程中,要检测或监查滑翔器H当前所处的部分和区域,并在显示监视器屏幕上显示与所检测或监查的部分或区域相对应的伪三维图像。
图3示出采用本发明原理的飞行仿真游戏装置1的内部结构。在下面,飞行仿真游戏装置1内部结构依照的基本方向,即由箭头+X、-X表示的横向,由箭头+Y、-Y表示的纵向,参见图2。具体说,箭头-X表示的方向是朝左的方向,箭头+X表示的方向是朝右的方向,箭头-Y表示的方向是朝前的方向,箭头-Y表示的方向是朝后的方向。
飞行仿真游戏装置1包括框架2,它由三维角铁件制成;控制杆3,安装在框架2的上部尾端;控制杆移动机构4,它支撑控制杆3,以沿纵向移动;身体支座5,用于支撑游戏者的大腿,它位于框架2下部尾端;显示监视器6,用于显示飞行中模拟场景的图像;以及,控制系统7,用于卷动在显示监视器6上显示的图像。
框架2具有一对安装在地板F上的横向间隔的底撑21和一对横向间隔的L形架22,它们分别由底撑21支撑。L形架22的顶端分别与前上水平梁23相连接,所以,它们稳固地被前上水平梁23保持在直立的状态。
L形框架22分别与一对横向间隔的中档24连接。中档24位于L形框架22直立段的后面,它们分别与横向间隔的直柱25相交接。直柱25位于L形框架22纵向中段的稍微靠前的位置。
直柱25的顶端分别位于基本上与前上水平梁23的高度相等的位置。直柱25的顶端和前上水平梁23上支撑一近正方形框26。控制杆3、控制杆移动机构4、身体支座5、显示监视器6和控制系统7由上述结构的框架2支撑,以下将给出进一步的说明。
控制杆3通过控制杆移动机构4附着在框26的控制杆支撑板26a上,以沿纵向移动。控制杆3的形状基本上是U形,但从身体支座5朝前的方向-Y看去有些向下扩大。具体地讲,控制杆3包括一对横向间隔的垂棒31,从控制杆移动机构4的相对面向下延伸并相互间逐渐拉开距离;水平握杆32,沿垂棒31的底端之间延伸并与之相连。游戏者双手握握杆32并沿纵向-Y,+Y移动握杆32,以发出用于进行飞行仿真游戏的控制动作。
控制杆移动机构4包括一对横向间隔的支承41,它们安装在控制杆支撑板26a上;水平轴42,由支承41支撑转动,以沿其轴线作旋转移动;多个偏移构件43,安装在控制杆支撑板26a上并在支承41之间的水平轴42上间隔开,用于将旋转移动的受力传给水平轴42;转动角传感器44,如变阻器、电位计等,安装在控制杆支撑板26a上并与水平轴42的左端共轴连接,用于检测水平轴42移动的角度。控制杆3的垂棒31的两个顶端固定在水平轴42上的靠近两个支承41的部分,使得游戏者沿纵向-Y、+Y移动控制杆3时,水平轴42能够沿其轴线转动。
身体支座5包括身体支座架51、身体支座架上安装的小腿托52、大腿垫53、以及用于沿横向-X、+X移动身体支座架51的身体支座移动机构54。身体支座架51的俯视平面形状是矩形,其位于框架2底端后面,它的底部与地板F之间逐渐向上间隔。小腿托52是一平板,设置在身体支座架51的后部,其总体平面沿前向-Y向下倾斜一小角度。大腿垫53位于小腿托52的前面,并沿前向-Y向上倾斜。小腿托52与水平面相比倾斜角度的大小,应使身体支座架5上游戏者的身体向前倾斜。大腿垫53与水平面相比倾斜角度的大小,应使向前倾斜的游戏者的身体能够由小腿托52上游戏者的小腿支撑住。
大腿垫53的背面上支撑有软材料如泡沫塑料等制成的衬垫53a。衬垫53a具有中部垂直凹陷53b和一对设置在中部垂直凹陷53b两侧的侧脊53c。当游戏者将其小腿放到小腿托52并使身体定位在身体支座5上时,其大腿就被侧脊53c之间的中部凹陷53b嵌住。
身体支座移动机构54由设置在框架2底端前区的内框27支撑。身体支座移动机构54包括垂直轴55,由内框27支撑转动,用于沿其轴线旋转移动;和偏移构件57,安装在垂直轴55上,用于将旋转移动的受力传给垂直轴55。转动角传感器59,如变阻器、电位计等,与垂直轴55的顶端共轴连接,用于检测垂直轴55的移动即小腿托52移动的角度。在小腿托52底下设置了两个横向间隔的螺旋弹簧(未示出),用于产生偏移弹力使小腿托52保持正常的水平状态。当在小腿托52上游戏者将身体重心偏向某一小腿时,小腿托52偏离水平状态,下压其受重压的腿下的部分。
显示监视器6包括前视监视器单元61,位于直柱25之间控制杆3之前;俯视监视器单元62,位于中档24之间控制杆3和前视监视器单元的下面。前视监视器单元61的监视器屏幕朝后,并大致垂直放置。俯视监视器单元62的监视器屏幕朝上,并沿前向-Y向上倾斜。当游戏者将小腿放入小腿托52、将大腿靠上大腿垫53、并且手握握杆32向前看时,游戏者能够看到前视监视器单元61的监视器屏幕。当游戏者向下看时,他能看到俯视监视器单元62的屏幕。
控制系统7位于框架2底端尾部中的空间内。下面将参见图4详细描述控制系统7。图4中所示的控制系统7用于控制在显示监视器单元61、62上显示的图像。实际上讲,控制系统7根据控制杆3绕水平轴42的转动、小腿托52和大腿垫53绕垂直轴55的转动,来控制显示的图像。
如图4所示,控制系统7包括CPU(中央处理器)70、存储用于控制显示监视器6上图像显示的控制程序的ROM71、以及与微型计算机70相连用于暂时存储处理数据的RAM72。控制系统7根据转动角传感器44、59的检测信号在显示监视器单元61、62上显示伪三维图像。控制系统7还具有存储器73、74,如磁盘、光盘、ROM等,用于存储代表要在前视和俯视显示监视器单元61、62上显示的前视场景和俯视场景的数据。这些模拟的前视场景和俯视场景可以包括,例如,从模拟滑翔器进行模拟飞行过程的出发点(山顶等)和模拟飞行的游戏者视点水平看去的水平广角视场内的山峰和其周围区域的场景。
在模拟场景中有包括如图5和6所示的多边地表地形PT的固定角色。多边地表地形PT包含滑翔器起飞的山峰、其它山峰和地面。存储器73、74存储了一些多边形顶点坐标和待投射到这些多边形上的纹理图案的坐标的相关图像数据,这些多边形是从作为滑翔器障碍物的固定角色中分出的。这些坐标沿三维坐标系统的X、Y、和Z轴给出。图5示出了多边地表地形PT的平面图。图6示出了多边地表地形PT的透视图。多边地表地形PT包括垂直和水平排列的多个方块(平面图形)PB。每个方块PB包括多个三角形PL,其形状为正方形,每一边对应4096个象素(X或Z轴坐标)。
存储器73还存储作为移动角色的滑翔器的多边形顶点坐标和待投射到这些多边形上的纹理图案的坐标的相关图像数据。CPU70从存储器73中读出由游戏者操作的滑翔器的图像数据,并在前视显示监视器单元61上显示滑翔器的图像,就象从紧挨着滑翔器后的视点观察的一样。滑翔器由游戏者操作来飞越图5和图6中所示多边地表地形PT中包含的峡谷,而不会碰到或撞到山体或地面。
CPU70还具有计算当前视点和游戏者当前视线的功能,这要根据转动角传感器44检测的电压和转动角传感器59检测的电压,这两个电压分别代表了控制杆3动作的角偏移和身体支座5的小腿托52动作的角偏移。具体说,CPU70包括多个功能块,如一操作量计算器701,用于计算随控制控制杆3和身体支座5动作时基准电压和当前电压之间的电压差,基准电压是控制杆3位于垂直面的基准位置且身体支座5也位于与纵向-Y、+Y平行的基准位置上时转动角传感器45、59检测的电压,当前电压是当控制杆3绕水平轴42转动、身体支座5绕垂直轴55转动时转动角传感器44、59检测的电压;一变化计算器702,用于根据由操作量计算器701计算的控制动作,计算从先前计算的视点和视线到游戏者当前视点和视线之间的变化;以及,一加法/减法器单元703,用于将先前计算的视点和视线加上或减去计算出的变化,CPU70每1/60秒执行操作量计算器701、变化计算器702和加法/减法器703的功能,从而连续计算视点和视线。视点对应于在模拟飞行中游戏者的高度,视线对应于在模拟飞行中游戏者的当前方向,该方向相对于在当前模拟飞行过程中模拟滑翔器出发时的方向。
CPU70还包括一多边形计算器704,用于根据计算出的视点和视线数据,计算要显示在显示监视器单元61、62上多边形的显示位置、大小和角偏移的数据;以及,一图像处理器705,用于将计算出的所述数据映射到从存储器73、74读出的多边形上,将从存储器73、74读出的纹理图案投射到这些多边形上,并将这些多边形数据和阴影数据一起提供给显示数据存储器75、77。CPU70还包括数据判断单元706,用于根据由多边形计算器704计算的显示位置,判断所显示滑翔器是否碰到或撞到障碍物。
控制系统7还包括第一显示控制器76,用于每1/60秒从显示数据存储器75给前视监视器单元61提供前视场景图像数据;第二显示控制器78,用于每1/60秒从显示数据存储器77给俯视监视器单元62提供俯视场景图像数据。
于是,当游戏者从控制杆3和身体支座5的基准位置操作它们时,根据由CPU70周期性计算出的游戏者的视点和视线,前视和俯视监视器单元61、62上显示的前视和俯视模拟图像连续地在横向和纵向上卷动。
前视和俯视模拟图像被转换为伪三维图像显示在前视和俯视监视器单元61、62上,使游戏者随着模拟滑翔器的上升、下降和转向,看到类似于实际中的各种三维物体和障碍物,并且这些物体和障碍物也随着变化它们的取向。此外,因为模拟图像是卷动的,所以用于高速存储要显示的连续图像数据的显示数据存储器75、77的存储容量可以相对较小。
显示在前视和俯视监视器单元61、62上的模拟图像,根据控制杆3和身体支座5的控制动作而卷动,这将在以下说明。当游戏者向前推控制杆3时,在模拟飞行中游戏者被提升,使得在前视监视器单元61上显示的前视模拟图像向下卷动,并且俯视监视器单元62上显示的俯视模拟图像变小。相反地,当游戏者向后拉控制杆3时,在模拟飞行中游戏者被降低,使得在前视监视器单元61上显示的前视模拟图像向上卷动,并且俯视监视器单元62上显示的俯视模拟图像变大。
当游戏者向右移动身体支座5时,在模拟飞行中游戏者向左转,使得在前视监视器单元61上显示的前视模拟图像向右卷动,并且俯视监视器单元62上显示的俯视模拟图像也向右卷动,而大小不变。相反地,当游戏者向左移动身体支座5时,在模拟飞行中游戏者向右转,使得在前视监视器单元61上显示的前视模拟图像向左卷动,并且俯视监视器单元62上显示的俯视模拟图像也向左卷动,而大小不变。
当游戏者同时移动控制杆3和身体支座5时,分别在前视和俯视监视器单元61、62显示的除了滑翔器以外的前视和俯视模拟图像,相对于前视和俯视监视器61、61的水平和垂直轴,倾斜地卷动。
下面,将参照图7描述控制系统7的用于判断滑翔器是否碰到或撞到障碍物的操作过程。
在步骤S1中,确定多边地表地形PT的方块PB,此方块PB对应于在X-Z平面中滑翔器H上的某点P(坐标为PX,PY,PZ),例如滑翔器H上显示的飞行员的腰部,即位于点P正下方的方块PB。通过用方块PB的每一侧上的长度4096去除点P在X-Z平面上的坐标PX,PZ而得到的商,来确定在点P正下方的这一位置。点P的该位置总是由控制系统7根据游戏者通过控制杆3等所做的控制动作来检测的。
然后,在步骤S2中,确定投置在由步骤S1中所确定的方块PB中的某个多边形PL,多边形PL对应于在X-Z平面中的某点P,即多边形PL位于点P正下方。具体说,按以下方式确定这样的多边形PL如图8所示,假设多边形PL是一三角形ΔOAB。如果从参考顶点O到点P的向量由p表示,从参考顶点O到参考顶点A的向量由a表示,从参考顶点O到参考顶点B的向量由b表示,则向量p可表示为p=(s×a)+(t×b),其中s,t分别是向量a,b的系数。如果满足s≥0,t≥0,s+t≤1这三个条件,则点P就处于三角形ΔOAB的边线上或内部。因此,满足上面这三个条件的多边形就是多边形PL。
系数s,t由下式表示s=bx×Pz-Px×bzbx×az-ax×bz-----(1)]]>t=az×Px-Pz×axbx×az-ax×bz----(2)]]>其中,aX是向量a沿X轴的分量,aZ是向量a沿Z轴的分量,bX是向量b沿X轴的分量,bZ是向量b沿Z轴的分量。
如果满足SIGN(1)×SIGN(2)≥0,SIGN(3)×SIGN(4)≥0,以及ABS(1+3)≤ABS(2),其中SIGN(1)表示表达式(1)中分子的正负号(正或负),SIGN(2)表示表达式(1)中分母的正负号(正或负),SIGN(3)表示表达式(2)中分子的正负号(正或负),SIGN(4)表示表达式(2)中分母的正负号(正或负),ABS(1+3)表示表达式(1)的分子与表达式(2)的分子之和的绝对值,ABS(2)表示表达式(1)的分母的绝对值,则满足上述三个条件。
接下来,在步骤S3,根据所确定多边形PL上法向量n和三角形ΔOAB的参考顶点O,来计算在点P和所确定的多边形PL平面之间的距离y。具体说,如果该法向量n由分别沿X,Y,Z轴的分量(nX,nY,nZ)表示,参考顶点O分别由沿X,Y,Z轴的分量(OX,OY,OZ)表示,则距离y可根据方程y=nX(PX-OX)+nY(PY-OY)+nZ(PZ-OZ)来确定。在一表格中可根据各多边形来存储法向量n,或可根据三角形ΔOAB的顶点坐标来确定法向量n。在上述方程中,包含多边形PL的平面上的任意点均可用作参考顶点O。上述步骤S1、S2、S3由多边形计算器704执行。
此后,在步骤S4,确定在步骤S3得到的距离Y是否为负值。如果距离y为负,则判断出点P即滑翔器H已碰到或撞到一障碍物,并在步骤S5发出一碰撞信号。如果距离y不为负,则判断出点P即滑翔器H尚未碰到或撞到一障碍物,并在步骤S6发出一无碰撞信号。如果发出碰撞信号,则自动显示滑翔器H落地或反弹、而不理睬游戏者利用控制杆3等做出的控制动作。如果发出无碰撞信号,则根据游戏者利用控制杆3等做出的控制动作,控制滑翔器H。步骤S4、S5、S6由数据判断器706执行。
游戏者可以连续控制控制杆3等来降低滑翔器H,而不顾发出的碰撞信号。在此情况下,滑翔器H沿Y轴的位置根据转动角传感器44检测的向下位移来递增,从而防止滑翔器H落到多边形之外。
除了在步骤S3计算距离y以外,还可以根据下面的处理来判断滑翔器H是否碰到或撞到一障碍物由于作为多边形PL的三角形ΔOAB的平面可以用下式表示ax+by+cz=d,将点P的坐标PX,PZ代入该式中的x,y,以计算三角形ΔOAB平面上y的值。如果点P的坐标PY与计算出的三角形ΔOAB平面上y的值相同,则判定滑翔器H已碰到或撞到一障碍物。如果PY-y的差为正,则判定滑翔器H尚未碰到或撞到一障碍物。因为计算三角形ΔOAB平面上的y值基本等于计算距离y(=PY-y),所以计算三角形ΔOAB平面上的y值就当作计算距离y。
多边形PL不只限于三角形,它们可以是包括矩形的其它的多边形。滑翔器H上特定点P不一定位于滑翔器H飞行员的腰部,它可以位于如滑翔器H滑翼的两个端点上、或分别位于滑翔器H飞行员的腰部和滑翼的两个端点上。根据在多个位置上建立的特定点P,可以以类似于操控实际的滑翔器的方式,判断滑翔器H是否碰到或撞到一障碍物。
飞行仿真游戏装置1还在显示监视器6上显示滑翔器H的影子,以使游戏者在操控滑翔器时看到它。
为了显示滑翔器H的影子,存储器73还存储了将影子图像投射到地面上所需要量的多边形顶点坐标和要投射到这些多边形上的纹理图案的相关图像数据。存储器74还存储了将影子图像投射到地面上所需要量的多边形顶点坐标和要投射到这些多边形上的纹理图案的相关图像数据。
滑翔器H的影子要通过在滑翔器H正上方建立的光源,投射到滑翔器H正下方的地面上。为了简化图像处理过程,将滑翔器H的影子显示为圆圈。如上所述,随着游戏者操控滑翔器,CPU70从存储器73读出滑翔器H的图像数据,并在前视显示监视器单元61上显示滑翔器图像,就好象紧接在滑翔器后的视点上看到的一样。与此同时,CPU70还从存储器73或存储器74读出滑翔器H影子的图像数据,并在前视或俯视显示监视器单元61、62上显示着的地面上显示滑翔器影子。具体说,当滑翔器高飞时,在俯视显示监视器单元62上显示滑翔器影子,而当滑翔器H要着陆时,在前视显示监视器单元61上显示滑翔器影子。图9给出了所显示的滑翔器H影子K。
第一显示控制器76每1/60秒从显示数据存储器75向前视显示监视器单元61提供前视图像数据,这包括滑翔器和其影子的图像数据。第二显示控制器78每1/60秒从显示数据存储器77向俯视显示监视器单元62提供俯视图像数据,这包括滑翔器影子的图像数据。
以下,将参照图10,描述用于在地面上形成滑翔器影子的控制系统7的操作过程。如上所述,滑翔器H的影子要通过在滑翔器H正上方建立的光源,投射到滑翔器H正下方的地面上。
图10中所示操作过程包括与图7中所示的步骤S1、S2相同的步骤S1、S2。因此,在下面没有说明步骤S1、S2。
在步骤S2之后,在步骤S13,确定在点P处所确定多边形PL的法向量n。具体说,如图11所示,由三角形ΔOAB顶点来确定作为多边形PL的三角形ΔOAB在点P’处的法向量n。所确定的法向量n由坐标(nX,nY,nZ)表示。法向量n是归一化的,它可从存储与各多边形相应的法向量的表格中读出。
然后,如图11所示,在步骤S14,将建立具有X、Y、Z轴的本地坐标系,所确定的法向量n沿垂直本地坐标轴(Y轴)伸展,确定与沿Y轴伸展的法向量n垂直的第一向量。第一向量可以沿本地坐标系的例如X轴伸展。因为滑翔器H的影子为圆圈,它不受Y轴旋转的影响,如果假定沿X轴的第一向量由X=(XX,XY,XZ)表示,且三角形ΔOAB的两个顶点A,B分别由A=(AX,AY,AZ)和B=(BX,BY,BZ)表示,则第一向量X可被确定为XX=BX-AX,XY=BY-AY,XZ=BZ-AZ。第一向量X也是归一化的。还可以由包括多边形PL的平面上的任意两点(AX,AY,AZ)和(BX,BY,BZ)来确定第一向量X,而不用顶点A,B。
此后,在步骤S15,确定与法向量n和第一向量X均垂直的第二向量。第二向量可以沿本地坐标系的例如Z轴伸展。第二向量可以由法向量n和第一向量X的外积来确定。具体说,如果第二向量由Z=(ZX,ZY,ZZ)表示,则它可被确定为ZX=XY×nZ-XZ×nY,ZY=XZ×nX-XX×nZ,ZZ=XX×nY-XY×nX。第二向量Z也是归一化的。
然后,在步骤S16,由法向量n、第一向量X和第二向量Z,确定表示向任意平面转动的旋转矩阵。具体说,旋转矩阵是由上述三个向量构成的如下矩阵XxnxZxXynyZyXznzZz----(3)]]>最后,在步骤S17,利用上述旋转矩阵,将形成滑翔器H影子的多边形投射到多边形PL平面上。具体说,从存储器73或存储器74中读出形成滑翔器H影子的多边形顶点的图像数据,利用旋转矩阵,将形成滑翔器H影子的多边形显示在多边形PL的平面上。在多边形PL平面上显示的滑翔器H的影子要压住与影子数据一起显示的多边形数据的图形。如果滑翔器H的影子是半透明的纹理图案,则可看到在影子之下的地表地形。步骤S1、S2、S13~S16由多边形计算器704执行,步骤S17由图像处理器705执行。
虽然说明了圆圈形状的滑翔器H影子,但它可以是其它形状,如类似于滑翔器H的形状。
在上述实施例中,滑翔器H是移动角色,形成其影子的多边形被投射在固定角色的多边平面上。然而,投射到固定角色的多边平面上的多边形不限于移动角色的影子,它们还可以是与移动角色有关的标记。
投射到固定角色的多边平面上的多边形还可以是与固定角色有关的标记,如机枪扫射的弹痕或炸弹在地面上形成的洞。形成影子或标记的多边形所投射到的多边形不限于地表地形,它可以是除地表地形或移动角色以外的其它固定角色。
虽然结合采用本发明的飞行仿真游戏装置1展示和说明了本发明,但本发明的原理还适用于包括训练装置、仿真游戏装置、和其它仿真装置的其它各种仿真器。
虽然对本发明的具体优选实施例进行了详细的展示和说明,但应明白,在不脱离所附权利要求规定的范围内,可对其进行各种修改和变化。
权利要求
1.一种计算方法,用于计算显示在显示监视器屏幕上伪三维空间中的移动角色和在该空间中显示的由多个多边形组成的固定角色之间距离,包括下述步骤确定包含表示移动角色位置的一平面坐标点的一多边形;和计算在该移动角色和所确定的多边形之间的距离。
2.如权利要求1所述的方法,其中所述多边形是一三角形,所述确定一多边形的步骤包括以下步骤确定在方程p=(s×a)+(t×b)中满足条件s≥0,t≥0,s+t≤1的一多边形,其中p表示从该多边形一参考顶点到所述多边形中包含的该平面坐标点的向量,a,b分别表示从该多边形的所述参考顶点到该多边形其它各顶点的向量,s,t分别表示向量a,b的系数。
3.如权利要求1所述的方法,其中所述计算距离的步骤包括步骤根据方程y=nX(PX-OX)+nY(PY-OY)+nZ(PZ-OZ)来计算在所述移动角色和所确定的多边形之间的距离,其中nX,nY,nZ表示该多边形的法向量n分别沿X,Y,Z轴的分量,PX,PY,PZ表示移动角色位置分别沿X,Y,Z轴的坐标,OX,OY,OZ表示在包含所述多边形的平面上的预定点O分别沿X,Y,Z轴的坐标。
4.如权利要求3所述的方法,其中所述预定点O包括所述多边形的参考顶点。
5如权利要求1所述的方法,其中所述固定角色包括多个水平和垂直排列的方块,每个所述方块包括多个多边形,该方法还包括步骤在所述多边形确定步骤之前,确定与所述移动角色相对的一个所述方块。
6.一种计算装置,用于计算显示在显示监视器屏幕上伪三维空间中的移动角色和在该空间中显示的由多个多边形组成的固定角色之间的距离,包括第一装置,用于确定包含表示移动角色位置的一平面坐标点的一多边形;第二装置,用于计算在所述移动角色和由所述第一装置确定的多边形之间的距离。
7.如权利要求6所述的装置,其中所述多边形是一三角形,所述第一装置包括用于确定一多边形的装置,该多边形在方程p=(s×a)+(t×b)中满足条件s≥0,t≥0,s+t≤1,其中p表示从该多边形一参考顶点到所述多边形中包含的该平面坐标点的向量,a,b分别表示从该多边形的所述参考顶点到该多边形其它各顶点的向量,s,t分别表示向量a,b的系数。
8.如权利要求6所述的装置,其中所述第二装置包括用于计算在所述移动角色和所确定的多边形之间的距离的装置,该距离根据方程y=nX(PX-OX)+nY(PY-OY)+nZ(PZ-OZ)来计算,其中nX,nY,nZ表示该多边形的法向量n分别沿X,Y,Z轴的分量,PX,PY,PZ表示移动角色位置分别沿X,Y,Z轴的坐标,OX,OY,OZ表示在包含所述多边形的平面上的预定点O分别沿X,Y,Z轴的坐标。
9.一种仿真器,包括显示监视器,用于将移动角色和固定角色显示在显示监视器屏幕上的伪三维空间中;控制器,由游戏者操控;检测器,用于检测由所述控制器产生的控制动作;计算器,用于根据来自所述检测器的检测信号,计算在显示监视器屏幕上移动角色的位置;以及距离计算装置,用于计算移动角色和固定角色之间的距离;所述距离计算装置包括第一装置,用于确定包含由所述计算器计算的表示移动角色位置的一平面坐标点的一多边形;第二装置,用于计算在该移动角色和由所述第一装置确定的多边形之间的距离。
10.如权利要求9所述的仿真器,其中所述移动角色包括一飞行物,且所述控制单元包括用于改变显示监视器屏幕上伪三维空间中所述飞行物高度的装置。
11.一种计算方法,用于计算在显示监视器屏幕上伪三维空间中移动显示的角色和在该空间中显示的由多个多边形组成的多边模型之间的距离,包括下述步骤在伪三维空间中建立一假想平面,并确定位于当所述角色和多边模型的各多边形投射到假想平面上时所述角色所投射到的一多边图形内部或外围的某一多边形;以及计算所确定的一个多边形和所述角色之间的距离。
12.一种计算装置,用于计算在显示监视器屏幕上伪三维空间中移动显示的角色和在该空间中显示的由多个多边形组成的多边模型之间的距离,包括多边形确定器,用于在伪三维空间中建立一假想平面,并确定位于当所述角色和多边模型的各多边形投射到假想平面上时所述角色所投射到的一多边图形内部或外围的某一多边形;以及距离计算器,用于计算所述多边形确定装置所确定的所述一个多边形和所述角色之间的距离。
13.一种仿真器,包括游戏者可观看的显示监视器;显示控制器,用于将移动显示的角色和由多个多边形构成的多边模型显示在显示监视器屏幕上的伪三维空间中,就象从一预定视点上看去的那样;控制器,由游戏者操控;检测器,用于检测由所述控制器产生的控制动作;计算器,用于根据来自所述检测器的检测信号,计算在显示监视器屏幕上移动角色的位置;以及距离计算装置,用于计算移动角色和多边模型之间的距离;所述距离计算装置包括多边形确定器,用于在伪三维空间中建立一假想平面,并确定位于当所述角色和多边模型的各多边形投射到假想平面上时所述角色所投射到的一多边图形内部或外围的某一多边形;距离计算器,用于计算所述多边形确定装置所确定的所述一个多边形和所述角色之间的距离;以及碰撞判断器,用于根据由所述距离计算器计算的距离,判断所述角色和所述多边模型是否已相互碰撞。
14.如权利要求13所述的仿真器,其中所述显示控制器包括碰撞显示装置,用于当所述碰撞判断器判定所述角色和所述多边形模型发生相互碰撞时,在所述显示监视器显示碰撞场景的图像。
15.一种用于投射的方法,它利用旋转矩阵将表示一标记的多边形投射到表示在显示监视器屏幕上显示的伪三维空间中一角色的多边形平面上,包括下面的步骤确定在该多边形平面上的一预定位置处与该多边形平面垂直的法向量;确定在该多边形平面中包含的与所述法向量垂直的第一向量;确定在该多边形平面中包含的与所述法向量和所述第一向量均垂直的第二向量;以及,由所述法向矩阵、所述第一矩阵和所述第二矩阵确定旋转矩阵。
16.如权利要求15所述的方法,其中所述确定第一向量的步骤包括步骤确定第一向量(XX,XY,XZ)为XX=BX-AX,XY=BY-AY,XZ=BZ-AZ,其中(AX,AY,AZ)和(BX,BY,BZ)分别表示所述多边形平面上的任意两点。
17.如权利要求15所述的方法,其中所述任意两点分别包括所述多边形的任意两个顶点。
18.如权利要求15所述的方法,其中所述确定第二向量的步骤包括步骤确定第二向量(ZX,ZY,ZZ)为ZX=XY×nZ-XZ×nY,ZY=XZ×nX-XX×nZ,ZZ=XX×nY-XY×nX,其中XX,XY,XZ表示所述第一向量,nX,nY,nZ表示所述法向量。
19.如权利要求18所述的方法,其中所述确定旋转矩阵的步骤包括步骤确定旋转矩阵为XxnxZxXynyZyXznzZz]]>
20如权利要求15所述的方法,其中所述角色包括固定角色,该方法还包括在所述伪三维空间中显示移动角色的步骤,所述标记与所述移动角色相关。
21.如权利要求20所述的方法,其中所述标记包括所述移动角色的影子。
22.如权利要求20所述的方法,其中所述多边形包括构成所述固定角色的多个多边形中的一个,并包含代表所述移动角色位置的一平面坐标点,该方法包括步骤在确定所述法向量之前,确定所述多边形。
23.一种用于投射的装置,它利用旋转矩阵将表示一标记的多边形投射到表示在显示监视器屏幕上伪三维空间中显示的一角色的一多边形平面上,包括第一装置,用于确定在该多边形平面上的一预定位置处与该多边形平面垂直的法向量;第二装置,用于确定在该多边形平面中包含的与所述法向量垂直的第一向量;第三装置,用于确定在该多边形平面中包含的与所述法向量和所述第一向量均垂直的第二向量;以及第四装置,用于由所述法向矩阵、所述第一矩阵和所述第二矩阵确定旋转矩阵。
24.如权利要求23所述的装置,其中所述角色包括一固定角色,该装置还包括用于在所述伪三维空间中显示一移动角色的装置,所述标记与所述移动角色相关。
25.一种仿真器,包括显示监视器,用于将移动角色和固定角色显示在显示监视器屏幕上的伪三维空间中;控制器,由游戏者操控;检测器,用于检测由所述控制器产生的控制动作;计算器,用于根据来自所述检测器的检测信号,计算在显示监视器屏幕上移动角色的位置;以及投射装置,用于利用旋转矩阵,将一多边形投射到表示固定角色的一多边形平面上;所述投射装置包括第一装置,用于确定在该多边形平面上的一预定位置处与该多边形平面垂直的法向量;第二装置,用于确定在该多边形平面中包含的与所述法向量垂直的第一向量;第三装置,用于确定在该多边形平面中包含的与所述法向量和所述第一向量均垂直的第二向量;以及第四装置,用于由所述法向矩阵、所述第一矩阵和所述第二矩阵确定旋转矩阵。
26.如权利要求25所述的装置,其中所述移动角色包括一飞行物,被投射到所述多边形平面的所述多边形包括与所述飞行物相关的一影子。
全文摘要
在组成固定角色的多边形中,确定包含表示移动角色位置平面坐标点的一多边形,来计算显示的伪三维空间中移动角色和固定角色之间的距离。通过确定固定角色多边形平面上预定位置处的法向量、在该多边形平面中包含的与法向量垂直的第一向量、在该多边形平面中包含的与法向量和第一向量均垂直的第二向量,以及由法向矩阵、第一矩阵和第二矩阵确定旋转矩阵,来将表示与移动角色相关的一标记的多边形投射到固定角色的多边平面上。
文档编号G06T7/60GK1191345SQ98103870
公开日1998年8月26日 申请日期1998年2月17日 优先权日1997年2月18日
发明者和田哲也, 菅野启 申请人:科乐美股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1