发明名称 在虚拟空间内判断碰撞及判断碰撞点之处理方法
摘要 一种在虚拟空间内判断碰撞和判断碰撞点之处理方法。每一物件具有范围框,分别由最小端点和最大端点加以定义,做为判断碰撞之基准。在判断碰撞处理方法中,先将两物件的两个最小端点的对应座标值取出比较,再将对应座标值中较大者组合成第一个判断端点。同样地,分别将两物件的两个最大端点的对应座标值取出比较,再将对应座标值中较小者组合成第二个判断端点。如果第二判断端点之座标值均分别大于或等于第一判断端点之对应座标值时,即表示两个物件发生碰撞。在判断碰撞点的方法中,则是利用两个范围框的对角线长度比例来分割其中心点连线,并以分割点做为碰撞点。利用本发明之处理方法,不仅能够正确地判断出碰撞的情况,同时能够减少所需之比较运算数量。
申请公布号 TW353741 申请公布日期 1999.03.01
申请号 TW086114107 申请日期 1997.09.26
申请人 英业达股份有限公司 发明人 徐志刚
分类号 G06T17/00 主分类号 G06T17/00
代理机构 代理人 洪澄文 台北巿信义路四段二七九号三楼
主权项 1.一种在虚拟空间内判断碰撞之处理方法,用以判断在上述虚拟空间内判断第一物件和第二物件之间是否发生碰撞,上述第一物件具有第一范围框,其由第一最小端点和第一最大端点所定义,上述第二物件具有第二范围框,其由第二最小端点和第二最大端点所定义,其包括下列步骤:储存上述第一最小端点、第一最大端点、第二最小端点、第二最大端点之座标値储存于一记忆体内,藉以构成在上述虚拟空间内上述第一物件和上述第二物件之碰撞判断范围;分别撷取且比较上述第一最小端点和上述第二最小端点之对应座标値,将其中对应座标値较大者组合成第一判断端点;分别撷取且比较上述第一最大端点和上述第二最大端点之对应座标値,将其中对应座标値较小者组合成第二判断端点;以及分别比较上述第一判断端点和上述第二判断端点之对应座标値,当上述第二判断端点之座标値均分别大于或等于上述第一判断端点之对应座标値时,表示上述第一物件和上述第二物件发生碰撞,当上述第二判断端点之座标値之任一者小于上述第一判断端点之对应座标値时,表示上述第一物件和上述第二物件未发生碰撞。2.如申请专利范围第1项所述之处理方法,其中上述虚拟空间系为一虚拟三度空间,每一端点之座标値分别具有X座标値、Y座标値和Z座标値。3.如申请专利范围第1项所述之处理方法,其中上述虚拟空间系为一虚拟二度空间,每一端点之座标値分别具有X座标値和Y座标値。4.如申请专利范围第1项所述之处理方法,其中上述第一范围框系为一矩形,上述第一最小端点系为上述矩形中各点之各座标値相加具有最小値之点,上述第一最大端点系为上述矩形中各点之各座标値相加具有最大値之点。5.如申请专利范围第1项所述之处理方法,其中上述第二范围框系为一矩形,上述第二最小端点系为上述矩形中各点之各座标値相加具有最小値之点,上述第二最大端点系为上述矩形中各点之各座标値相加具有最大値之点。6.一种在虚拟空间内判断碰撞点之处理方法,用以判断在上述虚拟空间内判断第一物件和第二物件之间发生碰撞之碰撞点,上述第一物件具有第一范围框,上述第二物件具有第二范围框,其包括下列步骤:提供上述第一范围框之范围値,以及上述第二范围框之范围値,储存于一记忆体内,藉以构成在上述虚拟空间内上述第一物件和上述第二物件之碰撞判断范围;判断上述第一物件和上述第二物件是否发生碰撞;当发生碰撞时,决定上述第一范围框之第一中心点和上述第二范围框之第二中心点;决定上述第一范围框之第一特征値和上述第二范围框之第二特征値;利用上述特征値和上述第二特征値之比例,分割上述第一中心点和上述第二中心点之连接线,决定一分割点;以及设定上述分割点为上述第一物件和上述第二物件之碰撞点。7.如申请专利范围第6项所述之处理方法,其中上述第一范围框系为一矩形,其范围値系由第一最小端点和第一最大端点所定义,上述第一最小端点系为上述矩形中各点之各座标値相加具有最小値之点,上述第一最大端点系为上述矩形中各点之各座标値相加具有最大値之点。8.如申请专利范围第6项所述之处理方法,其中上述第二范围框系为一矩形,其范围値系由第二最小端点和第二最大端点所定义,上述第二最小端点系为上述矩形中各点之各座标値相加具有最小値之点,上述第二最大端点系为上述矩形中各点之各座标値相加具有最大値之点。9.如申请专利范围第6项所述之处理方法,其中上述虚拟空间系为一虚拟三度空间。10.如申请专利范围第6项所述之处理方法,其中上述虚拟空间系为一虚拟二度空间。11.如申请专利范围第6项所述之处理方法,其中上述第一中心点和上述第二中心点系为对应之上述第一范围框和上述第二范围框之质心位置。12.如申请专利范围第6项所述之处理方法,其中上述第一特征値和上述第二特征値系为对应之上述第一范围框和上述第二范围框之最长对角线长度。13.如申请专利范围第6项所述之处理方法,其中上述第一物件和上述第二物件是否发生碰撞之步骤中,上述第一范围框系由第一最小端点和第一最大端点所定义,上述第二范围框系由第二最小端点和第二最大端点所定义,其包括下列步骤:比较上述第一最小端点和上述第二最小端点之对应座标値,将其中对应座标値较大者组合成第一判断端点;比较上述第一最大端点和上述第二最大端点之对应座标値,将其中对应座标値较小者组合成第二判断端点;以及分别比较上述第一判断端点和上述第二判断端点之对应座标値,当上述第二判断端点之座标値均分别大于或等于上述第一判断端点之对应座标値时,表示上述第一物件和上述第二物件发生碰撞。图式简单说明:第一图表示在一般3D虚拟空间中物体间发生碰撞之示意图。第二图表示在3D空间中一物件和其矩形范围框之示意图。第三图表示在3D空间中两物件之矩形范围框发生碰撞之第一例示意图。第四图表示在3D空间中两物件之矩形范围框发生碰撞之第二例示意图。第五图表示应用本实施例之判断碰撞和判断碰撞点之系统方块图。第六图表示在本实施例中用以说明判断碰撞处理方法之3D示意图。第七图表示在本实施例中用以说明判断碰撞点处理方法之3D示意图。第八图表示本实施例中之3D格斗游戏之控制流程图。第九图表示在第八图所示之流程图中,用以判断是否发生碰撞之步骤之详细流程图。第十图表示在第八图所示之流程图中,用以判断碰撞点位置之步骤之详细流程图。
地址 台北巿士林区后港街六十六号