CN101154293B - 图像处理方法和图像处理装置 - Google Patents
图像处理方法和图像处理装置 Download PDFInfo
- Publication number
- CN101154293B CN101154293B CN2007101620035A CN200710162003A CN101154293B CN 101154293 B CN101154293 B CN 101154293B CN 2007101620035 A CN2007101620035 A CN 2007101620035A CN 200710162003 A CN200710162003 A CN 200710162003A CN 101154293 B CN101154293 B CN 101154293B
- Authority
- CN
- China
- Prior art keywords
- polygon
- conflict
- virtual objects
- dimensional object
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种图像处理方法和图像处理装置。多边形选择单元(125)根据给定的条件,从包括在三维虚拟对象内的基本单元中选择将被用于冲突判断处理的基本单元。冲突判断单元(130)利用多边形选择单元(125)对于每个虚拟对象选择出的基本单元,在三维虚拟对象之间执行冲突判断处理。
Description
技术领域
本发明涉及图像处理方法和图像处理装置,尤其涉及一种判断三维虚拟对象之间的冲突的技术。
背景技术
计算机硬件、显示技术和图形处理器的发展使得高级CG(计算机图形)表达成为可能。伴随于此,CG也被用于诸如CAD(计算机辅助设计)等工业应用,并且CG图像正变得更加复杂。在CG技术中,随着CG渲染性能的改进,计算三维对象之间的现实行为和冲突状态的冲突判断功能被认为是非常重要的,该功能不仅确保图像的真实性,而且表达更真实的行为。
冲突判断功能计算近似三维对象的三维多边形是否相互冲突,从而可以避免不可能的行为,以防止多边形例如相互陷入。
冲突判断功能在设计领域被用于例如使用CAD数据制作产品原型、在实际机器诞生前的虚拟训练、以及虚拟运行检验测试以检验在运行设计数据时组件是否相互冲突。在娱乐领域,冲突判断功能被用于提供在电影和游戏中的CG对象的真实行为。在机器人领域,冲突判断功能被用于对障碍躲避或者运行轨迹生成过程进行模拟。也就是说,在很多领域中都有着应用。
特别是在呈现实时体验的系统中,与CG渲染同步地对用户的动作作出交互式反应,并且实时地反映使现实世界与CG渲染一致的操作,这对于改进用户的参与感都起着重要作用。因此,冲突判断功能是非常重要的。这样的系统特别包括VR(虚拟现实)和MR(混合现实)。
传统的冲突判断技术从基本原理上是将三维对象近似为三维多面体,并且将表面分割成多个含在多面体中的三维多边形。对于分割出的多边形的所有组合,判断多边形之间的冲突。在该方法中,当包括在三维多面体中的多边形的数量为n时,冲突判断的计算成本按n2升高。由于这个原因,在诸如MR或VR的交互系统中,在执行冲突判断的同时实时地CG渲染通过CAD创建的有很多细节的三维对象是非常困难的。
为了解决这个问题,一种方法对三维多边形进行预处理,以例如去除对冲突判断没有影响的元素,从而加快处理过程(ChristerEricson,“Real-Time Collision Detection”,Morgan KaufmannPublishing)。该方法消除了对所有多边形进行冲突判断操作的必要性。只使用最少的必要多边形执行冲突判断操作,从而加快处理过程。然而,在判断例如长对象或者从孔径穿过的对象的冲突时,很多面可能同时相互接触。因此不可能通过预处理消除很多多边形,导致速度下降。
为了防止计算速度的下降,经常采用一种预先利用少量多边形创建三维多面体数据的技术。该方法的例子如下所述。
●多边形缩减:在三维多面体的顶点信息被优化后,重建三维多面体,从而减少多边形的数量。
●细节水平改变:给定一个条件,例如用于消除尺寸等于或小于某一阈值的螺钉等的三维多面体或者消除直径等于或小于某一阈值的孔径,从而减少每个三维对象的细节水平。低细节水平的三维多面体被单独地创建,以减少多边形的数量。
传统的冲突判断对于具有高细节水平和大量多边形的三维对象而言不能实时地执行。目前,对于实时操作,通过降低细节水平来减少多边形的数量。
在这样的冲突判断功能中,CG渲染优选地以30到60Hz进行,特别是在诸如VR或MR等高度交互的领域中。还需要一种没有因冲突判断引起的CG渲染的延迟的操作,同时需要对应于用户的交互操作的实时冲突判断。实现这一目的的重要挑战特别在于加快冲突判断操作的速度。
使用现有技术的冲突判断操作有两个问题。
●形状在多边形缩减或细节水平改变的情况下发生改变。更具体地说,如果形状发生改变,那么在经CG渲染的三维多面体的冲突判断结果中将出现差错,因而无法实现准确的冲突判断。
●必须与用于CG渲染的数据相互独立地创建用于冲突判断的数据。更具体地说,多边形缩减或细节水平改变需要单独地创建不同于CG渲染的数据。数据需要被单独地加载到存储器。
发明内容
本发明就是考虑到上述问题而提出的,其目的是提供一种在不降低存储器效率的情况下,以较高的速度判断虚拟对象之间的冲突的技术。
为了实现以上目的,根据本发明的一个方面,提供了在三维虚拟对象之间执行冲突判断处理的图像处理方法,包括:
选择步骤,根据给定的条件,从包括在三维虚拟对象内的基本单元中选择将被用于冲突判断处理的基本单元;和
冲突判断步骤,利用在选择步骤中对于每个虚拟对象选择出的基本单元,在三维虚拟对象之间执行冲突判断处理。
根据本发明的另一个方面,提供了一种用于在三维虚拟对象之间执行冲突判断处理的图像处理装置,包括:
选择单元,被配置为根据给定的条件,从包括在三维虚拟对象内的基本单元中选择将被用于冲突判断处理的基本单元;和
冲突判断单元,被配置为利用选择单元对于每个虚拟对象选择出的基本单元,在三维虚拟对象之间执行冲突判断处理。
参考附图,从对示例性实施方案的以下描述中将会清楚本发明的其它特征。
附图说明
图1是示出根据本发明第一实施方案的图像处理装置的功能布局的框图;
图2是冲突判断处理的流程图;
图3是示出由多边形序列生成单元112对于一个虚拟对象生成的多边形序列数据的结构例的图;
图4是示出一个创建的直方图的例子的曲线图;
图5是为不同的组设置的无效比的曲线图;
图6是通过将图4的直方图叠加在图5的曲线图上而获得的曲线图;
图7是通过将手虚拟对象和设计对象虚拟对象之间的相对速度的直方图叠加在为不同的组设置的无效比的曲线图上而获得的曲线图;
图8是示出图7中的分布710向左移动的状态的曲线图;
图9是用于解释当m=2时的本发明第三实施方案的图;
图10A是并行执行的虚拟空间图像渲染和冲突判断处理的时序图;
图10B是并行执行的虚拟空间图像渲染和冲突判断处理的时序图;
图11是当m=2时在每个装置中的处理过程的时序图;以及
图12是示出计算机的硬件配置的框图。
具体实施方式
下面参考附图详细描述本发明的优选实施方案。
[第一实施方案]
在该实施方案中,至少一个模拟设计对象的虚拟对象(设计对象虚拟对象)被放入虚拟空间中,并且模拟人手的虚拟对象(手虚拟对象)被移入虚拟空间中。下面将描述在移动手虚拟对象后在手虚拟对象和设计对象虚拟对象之间的冲突判断处理。下面描述的冲突判断处理也适用于除手虚拟对象和设计对象虚拟对象之外的任意虚拟对象之间的冲突判断。
图1是示出根据本发明第一实施方案的图像处理装置的功能布局的框图。如图1所示,根据该实施方案的图像处理装置包括数据读单元110、多边形确定单元120、冲突判断单元130和图像处理单元140。
下面描述数据读单元110。
数据读单元110包括对象数据读单元111和多边形序列生成单元112,如图1所示。
对象数据读单元111从存储器(未示出)中读出每个虚拟对象(对象)的渲染数据。渲染数据的一个例子是通过利用CAD创建虚拟对象而生成的CAD数据。对象数据读单元111将每个虚拟对象的渲染数据顺序地输出到多边形序列生单元112。
多边形序列生成单元112将从对象数据读单元111接收的渲染数据依次转换为多边形序列数据。也就是说,多边形序列生成单元112将由CAD创建的虚拟对象重建为由多边形形成的虚拟对象。多边形序列生成单元112将每个虚拟对象的多边形序列数据(构成虚拟对象的多边形序列的数据)输出到后级的多边形确定单元120和图像处理单元140。
图3是示出由多边形序列生成单元112对于一个虚拟对象生成的多边形序列数据的结构例的图。参考图3,标号301指示所有的多边形序列数据。
每个多边形的顶点的坐标值被记录在区域302内的多行中。每一行(每个顶点)被分配一个唯一的编号(顶点索引)。例如,从最顶行向下依次分配顶点索引1、2、3、......。
每个多边形的顶点的顶点索引被记录在区域303内的多行中。例如,“2003,2007,2008,-1”定义了一个包括三个顶点的多边形:顶点索引为2003的顶点、顶点索引为2007的顶点和顶点索引为2008的顶点。每一行(每个多边形)被分配一个唯一的编号(多边形索引)。例如,从最顶行向下依次分配多边形索引1、2、3、......。
当预先由多边形形成虚拟对象时,对象数据读单元111对于每个虚拟对象读出如图3所示的多边形序列数据。在这种情况下,多边形序列生成单元112不是必需的。
下面将描述多边形确定单元120。多边形确定单元120包括无效比功能设置单元121、直方图生成单元123和多边形选择单元125。
下面将描述多边形确定单元120在接收到一个虚拟对象的多边形序列数据后的操作。实际上,多边形确定单元120接收多个虚拟对象中的每一个的多边形序列数据。在这种情况下,多边形确定单元120对每个虚拟对象的多边形序列数据执行下面解释的处理。
在接收到多边形序列数据后,直方图生成单元123计算记录在多边形序列数据中的每个多边形的面积。下面更详细地描述这一处理过程。
如上所述,包括在多边形中的每个顶点的顶点索引被记载在区域303中。对应于每个顶点索引的顶点的坐标值被记载在区域302中。直方图生成单元123依次查找区域303中的各行,并从区域302中获取与记录在每个查找行中的顶点索引相对应的顶点的坐标值。例如,如果在区域303中所查找的一行中记录的顶点索引是“1,2,3,-1”,那么直方图生成单元123从区域302中获取对应于顶点索引1的顶点坐标值、对应于顶点索引2的顶点坐标值以及对应于顶点索引3的顶点坐标值。
当三个顶点的顶点坐标值都被获得后,直方图生成单元123计算由三个顶点构成的多边形(三角形)的面积。计算三个顶点的坐标值已知的三角形的面积的方法是已知的,这里不再描述这一过程。直方图生成单元123在面积表中相互关联地记录面积和已计算出面积的多边形的多边形索引。后面描述面积表。
按照这种方式,每次查找区域303中的一行,直方图生成单元123都会从区域302中获得与记录在查找行中的三个索引相对应的三个顶点的坐标值,并且使用三个已获得的顶点坐标值获得相应的多边形的面积。利用该处理,直方图生成单元123就可以获得记录在多边形序列数据中的所有多边形的面积。多边形序列数据的结构和直方图生成单元123执行的处理过程不限于以上描述的内容,只要实现目的就可以。例如,每个多边形的面积可以预先记录在多边形序列数据中。在这种情况下,直方图生成单元123的多边形面积计算过程就可以省略。
直方图生成单元123生成计算出的多边形面积的直方图。图4是示出所建立的直方图的例子的曲线图。参考图4,横坐标代表多边形面积,纵坐标代表频率(分布)。
参考图4,构成非常小的组成成分(例如螺钉)的众多小多边形分布在区间401中。构成相对小的组成成分的多边形(例如传感器组件)分布在区间402中。大于手虚拟对象的多边形(例如上面板或仪表板)分布在区间403中。
直方图生成单元123将这样生成的直方图输出到例如一个显示设备的屏幕。这使得装置的用户可以预先掌握在直方图中哪个区间包括哪一种类的多边形。用户通过观察直方图预先检查区间之间的突变,并将这些突变预设为阈值。无效比功能设置单元121接收设置输入。例如,在图4中,在突变411处的多边形面积被设为阈值1,在突变412处的多边形面积被设为阈值2。
该设置可以不通过用户输入完成,而是由无效比功能设置单元121完成。例如,无效比功能设置单元121可以设置两个阈值,以将直方图中的最大面积和最小面积之间的区间简单地分割成三个相等的部分,或者将手虚拟对象的面积设置为仅有的一个阈值。在该实施方案中,用户设置阈值1和2。然而,下面的描述也适用于使用由无效比功能设置单元121设置的阈值的任何情况。
无效比功能设置单元121对于包括面积小于阈值1的多边形的一组(组1)、包括面积从阈值1(含该阈值1)到阈值2(不含该阈值2)的多边形的一组(组2)以及包括面积等于或大于阈值2的多边形的一组(组3)中的每一组设置无效比。无效比是指在一组中不用于冲突判断的多边形的比例。对于每一组都设置无效比。
图5是为各组设置的无效比的曲线图。参考图5,横坐标代表多边形面积,纵坐标代表无效比。
在图5中,含有的每个多边形的面积都包括在区间401中的组(组1)被赋给大于50%的无效比(例如70%)。含有的每个多边形的面积都包括在区间402中的组(组2)被赋给50%的无效比。含有的每个多边形的面积都包括在区间403中的组(组3)被赋给极其接近0%的无效比。
下面将描述为每一组设置的无效比。假定例如在突变412处的多边形面积指示手虚拟对象的面积。在这种情况下,如果一个面积大于手虚拟对象的多边形,即具有包括在区间403中的面积的多边形被排除在冲突判断目标以外,那么手虚拟对象可以通过该多边形。因此,为区间403(组3)设置极其接近0%的无效比,以使冲突判断目标包括几乎所有面积包括在区间403中的多边形。
面积包括在区间402中的多边形,即构成相对较小的但在诸如操作检验等工作中必不可少的组成成分(例如传感器组件)的多边形比手虚拟对象的面积要小得多。因此,为区间402(组2)设置50%的无效比,以将一部分多边形排除在冲突判断目标之外,同时使对包括多边形的虚拟对象的形状的损害最小化。
面积包括在区间401中的多边形,即构成非常小的组成成分(例如螺钉)的多边形被认为能够保持足够的冲突判断精度,而不考虑对形状的损害。因此,对于区间401(组1),无效比被设置为50%或更高,例如75%。也就是说,面积包括在高无效比的区间中的多边形几乎不被用于冲突判断处理。因此,冲突判断处理可以高速完成。
利用上述处理过程,可以为每一组设置无效比。因此,将从一组的所有多边形中选出的被用于冲突判断处理的多边形的比例可以根据为该组设置的无效比来确定。
多种方法可用于根据多边形的面积将构成一个虚拟对象的多边形分类成几组并为每一组设置无效比。本发明不限于特定的方法。为每一组设置的无效比也不限于特定的值。图6是通过将图4中的直方图叠加在图5中的曲线图上而获得的曲线图。
多边形选择单元125从多边形序列数据中选择将被用于冲突判断处理的多边形数据。更具体地说,对于面积包括在组1中的多边形,多边形选择单元125根据为组1设置的无效比选择将被用于冲突判断处理的多边形。对于面积包括在组2中的多边形,多边形选择单元125根据为组2设置的无效比选择将被用于冲突判断处理的多边形。对于面积包括在组3中的多边形,多边形选择单元125根据为组3设置的无效比选择将被用于冲突判断处理的多边形。
下面将描述多边形选择单元125的操作的一个详细的例子。多边形选择单元125查找面积表并且读出与小于阈值1的面积相关联的所有多边形索引。假定读出的多边形索引的数量为10。多边形选择单元125从10个读出的多边形索引中选择三个多边形索引,排除了数量与为组1设置的无效比相对应的(=7)多边形索引。选择模式不具体受限。在带有选定的多边形索引的多边形中包括的顶点的坐标值被记载在区域302中。多边形选择单元125从区域302获取在带有选定的多边形索引的多边形中包括的顶点的坐标值。所获取的顶点的坐标值被输出到后级的冲突判断单元130。
接下来,多边形选择单元125查找面积表并且读出所有的与从阈值1(含阈值1)到阈值2(不含阈值2)的面积有关的多边形索引。假定读出的多边形索引的数量是20。多边形选择单元125从20个读出的多边形索引中选择10个多边形索引,排除了数量与为组2设置的无效比(50%)相对应的(=10)的多边形索引。选择模式不具体受限。在带有选定的多边形索引的多边形中包括的顶点的坐标值被记载在区域302中。多边形选择单元125从区域302获取在带有选定的多边形索引的多边形中包括的顶点的坐标值。所获取的顶点的坐标值被输出到后级的冲突判断单元130。
最后,多边形选择单元125查找面积表并且读出所有的与等于或大于阈值2的面积有关的多边形索引。假定读出的多边形索引的数量是6。多边形选择单元125从6个读出的多边形索引中选择6个多边形索引,排除了数量与为组3设置的无效比(0%)相对应的(=0)的多边形索引。选择模式不具体受限。在带有选定的多边形索引的多边形中包括的顶点的坐标值被记载在区域302中。多边形选择单元125从区域302获取在带有选定的多边形索引的多边形中包括的顶点的坐标值。所获取的顶点的坐标值被输出到后级的冲突判断单元130。
通过上述处理过程就可以根据为每一组设置的无效比来选择包括在每一组中的多边形。无效比反映了包括在每一组中的多边形和手虚拟对象的面积之间的关系。因此,当使用根据无效比选择的多边形来执行冲突判断处理时,由于在注重所有虚拟对象的形状的同时减少了用于冲突判断处理的多边形的数量,因而可以加快冲突判断处理。
利用上述处理过程,多边形确定单元120可以从构成一个虚拟对象的多边形中选出将被用于冲突判断处理的多边形,并将选出的多边形的顶点的坐标值输出到冲突判断单元130。
下面将描述冲突判断单元130。冲突判断单元130对于每个虚拟对象接收将用于冲突判断处理的多边形的顶点的坐标值,并使用这些坐标值来判断虚拟对象之间的冲突。在该实施方案中,冲突判断单元130判断手虚拟对象和设计对象虚拟对象之间的冲突。冲突判断结果被输出到图像处理单元140。
下面将描述图像处理单元140。如图1所示,图像处理单元140包括图像生成单元141和渲染单元142。在从多边形序列生成单元112接收到每个虚拟对象的多边形序列数据后,图像生成单元141使用该多边形序列数据构建虚拟对象。基于多边形序列数据构建虚拟对象的技术是已知的。每个构建好的虚拟对象以给定的位置和取向被放置在虚拟空间中。此时,对于被冲突判断单元130判断为与手虚拟对象冲突的设计对象虚拟对象,例如,冲突部分可以以不同的方式来显示,或者例如通过在手虚拟对象的运动方向上移动设计对象虚拟对象,可以改变所述位置和取向。
渲染单元142生成从一个给定位置和取向的视角来看的虚拟空间的图像。生成从预定位置和取向的视角来看的虚拟空间的图像的技术是已知的。
渲染出的虚拟空间的图像被输出到显示设备(未示出)。
图2是上述一系列冲突判断处理的流程图。
在步骤S201,对象数据读单元111从存储器(未示出)读出每个虚拟对象的渲染数据。对象数据读单元111将读出的每个虚拟对象的渲染数据依次输出到多边形序列生成单元112。
在步骤S202,多边形序列生成单元112将从对象数据读单元111接收的每个渲染数据依次转换为多边形序列数据。多边形序列生成单元112将每个虚拟对象的多边形序列数据输出到后级的多边形确定单元120和图像处理单元140。
在步骤S203,设置根据多边形面积确定将用于后续处理的无效比的条件A。该设置可以预先完成。可以为每个虚拟对象设置条件A。
在步骤S204,直方图生成单元123计算记录在多边形序列数据中的每个多边形的面积。直方图生成单元123将面积和已被计算出面积的多边形的多边形索引相互关联地记录在面积表中。直方图生成单元123生成计算出的多边形面积的直方图并将其输出到例如显示设备的屏幕。当用户设置阈值1和2时,组1到3被自动确定。无效比功能设置单元121为组1到3中的每一组设置无效比。
在步骤S207,多边形选择单元125从多边形序列数据中选择将被用于冲突判断处理的多边形数据。更具体地说,对于分别具有包括在组1中的面积的多边形,多边形选择单元125根据为组1设置的无效比选择将用于冲突判断处理的多边形。对于分别具有包括在组2中的面积的多边形,多边形选择单元125根据为组2设置的无效比选择将用于冲突判断处理的多边形。对于分别具有包括在组3中的面积的多边形,多边形选择单元125根据为组3设置的无效比选择将用于冲突判断处理的多边形。例如,多边形选择单元125选择一个多边形,不选择(或选择)与该多边形的一条边接触的多边形,并且不选择(或选择)与该多边形的一个点接触的多边形。
在步骤S210,冲突判断单元130对于每个虚拟对象接收将用于冲突判断处理的多边形的顶点的坐标值,并使用所接收的坐标值来判断虚拟对象之间的冲突。冲突判断结果被输出到图像处理单元140。
如果条件A改变,则处理过程返回步骤S203。如果条件A不改变,则处理过程前进到步骤S212。除非输入结束处理过程的指令或者满足结束处理过程的条件,否则该处理过程经由步骤S212返回步骤S210。
如上所述,根据该实施方案,通过象常见的多边形去除技术(例如多边形缩减或细节水平改变)一样减少多边形的数量,可以执行高速冲突判断处理。
上述实施方案在以下几个方面比现有技术更有用。在现有技术中,三维多边形本身的形状发生改变,因此它们与用在CG渲染中的三维多面体不匹配。然而,在本实施方案中,在冲突判断处理中只有平面信息被忽略,而没有丢失多边形序列数据中的顶点信息。因此,顶点被全部用在CG渲染中,使得三维多边形可以保持与三维多面体相同的形状。没有必要单独生成用于冲突判断的数据以及用于CG渲染的数据。由于用于CG渲染的数据可以直接用于冲突判断,所以存储器效率可以提高。
当最大无效比是50%时,在区域中多边形被交替地去除。结果,即使这些多边形被去除,在三维多面体中的线段信息仍被保留。
在CG渲染过程中,如果以同样的方式忽略多边形,则无法获得任何正常的渲染结果,这是因为遮挡问题引起的视觉不一致。然而,在冲突判断中,可视化不是必需的。因此,如果冲突目标具有预定的尺寸或更大一些,即使在非常小的组成成分(例如螺钉)中的小多边形被去除和忽略,那么也可以获得足够准确的冲突结果。
利用上述效果,当根据三维对象的形状或者操作内容自由地设置无效比时,用户就可以在执行冲突判断的同时获得满足其要求的真实的虚拟体验。
在该实施方案中,阈值是预设的。然而,也可以根据需要来编辑它们。
[第二实施方案]
在该实施方案中,手虚拟对象和每个设计对象虚拟对象之间的相对速度被用作条件A。根据该实施方案的图像处理装置的功能布局与图1中一样。
在该实施方案中,直方图生成单元123计算运动的手虚拟对象和每个设计对象虚拟对象之间的相对速度,并生成针对各个设计对象虚拟对象计算出的相对速度的直方图。直方图生成单元123将这样生成的直方图输出到例如显示设备的屏幕。所述装置的用户可以通过观看直方图获知运动的手虚拟对象和每个设计对象虚拟对象之间的相对速度。用户为相对速度设置至少一个阈值。无效比功能设置单元121接收设置输入。该设置可以不通过用户输入完成,而是由无效比功能设置单元121完成。在该实施方案中,用户设置阈值1和2。然而,以下描述也适用于使用由无效比功能设置单元121设置的阈值的任何情形。
无效比功能设置单元121为包括与手虚拟对象的相对速度小于阈值1的设计对象虚拟对象的一组(组1)、包括与手虚拟对象的相对速度位于阈值1(含阈值1)到阈值2(不含阈值2)之间的设计对象虚拟对象的一组(组2)以及包括与手虚拟对象的相对速度等于或大于阈值2的设计对象虚拟对象的一组(组3)中的每一组设置无效比。在该实施方案中,无效比是指在一组中不用于冲突判断的设计对象虚拟对象的多边形的比例。为每一组都设置无效比。
图7是通过将手虚拟对象和设计对象虚拟对象之间的相对速度的直方图叠加在为各组设置的无效比的曲线图上而获得的曲线图。参考图7,横坐标代表手虚拟对象和每个设计对象虚拟对象之间的相对速度,纵坐标代表无效比和分布。
在图7中,在区间601中,与手虚拟对象的相对速度小于阈值1。在区间602中,与手虚拟对象的相对速度位于阈值1(含阈值1)到阈值2(不含阈值2)之间。在区间603中,与手虚拟对象的相对速度等于或大于阈值2。
在图7中,包括在区间601中的设计对象虚拟对象被赋予极其接近0%的无效比。包括在区间602中的设计对象虚拟对象被赋予50%的无效比。包括在区间603中的设计对象虚拟对象被赋予高于50%的无效比(例如70%)。
下面将描述为每一组设置的无效比。在快速移动对象到测试区的虚拟操作检验测试中,不进行精细检查。相反,重点在于操作跟随性(高速可操作性)。如果手虚拟对象高速运动,那么手虚拟对象和设计对象虚拟对象之间的相对速度的分布710在图7中向右移动。在这种情况下,为区间603设置大于50%的高无效比,从而加快高速运行的三维多面体之间的冲突处理。
另一方面,如果在虚拟操作检验测试中的区域附近正在进行精细操作检验,则在手虚拟对象和每个设计对象虚拟对象之间的相对速度下降。当手虚拟对象低速运动时,手虚拟对象和设计对象虚拟对象之间的相对速度的分布710向左移动,如图8所示。图8是示出图7中的分布710向左移动的状态的曲线图。在这种情况下,为区间602设置50%的无效比,从而在不损害虚拟对象的形状的情况下使用1/2多边形的数据来详细执行冲突判断。
在区间601中,相对速度进一步下降,并且执行更精细的操作检验。在这种情况下,对于区间601设置极其接近0%的无效比。
利用该过程,可以为每个设计对象虚拟对象设置无效比。如同在第一实施方案中一样,根据为设计对象虚拟对象设置的无效比来确定将用于冲突判断的多边形和包括在设计对象虚拟对象中的所有多边形的比例。
根据该实施方案的处理过程的流程图与图2基本相同,除了以下几点。在步骤S203,设置根据与手虚拟对象的相对速度来确定将用于后续处理的无效比的条件A。
在步骤S204,直方图生成单元123计算手虚拟对象和每个设计对象虚拟对象之间的相对速度。直方图生成单元123生成计算出的相对速度的直方图并将其输出到例如显示设备的屏幕。当用户设置阈值1和2时,组1到3被自动确定。无效比功能设置单元121为组1到3中的每一组设置无效比。
第一和第二实施方案可以视需要被组合起来。更具体地说,为了选择将被用于一个设计对象虚拟对象的冲突判断处理的多边形,应用第一实施方案。为了选择将被用于另一个设计对象虚拟对象的冲突判断处理的多边形,应用第二实施方案。在这种情况下,由于可以根据条件来改变用于选择冲突判断目标多边形的准则,所以本方法可以被容易地实施在另一个现有的冲突判断操作装置中。
[第三实施方案]
在该实施方案中,将被用于确定一帧中的虚拟对象之间的冲突的多边形的数量减少。为了实现这一点,在该实施方案中,包括在一个虚拟对象中的多边形被分割成m组。包括在其中一组中的多边形被用于一帧中的冲突判断。也就是说,在一帧中,通过使用包括在一组中的多边形来执行冲突判断处理。在下一帧中,通过使用包括在另一组中的多边形来执行冲突判断处理。
一组中包括的多边形的数量使得可以结束一帧中的冲突判断处理。很自然地,该数量会随着装置执行冲突判断处理的处理速度而改变。根据该实施方案的图像处理装置具有图1所示的功能布局,但没有无效比功能设置单元121和直方图生成单元123。
图9是用于解释当m=2时的本实施方案的图。图9中与图3中相同的附图标记代表相同的部分,相应的描述将不再重复。
在区域303中的行被分割成2(=m)组,即一组带阴影线的行和一组不带阴影线的行。参考图9,使用在区域303的所有行中记载的多边形构成虚拟对象901。只使用在区域303的带阴影线的行中记载的多边形构成虚拟对象902。只使用在区域303的不带阴影线的行中记载的多边形构成虚拟对象903。多边形被布置在虚拟对象902和903的阴影线部分中。不带阴影线的空白部分没有多边形。也就是说,用在虚拟对象902中的多边形不被用在虚拟对象903中,而用在虚拟对象903中的多边形也不被用在虚拟对象902中。
当在每一帧中虚拟对象901被渲染,并且要确定与虚拟对象901的冲突时,虚拟对象902和903被交替地用于每一帧。在这种情况下,可以通过使用包括在虚拟对象901中的所有多边形在两帧中完成冲突判断处理。
如上所述,组数m不必总是2。更具体地说,如果虚拟空间图像渲染速率例如是30Hz,则组数m是将包括在虚拟对象中的多边形总数除以允许在约33秒内完成冲突判断的多边形数量所获得的结果(对小数部分四舍五入而获得的整数值)。在这种情况下,可以在m帧中完成使用包括在虚拟对象901中的所有多边形的冲突判断处理。注意,和选择模式一样,将区域303中的行分割成m组的方法不具体受限。
为了完成上述处理,根据该实施方案的图像处理装置执行以下操作。数据读单元110执行与第一实施方案相同的处理。多边形选择单元125查找多边形序列数据并将区域303中的行分割成m组。分割可以预先完成。多边形选择单元125从分割的组中选择将用于当前帧的一组。多边形选择单元125从区域302中获取与在选定的组中所包括的行中记录的顶点的顶点索引相对应的顶点坐标值,并将这些坐标值输出到冲突判断单元130。
图10A和10B是并行执行的虚拟空间图像渲染和冲突判断处理的时序图。参考图10A和10B,横坐标代表时间。
在图10A中,1001和1002指示虚拟对象901的渲染时段,1011指示虚拟对象901的冲突判断的时段。传统上,时段1011一般长于时段1001和1002,如图10A所示。因此,虽然虚拟对象901的渲染在时刻1020结束,但冲突判断处理在晚得多的时刻1021结束,如图10A所示。因此,下一帧的渲染(在时段1002中的渲染)延迟了由“等待”所指示的时段(在时段1001的结束时刻和时段1011的结束时刻之间的时段)。该延迟大大妨碍了实时体验。
在该实施方案中,如图10B所示,通过使用虚拟对象902来执行冲突判断处理,虚拟对象902包括的多边形的数量(在图10B中,多边形的原始数量的1/2)使得虚拟对象901的冲突判断处理在时刻1020结束。在下一帧,通过使用虚拟对象903来执行冲突判断处理,虚拟对象903包括的多边形的数量(在图10B中,多边形的原始数量的1/2)使得虚拟对象901的冲突判断处理在时刻1021结束。这允许在一帧中结束渲染处理和冲突判断处理(在图10B中从时刻1020到时刻1021的时段)。因此可以在不降低渲染速率的情况下执行冲突判断处理。
如上所述,由于可以在m帧中完成包括在一个虚拟对象中的所有多边形的冲突判断处理,所以可以每m帧输出冲突判断结果。
在该实施方案中,使用选定的多边形构建虚拟对象的过程与第一实施方案中一样。
[第四实施方案]
在该实施方案中,在将要描述的情形中,用于渲染虚拟空间图像的装置和用于执行在第三实施方案中所描述的冲突判断处理的装置被分开准备并且并行运行。当组数是m时,准备m个用于执行冲突判断处理的装置。一个装置负责一组。下面描述m=2的例子。
图11是当m=2时在每个装置中的处理过程的时序图。用于渲染虚拟空间图像的装置(CG渲染PC)在时段1001中渲染虚拟空间图像。准备两个用于执行在第三实施方案中描述的冲突判断处理的装置。一个是冲突判断PC1,另一个是冲突判断PC2。
冲突判断PC1使用虚拟对象902在时段1101中执行冲突判断处理。冲突判断PC2使用虚拟对象903在时段1102中执行冲突判断处理。时段1101和1102都在时段1001的结束时刻1105之前结束。因此,渲染处理和两个冲突判断处理可以在一帧中完成。
冲突判断单元130查找来自冲突判断PC1和冲突判断PC2的冲突判断结果,检查是否发生了冲突。可以在不降低渲染速率的情况下执行包括在虚拟对象中的所有多边形的冲突判断处理。
分散给多个装置的处理可以在一个装置中并行地完成。
[第五实施方案]
图1中所示的所有或部分单元可以用软件实现,剩余的单元可以用硬件实现。在这种情况下,例如,硬件被实施为可被插入个人计算机的功能扩展卡。该功能扩展卡被插入个人计算机中。软件被存储在个人计算机的存储器中。根据该布置,个人计算机的CPU执行所述软件并且控制功能扩展卡的操作,从而执行与第一实施方案中所述的相同处理过程(对应于图2的流程图的处理过程)。
图12是示出计算机的硬件配置的框图。
CPU 1401使用存储在RAM 1402或ROM 1403中的程序和数据控制整个计算机。
RAM 1402有一个临时存储从外部存储设备1406载入的程序和数据或者通过I/F(接口)1407从外部接收的程序和数据的区域。RAM1402还有一个供CPU 1401用来执行各种处理过程的工作区。也就是说,RAM 1402可以视需要提供多种不同的区域。
ROM 1403存储计算机的设置数据和引导程序。
操作单元1404包括键盘和鼠标。计算机的操作者可以通过操作该操作单元1404向CPU 1401输入各种指令。
显示单元1405包括CRT或液晶屏,它可以以图像或文字的形式显示CPU 1401的处理结果。
外部存储设备1406是以硬盘为代表的大容量存储设备,保存OS(操作系统)和致使CPU 1401执行计算机的各种处理过程的程序和数据。所述程序和数据包括所述软件和功能扩展卡1408的运行控制程序。外部存储设备1406还保存每个虚拟对象的多边形序列数据和通过I/F 1407从外部接收的程序和数据。
保存在外部存储设备1406中的各种信息在CPU 1401的控制下视需要被载入RAM 1402。当CPU 1401使用载入的程序和数据执行处理时,计算机可以执行在上述实施方案中描述的冲突判断处理。
I/F 1407将计算机连接到网络,例如LAN或因特网。
功能扩展卡1408例如是一个部分或完整执行虚拟对象渲染处理或冲突判断处理的处理板。
总线1409连接上述单元。
[其它实施方案]
本发明的目的也可以通过以下方法实现。记录用于实施上述实施方案的功能的软件程序代码的记录介质(或存储介质)被提供给系统或装置。该系统或装置的计算机(或CPU或MPU)读出并执行存储在记录介质中的程序代码。在这种情况下,从记录介质读出的程序代码本身实现上述实施方案的功能。记录这些程序代码的记录介质构成本发明。
当计算机执行读出的程序代码时,运行在计算机上的操作系统(OS)根据这些程序代码的指令部分地或完整地执行实际处理,从而实现上述实施方案的功能。
从记录介质读出的程序代码被写入插入到计算机的功能扩展卡或者连接到计算机的功能扩展单元的存储器中。功能扩展卡或功能扩展单元的CPU根据程序代码的指令部分地或完整地执行实际处理,从而实现上述实施方案的功能。
应用本发明的记录介质存储与上述流程图相对应的程序代码。
虽然结合示例性的实施方案描述了本发明,但可以理解本发明不限于所公开的示例性实施方案。所附权利要求的范围被赋予最宽广的解释,以便包括所有这样的修改以及等同结构和功能。
Claims (6)
1.一种在三维虚拟对象之间执行冲突判断处理的图像处理方法,包括:
分割步骤,将均为多边形并形成一个三维虚拟对象的多个成分分割成多个组;
设置步骤,对于所述多个组中的每一个,根据由该组中的成分形成的虚拟对象的面积或速度设置指示该组中不用于冲突判断处理的成分的比例的无效比;
选择步骤,根据各无效比,从包括在所述多个组中的每一个中的成分中选择将被用于冲突判断处理的成分;和
冲突判断步骤,利用在选择步骤中对于每个三维虚拟对象选择出的成分,在三维虚拟对象之间执行冲突判断处理。
2.根据权利要求1所述的方法,其中所述分割步骤包括以下步骤:
计算形成三维虚拟对象的多个成分中的每一个的面积;以及
根据每个成分的所计算的面积将形成三维虚拟对象的多个成分分割成多个组。
3.根据权利要求1所述的方法,其中所述分割步骤包括以下步骤:
计算一个三维虚拟对象和另一个三维虚拟对象之间的相对速度;以及
根据所计算的相对速度将形成三维虚拟对象的多个成分分割成多个组。
4.一种用于在三维虚拟对象之间执行冲突判断处理的图像处理装置,包括:
分割单元,被配置为将均为多边形并形成一个三维虚拟对象的多个成分分割成多个组;
设置单元,被配置为对于所述多个组中的每一个,根据由该组中的成分形成的虚拟对象的面积或速度设置指示该组中不用于冲突判断处理的成分的比例的无效比;
选择单元,被配置为根据各无效比,从包括在所述多个组中的每一个中的成分中选择将被用于冲突判断处理的成分;和
冲突判断单元,被配置为利用由选择单元对于每个三维虚拟对象选择出的成分,在三维虚拟对象之间执行冲突判断处理。
5.根据权利要求4所述的装置,其中所述分割单元包括:
被配置为计算形成三维虚拟对象的多个成分中的每一个的面积的单元;和
被配置为根据每个成分的所计算的面积将形成三维虚拟对象的所述多个成分分割成多个组的单元。
6.根据权利要求4所述的装置,其中所述分割单元包括:
被配置为计算一个三维虚拟对象和另一个三维虚拟对象之间的相对速度的单元;和
被配置为根据所计算的相对速度将形成三维虚拟对象的多个成分分割成多个组的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006-269017 | 2006-09-29 | ||
JP2006269017A JP4936522B2 (ja) | 2006-09-29 | 2006-09-29 | 画像処理方法、画像処理装置 |
JP2006269017 | 2006-09-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101154293A CN101154293A (zh) | 2008-04-02 |
CN101154293B true CN101154293B (zh) | 2010-08-25 |
Family
ID=38831430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101620035A Expired - Fee Related CN101154293B (zh) | 2006-09-29 | 2007-09-29 | 图像处理方法和图像处理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8576248B2 (zh) |
EP (1) | EP1906361A3 (zh) |
JP (1) | JP4936522B2 (zh) |
CN (1) | CN101154293B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230173231A (ko) | 2013-03-11 | 2023-12-26 | 매직 립, 인코포레이티드 | 증강 및 가상 현실을 위한 시스템 및 방법 |
KR102560629B1 (ko) | 2013-03-15 | 2023-07-26 | 매직 립, 인코포레이티드 | 디스플레이 시스템 및 방법 |
US9607414B2 (en) | 2015-01-27 | 2017-03-28 | Splunk Inc. | Three-dimensional point-in-polygon operation to facilitate displaying three-dimensional structures |
US9916326B2 (en) | 2015-01-27 | 2018-03-13 | Splunk, Inc. | Efficient point-in-polygon indexing technique for facilitating geofencing operations |
US9836874B2 (en) | 2015-01-27 | 2017-12-05 | Splunk Inc. | Efficient polygon-clipping technique to reduce data transfer requirements for a viewport |
US10026204B2 (en) | 2015-01-27 | 2018-07-17 | Splunk Inc. | Efficient point-in-polygon indexing technique for processing queries over geographic data sets |
CN112639579B (zh) | 2018-08-31 | 2023-09-15 | 奇跃公司 | 用于增强现实装置的空间分辨的动态调暗 |
JP2022517207A (ja) | 2019-01-11 | 2022-03-07 | マジック リープ, インコーポレイテッド | 種々の深度における仮想コンテンツの時間多重化された表示 |
CN112015272B (zh) * | 2020-03-10 | 2022-03-25 | 北京欧倍尔软件技术开发有限公司 | 虚拟现实系统及虚拟现实对象控制装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675720A (en) | 1993-09-14 | 1997-10-07 | Fujitsu Limited | Method of searching for points of closest approach, and preprocessing method therefor |
JP2820894B2 (ja) * | 1994-09-02 | 1998-11-05 | 富士通株式会社 | 干渉チェックシステムにおける凸多面体生成装置 |
JP3766133B2 (ja) * | 1996-02-29 | 2006-04-12 | 富士通株式会社 | プリント基板の3次元回路設計支援システム |
JPH10247252A (ja) * | 1997-03-04 | 1998-09-14 | Sharp Corp | 衝突判定処理装置 |
US6191796B1 (en) * | 1998-01-21 | 2001-02-20 | Sensable Technologies, Inc. | Method and apparatus for generating and interfacing with rigid and deformable surfaces in a haptic virtual reality environment |
JP2000200361A (ja) * | 1998-08-07 | 2000-07-18 | Sega Enterp Ltd | 画像処理装置及び情報記録媒体 |
JP4030209B2 (ja) | 1998-12-09 | 2008-01-09 | 株式会社バンダイナムコゲームス | ゲーム装置および情報記憶媒体 |
US6500008B1 (en) * | 1999-03-15 | 2002-12-31 | Information Decision Technologies, Llc | Augmented reality-based firefighter training system and method |
US6734853B2 (en) | 2001-08-28 | 2004-05-11 | Intel Corporation | Method of using view frustrum culling for scaleable collision detection |
GB0224449D0 (en) * | 2002-10-21 | 2002-11-27 | Canon Europa Nv | Apparatus and method for generating texture maps for use in 3D computer graphics |
JP2004252756A (ja) * | 2003-02-20 | 2004-09-09 | Fujitsu Ltd | 物体干渉表現装置 |
JP2005071285A (ja) * | 2003-08-28 | 2005-03-17 | New Industry Research Organization | 空間内のインタラクションに応じて詳細度を変更する衝突検出方法及びその方法を用いた仮想空間生成装置 |
JP4503312B2 (ja) * | 2004-02-26 | 2010-07-14 | 株式会社島精機製作所 | ニットガーメントの着装シミュレーション方法とその装置、並びにそのプログラム |
JP2006178662A (ja) * | 2004-12-21 | 2006-07-06 | Canon Inc | 情報処理方法、情報処理装置 |
JP4335160B2 (ja) * | 2005-03-02 | 2009-09-30 | 任天堂株式会社 | 衝突判定プログラムおよび衝突判定装置 |
JP4508918B2 (ja) * | 2005-03-25 | 2010-07-21 | 株式会社バンダイナムコゲームス | 画像生成システム及び情報記憶媒体 |
US7773098B2 (en) * | 2005-05-11 | 2010-08-10 | Canon Kabushiki Kaisha | Virtual reality presentation apparatus and method |
-
2006
- 2006-09-29 JP JP2006269017A patent/JP4936522B2/ja not_active Expired - Fee Related
-
2007
- 2007-09-10 US US11/852,718 patent/US8576248B2/en not_active Expired - Fee Related
- 2007-09-12 EP EP07116192A patent/EP1906361A3/en not_active Withdrawn
- 2007-09-29 CN CN2007101620035A patent/CN101154293B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080278480A1 (en) | 2008-11-13 |
EP1906361A3 (en) | 2008-08-06 |
US8576248B2 (en) | 2013-11-05 |
JP2008090498A (ja) | 2008-04-17 |
JP4936522B2 (ja) | 2012-05-23 |
CN101154293A (zh) | 2008-04-02 |
EP1906361A2 (en) | 2008-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101154293B (zh) | 图像处理方法和图像处理装置 | |
US10831258B2 (en) | Information processing apparatus, method for information processing, and game apparatus for performing different operations based on a movement of inputs | |
Knott | CInDeR: collision and interference detection in real time using graphics hardware | |
CA2609873A1 (en) | Multi-dimensional locating system and method | |
CN102221975A (zh) | 使用运动捕捉数据的项目导航 | |
CN101681526B (zh) | 通过使用可置换的剔除程序提高图形性能的方法和装置 | |
Montero et al. | Designing and implementing interactive and realistic augmented reality experiences | |
US20140176552A1 (en) | Partition Of A 3D Scene Into A Plurality Of Zones Processed By A Computing Resource | |
EP2626853A2 (en) | Scrolling screen apparatus, method for scrolling screen, and game apparatus | |
US7526456B2 (en) | Method of operation for parallel LCP solver | |
CN101310303B (zh) | 用于显示高分辨率图像数据和时变低分辨率图像数据的方法 | |
Fu et al. | Layerpaint: A multi-layer interactive 3d painting interface | |
Leikas et al. | Virtual space computer games with a floor sensor control—human centred approach in the design process | |
US12008707B2 (en) | Highly scalable cluster engine for hosting simulations of objects interacting within a space | |
US8145460B2 (en) | Information processing method and information processing apparatus | |
KR100469820B1 (ko) | 화면 갱신 방법 및 그 시스템 | |
WO2000041138A1 (fr) | Systeme d'absorption d'erreur de donnees squelette a trois dimensions | |
Klapaukh | An empirical evaluation of force-directed graph layout | |
US20070046667A1 (en) | Image generation program product and image generation device | |
Sullivan | Graph-based data visualization in virtual reality: a comparison of user experiences | |
JP2003271988A (ja) | 画像生成装置及びプログラム | |
Debenham | New algorithms for computing field of vision over 2D grids | |
JP3811604B2 (ja) | 画像描画方法、画像描画装置及び記録媒体 | |
Prakash et al. | Games technology: Console architectures, game engines and invisible interaction | |
Summers et al. | Development of a feature based design system using virtual reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100825 Termination date: 20180929 |
|
CF01 | Termination of patent right due to non-payment of annual fee |