专利名称:图像显示装置的制作方法
技术领域:
本发明涉及使用三维的几何学信息来显示图像的图像显示装置。
背景技术:
为了使用计算机图形学来构筑交互式的应用程序,需要使显示装置实时地显示图像,而对利用者提示该图像。作为对利用者提示的图像,除了在计算机内记录的图像以外,还有通过计算机对该记录的图像进行加工而得到的加工图像、使用所记录的信息并通过计算机内部性地描绘的图像等。 特别,为了在计算机内构筑在三维的假想空间内配置了假想物体的环境(假想环境),并使计算机描绘而显示从假想视点观察了的情况的假想环境,需要使用假想环境的三维的几何学的形状、颜色等大量的信息,来实时地进行投影处理等复杂的处理。但是,在所描绘的环境复杂的情况、计算机的处理性能不高的情况下,难以实时地进行上述处理。另外,作为表现计算机内的三维假想空间的数据形式,有各种形式,此处,设为成为描绘对象的假想物体、环境由将在假想空间内处于相互不同的位置的3点连接而得到的面表示的三角形多边形构成。在以往的图像显示装置中,在高速地描绘复杂的三维假想环境时,使用了 LOD(Level Of Detail,细节层次)技术。LOD技术是通过将表示成为描绘对象的三维假想环境的信息的一部分削减或者简化来缩短描绘时间的技术。例如,以下的专利文献I公开的LOD技术如下所述。首先,使表示显示对象的物体的原始的多边形模型简化,并与原始的多边形模型一起将简化了的多边形模型记录到辅助存储装置。接下来,在描绘显示对象的物体时,预测针对其描绘结果的各模型的视觉上的贡献度,对于贡献度比某阈值高的模型,从辅助存储装置将原始的多边形模型载入到存储器来进行描绘。另一方面,对于贡献度比某阈值低的模型,从辅助存储装置将简化了的多边形模型载入到存储器来进行描绘,从而节约存储器的消耗量和描绘时间。在这样适当选择原始的多边形模型或者简化了的多边形模型来进行描绘的情况下,有时发生如下那样的缺陷。例如,在由于视点的移动等而发生了原始的多边形模型和简化了的多边形模型的切换时,如果原始的多边形模型和简化了的多边形模型的形状大幅不同,则多边形模型的变化变得显著,而有时不自然变得显眼。此时,如果将与选择多边形模型时的贡献度相关的阈值设定得较高,则能够缓和上述不自然,但利用原始的多边形模型的比例增加,所以描绘的高速化、存储器量的削减效果减少。另外,如果将简化的等级不同的多个多边形模型记录到辅助存储装置,并根据多个阈值切换多个多边形模型,则能够缓和上述不自然,但辅助存储装置中记录的多边形模型的数据的量大幅增加。另外,针对辅助存储装置的访问次数也大幅增加,而产生瓶颈。在以下的非专利文献I中,作为与专利文献I公开的LOD技术不同的另一 LOD技术,公开了 View — Dependent Progressive Mesh (视点相关递进网格)。在View — Dependent Progressive Mesh中,在描绘对象的多边形模型中,削减对描绘结果视觉上的贡献度小的部分的多边形的数量,同时以使对与该多边形的削减相伴的描绘结果造成的影响变小的方式,使剩余的多边形的一部分变形。由此,能够保持作为描绘结果的图像的质量,同时缩短描绘的处理时间。另外,能够按照I顶点单位执行多边形的削减、削减后的多边形的复原,所以能够始终以所需最小限的多边形数进行描绘。另外,能够使多边形数的变化所致的描绘对象的 变形变得不显眼。但是,在View — Depent Progressive Mesh的情况下,除了描绘对象的多边形模型的模型信息以外,还需要将多边形的动态的增减所需的信息预先记录到可高速读出的存储器等存储装置。在一般的计算机的结构中,可高速读写的存储装置的容量比较小,所以在假想环境的规模大的情况下,难以记录多边形模型的模型信息、多边形的动态的增减所需的所有信息。特别,在嵌入设备等性能不是较高的终端中,可高速读写的存储装置的容量更小,所以难以对信息量多的三维假想环境,应用View — Depent Progressive Mesh。专利文献I :日本特开2004 - 213641号公报非专利文献 I :Hoppe, H·, “View dependent refinement of progressivemeshes,,,Proc.of International Conference on Computer Graphics and InteractiveTechniques,pp.189 一 198,1997.
发明内容
以往的图像显示装置如以上那样构成,所以如果应用将表示成为描绘对象的三维假想环境的信息的一部分削减或者简化的LOD技术,则能够缩短描绘时间。但是,在应用LOD技术的情况下,为了消除与在切换原始的多边形模型和简化了的多边形模型时产生的模型变化相伴的不自然,需要搭载能够高速地读写大量的数据(例如,简化的等级不同的多个多边形模型、多边形的动态的增减所需的信息等)的存储装置。因此,存在在未搭载可高速读写大量数据的存储装置的嵌入设备、一般的计算机中,有时无法应用LOD技术等课题。本发明是为了解决上述那样的课题而完成的,其目的在于得到一种图像显示装置,即使未搭载可高速读写大量数据的存储装置,也能够应用LOD技术,高速并且高质量地描绘复杂的三维假想环境。本发明的图像显示装置,具备模型分割单元,分割表现了三维物体的多边形模型;顶点数据生成单元,针对由模型分割单元分割的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据;数据保存单元,分割由顶点数据生成单元生成的顶点数据,将顶点数据的分割数据保存到存储装置;数据展开单元,从由存储装置保存的多个分割数据中,读入读入命令表示的分割数据,在能够从存储装置高速读写的记录介质中展开该分割数据,另一方面,从已在该记录介质中展开的分割数据中,丢弃丢弃命令表示的分割数据;详细度决定单元,针对由模型分割单元分割的每个多边形模型 ,考虑假想空间内的视点,来决定针对该多边形模型的描绘的详细度;多边形模型构筑单元,参照该记录介质中展开的分割数据,构筑具有与由详细度决定单元决定的详细度对应的顶点的数量的多边形模型,并且将表示读入对象的分割数据的读入命令以及表示丢弃对象的分割数据的丢弃命令输出到数据展开单元;以及描绘单元,描绘由多边形模型构筑单元构筑的多边形模型。根据本发明,图像显示装置具备模型分割单元,分割表现了三维物体的多边形模型;顶点数据生成单元,针对由模型分割单元分割的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据;数据保存单元,分割由顶点数据生成单元生成的顶点数据,将顶点数据的分割数据保存到存储装置;数据展开单元,从由存储装置保存的多个分割数据中,读入读入命令表示的分割数据,在能够从存储装置高速读写的记录介质中展开该分割数据,另一方面,从已在该记录介质中展开的分割数据中,丢弃丢弃命令表示的分割数据;详细度决定单元,针对由模型分割单元分割的每个多边形模型,考虑假想空间内的视点,来决定针对该多边形模型的描绘的详细度;多边形模型构筑单元,参照该记录介质中展开的分割数据,构筑具有与由详细度决定单元决定的详细度对应的顶点的数量的多边形模型,并且将表示读入对象的分割数据的读入命令以及表示丢弃对象的分割数据的丢弃命令输出到数据展开单元;以及描绘单元,描绘由多边形模型构筑单元构筑的多边形模型,所以具有即使不搭载能够高速读写大量数据的存储装置,也能够应用LOD技术来高速并且高质量地描绘复杂的三维假想环境的效果。
图I是示出本发明的实施方式I的图像显示装置的结构图。图2是示出多边形模型、顶点数据以及面数据的一个例子的说明图。图3是示出由模型分割部11分割多边形模型的分割例的说明图。图4是示出预处理部I中的数据生成部12的处理内容的流程图。图5是示出块单位的多边形模型伴随数据生成部12的处理而变化的样子的说明图。图6是示出根据图5 Ca)的多边形模型生成的顶点数据以及面数据的说明图。图7是示出伴随数据生成部12的处理而变化的顶点的逻辑上的连接关系的说明图。图8是示出由数据生成部12进行了一次顶点数据以及面数据的更新处理之后的顶点数据以及面数据的说明图。图9是示出由数据生成部12结束处理之后的面数据的说明图。图10是示出预处理部I中的分类部13的处理内容的流程图。
图11 (a)是示出由分类部13更新顶点索引之前的顶点的逻辑上的连接关系的说明图,(b)是示出由分类部13更新了顶点索引之后的顶点的逻辑上的连接关系的说明图,(c)是示出由分类部13对顶点进行了 3分割的状态的说明图。图12是示出表现图11(c)所示的树构造的顶点的数据构造的一个例子的说明图。图13是示出顶点索弓丨(顶点参照排列)被更新了的面数据的说明图。图14是示出面索引被更新了的面数据的说明图。图15是示出表示关联面的面索引被更新了的顶点数据的说明图。图16是示出由分类部13变换了的面数据的说明图。图17是示出将属于集合I的顶点数据以及面数据作为文件I记录到HDD2、将属于 集合2的顶点数据以及面数据作为文件2记录到HDD2、将属于集合3的顶点数据以及面数据作为文件3记录到HDD2的例子的说明图。图18是说明由详细度决定部32决定描绘的详细度的决定处理的说明图。图19是示出执行时处理部3中的多边形模型构筑部33的处理内容的流程图。图20是示出存储器4中展开的属于集合1、2的顶点数据以及面数据的说明图。图21是示出执行时处理部3中的描绘处理部34的处理内容的流程图。
具体实施例方式以下,为了更详细说明本发明,使用附图,说明具体实施方式
。实施方式I.图I是示出本发明的实施方式I的图像显示装置的结构图。在图I中,预处理部I包括模型分割部11、数据生成部12、分类部13以及数据保存部14,模型分割部11、数据生成部12、分类部13以及数据保存部14由例如安装了 CPU的半导体集成电路、或者单片机等构成。预处理部I实施如下处理分割表现了三维物体的多边形模型,针对分割后的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据。另外,预处理部I实施分割顶点数据,并将该顶点数据的分割数据记录到HDD2中的处理。HDD2是记录由预处理部I生成的顶点数据的分割数据的大容量的辅助存储装置。在图I中,示出了作为大容量的辅助存储装置使用了 HDD2的例子,但辅助存储装置不限于HDD2,例如,也可以使用闪存存储器等容量大的任意的存储介质。此处,多边形模型是被表示为将在假想空间内存在于相互不同的位置的3点连接了的3个线段所包围的面的集合的形状,3个线段所包围的面被称为“多边形”。另外,构成多边形的3个点被称为“多边形的顶点”,连接多边形的顶点的3个线段被称为“多边形的边”。表现多边形模型的数据构造有很多,在该实施方式I中,处理具有包括唯一的顶点索引和三维位置构成的顶点数据的集合、以及包括唯一的面索引和向多边形的3顶点的参照信息构成的面数据的集合的数据。
图2是示出多边形模型、顶点数据以及面数据的一个例子的说明图。(a)示出二维地投影的多边形模型,附加“I”至“9”的顶点索引来表示多边形的9个顶点。另外,附加“I”至“10”的面索弓丨(为了与顶点的索引区分,用括弧将面的索引括起来)来表示连接各顶点的线段所包围的多边形。(b)示出构成(a)的多边形模型的顶点数据,I个纵列表示I个顶点,各纵列保有唯一的顶点索引、和用xyz轴定义的正交坐标系内的三维位置(X,Y,Z)。另外,(C)示出表示多边形的面的面数据,I个纵列表示I个多边形面,各纵列保有唯一的面索引、并作为构成三角形的多边形的3个顶点的参照信息保有3个顶点索引。
在该实施方式I中,设为三角形的多边形模型,但也可以通过预处理部I具备将表现任意的三维形状的数据变换为多边形模型的单元,输入任意的三维目标,并将该三维目标的数据变换为多边形模型。另外,多边形模型也可以是处于具有三维以外的维数的假想空间内的模型。执行时处理部3包括数据展开部31、详细度决定部32、多边形模型构筑部33以及描绘处理部34,详细度决定部32、多边形模型构筑部33以及描绘处理部34由例如安装了CPU的半导体集成电路、单片机、或者GPU (Graphics Processing Unit,图形处理单元)等构成。执行时处理部3实施读入由HDD2记录的多个分割数据,并将该分割数据在作为可从HDD2高速读写的记录介质的存储器4中展开的处理,并且,实施针对由预处理部I分割的每个多边形模型,考虑假想空间内的视点,决定针对该多边形模型的描绘的详细度的处理。另外,执行时处理部3实施参照已在存储器4中展开的分割数据,构筑具有与描绘的详细度对应的顶点的数量的多边形模型,并使该多边形模型的图像显示于图像显示部5的处理。存储器4是虽然相比于HDD2存储容量更小,但可从HDD2高速读写的记录介质,例如是RAM等。图像显示部5是通过执行时处理部3的描绘处理显示多边形模型的显示器等输出
>J-U ρ α装直。预处理部I的模型分割部11具备输入表现了三维物体的多边形模型的接口(例如,在从LAN等网络输入多边形模型的情况下,为LAN卡等网络设备),实施将该多边形模型分割为块(相互的距离近的I个以上的多边形的集合)单位的处理。另外,模型分割部11构成模型分割单元。预处理部I的数据生成部12实施如下处理针对由模型分割部11分割的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据,并且生成与I个以上的多边形的各面相关的面数据。此处,如图6所示,顶点数据针对包括新的顶点的I个以上的多边形模型的每个顶点,包括识别该顶点的顶点索引、表示该顶点的三维位置的位置信息、表示与该顶点存在逻辑上的连接关系的顶点的连接信息、表示该顶点是否为描绘对象的顶点的有效标志等,将在后面对其进行详细描述。另外,面数据针对包括新的顶点的I个以上的多边形模型的每个面,包括识别该面的面索引、表示构成该面的顶点的顶点信息、表示该面是否为描绘对象的面的有效标志
坐寸ο预处理部I的分类部13实施更新由数据生成部12生成的顶点数据的顶点索引以及面数据的顶点索引的处理、分割该顶点数据并输出该顶点数据的分割数据的处理。预处理部I的数据保存部14实施将从分类部13输出的顶点数据的分割数据保存到HDD2的处理。
另外,数据保存单元具有分类部13以及数据保存部14。执行时处理部3的数据展开部31实施如下处理从由HDD2保存的多个分割数据中,读入从多边形模型构筑部33输出的读入命令表示的分割数据,并将该分割数据在存储器4中展开,另一方面,从该已在存储器4中展开的分割数据中,丢弃从多边形模型构筑部33输出的丢弃命令表示的分割数据。另外,数据展开部31构成了数据展开单元。执行时处理部3的详细度决定部32具备输入表示假想空间内的视点的视点信息的接口(例如,在从LAN等网络输入多边形模型的情况下,为LAN卡等网络设备),实施针对由预处理部I的模型分割部11分割的每个多边形模型,考虑该视点信息表示的假想空间内的视点,来决定针对该多边形模型的描绘的详细度的处理。S卩,详细度决定部32实施如下处理以是否处于从假想空间内的视点看到分割后的多边形模型的位置、假想空间内的视点至分割后的多边形模型的距离、或者、在从假想空间内的视点观察了分割后的多边形模型时该多边形模型是否构成分割前的多边形模型(对预处理部I提供的多边形模型)的轮廓的一部分等为判断基准,计算分割后的多边形模型的图像针对分割前的多边形模型的图像的贡献度,该贡献度越高,将针对该多边形模型的描绘的详细度设定为越高的值。另外,详细度决定部32构成了详细度决定单元。执行时处理部3的多边形模型构筑部33实施如下处理针对由预处理部I的模型分割部11分割的每个多边形模型,以使该多边形模型中的顶点的数量与和由详细度决定部32决定的详细度对应的顶点的数量一致的方式,更新存储器4中展开的分割数据中包含的顶点数据以及面数据的有效标志,从而构筑描绘对象的多边形模型。另外,多边形模型构筑部33实施将表示读入对象的分割数据的读入命令以及表示丢弃对象的分割数据的丢弃命令输出到数据展开部31的处理。S卩,实施如下处理在当前仅通过存储器4中展开的分割数据不能构筑具有与由详细度决定部32决定的详细度对应的顶点的数量的多边形模型的情况下,将指示读入其他分割数据的读入指令输出到数据展开部31,另一方面,在构筑具有与由详细度决定部32决定的详细度对应的顶点的数量的多边形模型之后,在存储器4中展开了多余的分割数据的情况下,将指示丢弃多余的分割数据的丢弃指令输出到数据展开部31。另外,多边形模型构筑部33构成了多边形模型构筑单元。执行时处理部3的描绘处理部34实施如下处理将由多边形模型构筑部33构筑的多边形模型(由多边形模型构筑部33更新后的有效标志表示是描绘对象的意思的顶点所构成的多边形模型)的图像例如在内部的视频RAM上描绘,并将其图像输出到图像显示部5。另外,描绘处理部34构成了描绘单元。在图I中,假设了作为图像显示装置的构成要素的预处理部I、HDD2、执行时处理部3、存储器4以及图像显示部5分别由专用的硬件构成的例子,但在作为图像显示装置的构成要素的预处理部I以及执行时处理部3由计算机构成的情况下,也可以将记述了预处理部I以及执行时处理部3的处理内容的程序储存到该计算机的存储器,并使该计算机的CPU执行该存储器中储存的程序。此处,图4是示出预处理部I中的数据生成部12的处理内容的流程图。另外,图10是示出预处理部I中的分类部13的处理内容的流程图。图19是示出执行时处理部3中的多边形模型构筑部33的处理内容的流程图。另外,图21是示出执行时处理部3中的描绘处理部34的处理内容的流程图。
接下来,说明动作。预处理部I的模型分割部11如果输入了表现了三维物体的多边形模型,则将该多边形模型分割为块(相互的距离近的I个以上的多边形的集合)单位。图3是示出由模型分割部11分割多边形模型的分割例的说明图。图3 Ca)示出分割前的多边形模型,图3 (b)示出分割后的多边形模型。在图3(b)中,虚线表示各块的边界。在图3的例子中,将多边形模型的表面分割为单纯的格子状,但例如,也可以通过以使各块中包含的多边形的顶点的数量相等的方式割开等任意的割开方法来分割。另外,在通过分割所提供的多边形模型而多边形面被切断等在各多边形的形状中可能引起变化的情况下,也可以预先以使各多边形的边与切断面一致的方式,进行对多边形的顶点、面进行加工等处理(防止多边形的形状的变化的处理)。如果模型分割部11将多边形模型分割为块单位,则预处理部I的数据生成部12针对块单位的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据。以下,具体说明数据生成部12的处理内容。首先,数据生成部12生成初始状态的顶点数据和面数据。S卩,数据生成部12针对块单位的每个多边形模型,生成将构成了该多边形模型的I个以上的多边形中的既存的顶点作为“叶”的树构造的顶点数据,并且生成与I个以上的多边形的各面相关的面数据(图4的步骤STl )。此处,图5是示出块单位的多边形模型伴随数据生成部12的处理而变化的样子的说明图。在图5中,f 14表示后述顶点索引,(I) (10)表示后述面索引。另外,图6是示出根据图5 Ca)的多边形模型生成的顶点数据以及面数据的说明图。图6 (a)示出在数据生成部12提供了图5 (a)所示的I个块的多边形模型时,根据该多边形模型生成的树构造的顶点数据。顶点数据中的I个纵列表示I个顶点,各纵列由以下的(I) (5)的信息构成。(I)识别该顶点的顶点索引(例如,Γ9的数字)
(2)表示该顶点的三维位置(X,Y,Z)的位置信息(3)表示与该顶点存在逻辑上的连接关系的顶点的连接信息(表示与该顶点的父节点相当的顶点的顶点索弓I、和表示与该顶点的子节点相当的顶点的顶点索引)其中,在该阶段中,不根据既存的顶点生成新的顶点(新的顶点的生成处理将后述),所以不存在与父节点、子节点相当的顶点,在图6 (a)中,将表示无与父节点、子节点相当的顶点的意思的“一 I”代入到连接信息。(4)确定作为在后述树构造生成的过程中削减的多边形面的关联面的面索引其中,在该阶段中,不存在所削减的多边形面,所以在确定关联面的面索引中,代入“一I,,。(5)表示该顶点是否为描绘对象的顶点的有效标志(在有效标志是“I”(有效)的 情况下,表示由执行时处理部3描绘该顶点,在有效标志是“O”(非有效)的情况下,表示不由执行时处理部3描绘该顶点,但在该阶段中,所有有效标志被初始化为“ I ”(有效))图6 (b)示出在数据生成部12提供了图5 (a)所示的I个块的多边形模型时,根据该多边形模型生成的面数据。在面数据中,生成与所输入的块中包含的多边形的面相同数量的纵列,I个纵列表示I个面。顶点数据的各纵列由以下的(I) (3)的信息构成。(I)识别该面的面索引(例如,f 10的数字)(2)表示构成该面的3个顶点的顶点索引(顶点参照排列)(3)表示该面是否为描绘对象的面的有效标志(在有效标志是“I”(有效)的情况下,表示由执行时处理部3描绘该面,在有效标志是“O”(非有效)的情况下,表示不由执行时处理部3描绘该面,但在该阶段中,不存在所削减的多边形面,所以所有有效标志被初始化为“I” (有效))以后,将有效标志是“I”的顶点、面称为有效的顶点、有效的面,将有效标志是“O”的顶点、面称为非有效的顶点、非有效的面。图7是示出伴随数据生成部12的处理而变化的顶点的逻辑上的连接关系的说明图。特别,图7 (a)示出图6 Ca)的顶点数据表示的各顶点的逻辑上的连接关系。在图6 (a)的顶点数据中的各顶点(顶点索引是“I” “9”的顶点)中,如上所述,不存在与父节点以及子节点相当的顶点,所以不与其他顶点连接。在图7中,使用发白地涂覆的圆来表示有效的顶点,使用用斜线涂覆的圆来表示非有效的顶点。数据生成部12如果生成了初始状态的顶点数据和面数据,则比较该顶点数据中的有效的顶点的数量与预先设定的阈值。此处的阈值是预先设定的任意的数值,在对预处理部I提供的多边形模型如图3那样被分割为四边形的块的情况下,将与该块的顶点数相当的“4”设定为阈值。另外,在对预处理部I提供的多边形模型被分割为五边形的块的情况下,将与该块的顶点数相当的“ 5 ”设定为阈值。其中,阈值是任意地设定的值,即使块是四边形,也不限于“4”,而例如也可以是“5”、“6”等数值(但是,比块中包含的I个以上的多边形的顶点的数量少的数值)。在数据生成部12中,如果有效的顶点的数量大于预先设定的阈值,则转移到以下的步骤ST3的处理,如果有效的顶点的数量是阈值以下,则结束处理(步骤ST2)。在该阶段中,所有顶点(顶点索引是“I” “9”的顶点)是有效的顶点,所以有效的顶点的数量大于阈值,转移到以下的步骤ST3的处理。数据生成部12在有效的顶点的数量大于阈值的情况下,从顶点数据中包含的所有有效的顶点中,依次取出任意的2个顶点(以下,称为“一对”),将针对该块的该一对的重要度计算为评价值(步骤ST3)。为了针对有效的顶点中的所有一对计算重要度,例如,在有效的顶点存在9个的情况下,针对9C2=36组的一对计算重要度。作为成为一对的2个顶点的重要度的尺度,例如,能够使用成为一对的2个顶点之 间的几何学的距离、在削减了成为一对的2个顶点中的I顶点的情况下产生的多边形模型
的变形量等。另外,也可以在计算一对的重要度时,考虑重要度的计算时间、精度,来选择适合的尺度。在数据生成部12中,如果将所有一对的重要度计算为评价值,则确定评价值最低的一对,使构成该一对的2个顶点的有效标志成为“0”,将该2个顶点变更为非有效的顶点。例如,在图5 (a)的顶点7和顶点8的一对中的评价值最低的情况下,使顶点7和顶点8的有效标志成为“0”,使顶点7和顶点8成为非有效的顶点(参照图7 (b))。另外,数据生成部12在构成该一对的2个顶点中的、与某一方的顶点相同的位置新生成I个有效的顶点,将对顶点数据中的最大值的顶点索引(在图6(a)的例子中,“9”)力口上“I”而得到的“10”的顶点索引作为新的顶点索引,并追加到该顶点数据(参照图8 (a))。图8是示出在由数据生成部12进行了一次顶点数据以及面数据的更新处理之后的顶点数据以及面数据的说明图。在图5 (b)中,示出了在与顶点7相同的位置生成了有效的顶点10的例子,但也可以在与顶点8相同的位置生成有效的顶点10。对于选择顶点7和顶点8中的哪一个位置,没有特别限定,例如,也可以计算在与顶点7相同的位置生成有效的顶点10的情况的多边形模型的密度、和在与顶点8相同的位置生成有效的顶点10的情况的多边形模型的密度,选择多边形模型的密度更高的一方。另外,也可以计算在与顶点7相同的位置生成有效的顶点10的情况的多边形模型的变形量、和在与顶点8相同的位置生成有效的顶点10的情况的多边形模型的变形量,选择多边形模型的变形量更小的一方。另外,此处,数据生成部12在构成一对的2个顶点中的、与某一方的顶点相同的位置新生成了 I个有效的顶点,但不限于此,例如,也可以在表示2个顶点的平均值的位置、或多边形模型的变形量变得最小的位置新生成I个有效的顶点。在数据生成部12中,例如,如果使顶点7和顶点8成为非有效的顶点,则参照面数据,检索将顶点7和顶点8这两方作为顶点的多边形的面,使该面的有效标志成为“0”,将该面变更为非有效的面。在图5 (a)的例子中,使多边形的面(4)和面(8)成为非有效的面(参照图8 (b))。
数据生成部12如果更新有效标志而追加了新的顶点索引,则实施顶点数据和面数据的更新处理(步骤ST4)。具体而言,在顶点数据中,如图8 (a)所示,在赋予了 “10”的顶点索引的顶点10的位置信息的栏中,记录顶点10的三维位置(xio,yio, zio),在顶点10的子节点的栏中,记录顶点7和顶点8的顶点索引,在顶点10的关联面的栏中,记录成为非有效的面(4)和面(8)的面索引。另外,在成为非有效的顶点7以及顶点8的父节点的栏中,记录顶点10的顶点索引。另外,作为顶点10的有效标志记录“ I ”,作为顶点7和顶点8的有效标志记录“O”。在面数据中,如图8 (b)所示,在表示构成了赋予了“10”的面索引的面(10)的顶点的栏中,在原来记录的成为非有效的顶点8的顶点索引之前,记录顶点10的顶点索引。另外,在顶点中包括顶点7或者顶点8的面(2)、面(5)、面(6)、面(7)以及面(9)·中,在表示构成了面的顶点的栏中,在顶点7或者顶点8的顶点索引之前,记录顶点10的顶点索引。图7 (b)示出由数据生成部12进行了一次步骤ST3、ST4的处理之后的顶点的逻辑上的连接关系,在图7 (b)中,示出新生成顶点10,并作为从有效的顶点更新为非有效的顶点的顶点7和顶点8的父节点,连接了顶点10的样子。在数据生成部12中,如果实施了顶点数据和面数据的更新处理,则返回步骤ST2的处理,直至有效的顶点的数量成为阈值以下,反复实施步骤ST2 ST4的处理。虽然省略详细的处理,图5 (C)示出通过数据生成部12进行了两次步骤ST3、ST4的处理之后的多边形模型。此处,根据顶点2和顶点5新生成了顶点11。图7 (c)示出通过数据生成部12进行了两次步骤ST3、ST4的处理之后的顶点的逻辑上的连接关系,在图7 (c)中,新生成顶点11,并作为从有效的顶点更新为非有效的顶点的顶点2和顶点5的父节点,连接了顶点11的样子。图5 Cd)示出通过数据生成部12进行了五次步骤ST3、ST4的处理之后的多边形模型(有效的顶点的数量等于阈值的时刻的多边形模型)。图7 Cd)示出通过数据生成部12进行了五次步骤ST3、ST4的处理之后的顶点的逻辑上的连接关系。图9是示出由数据生成部12进行的处理结束之后的面数据的说明图,对应于图5Cd)以及图7⑷。预处理部I的分类部13除了实施如果数据生成部12生成了顶点数据,则更新该顶点数据的顶点索引、面数据的顶点索引的处理以外,还实施分割该顶点数据,并将该顶点数据的分割数据输出到数据保存部14的处理。以下,具体说明分类部13的处理内容。分类部13按照接下来的3个规则,更新由数据生成部12生成的顶点数据的顶点索引(图10的步骤ST11)。[规则I]针对成为根的顶点,作为顶点索引赋予独特的整数。[规则2]
针对根以外的顶点,赋予比根的顶点索引的最大值以及父节点的顶点索引大的顶点索引。另外,针对作为连接了相同的父节点的子节点的多个顶点,作为顶点索弓丨,在子节点彼此中赋予邻接的整数。[规则3]
计算各顶点对多边形模型的形状贡献的程度(例如,由数据生成部12计算出的评价值),对于其程度越高的顶点,赋予越小的顶点索引。图11 (a)示出由分类部13更新顶点索引之前的顶点的逻辑上的连接关系,图11(b)示出由分类部13更新顶点索引之后的顶点的逻辑上的连接关系。图11 (a)表示的顶点的逻辑上的连接关系与图7 Cd)表示的顶点的逻辑上的连接关系(由数据生成部12进行的处理结束之后的顶点的逻辑上的连接关系)相同,在数据生成部12的处理结束的时刻,有效的顶点(成为根的顶点)的个数是4个。对于4个有效的顶点,通过应用规则1、3,如图11 (b)所示,将顶点索引从“I”、“ 11 ”、“ 12 ”、“ 14 ” 更新为 “ I ”、“ 2 ”、“ 3 ”、“ 4 ”。对于10个非有效的顶点,通过应用规则2,更新为比4个有效的顶点的顶点索引大的顶点索引。另外,对于与非有效的顶点连接的子节点(非有效的顶点),更新为比作为其父节点的非有效的顶点的顶点索引大的顶点索引。进而,对于连接了相同的父节点的多个子节点(非有效的顶点),在子节点彼此中将邻接的整数更新为顶点索引。对于10个非有效的顶点,也应用规则3。由此,例如,将与3个有效的顶点连接的6个非有效的顶点的顶点索引从“ 2 ”、“ 5 ”、“ 3 ”、“ 6 ”、“ 4 ”、“13” 更新为 “ 11 ”、“ 12 ”、“ 9 ”、“ 10 ”、“ 5 ”、“ 6 ”。另外,将与非有效的顶点连接的4个非有效的顶点的顶点索引从“ 9 ”、“ IO ”、“ 7 ”、“ 8 ” 更新为 “ 7 ”、“ 8 ”、“ 13 ”、“ 14 ”。在分类部13中,如果更新了顶点数据的顶点索引,则使用预先设定的阈值,将该顶点数据分割为多个集合(步骤ST12)。例如,在将顶点数据分割为3个集合的情况下,设定2个阈值,在将顶点数据分割为5个集合的情况下,设定4个阈值。在该实施方式I中,为便于说明,设为将顶点数据分割为3个集合,并设定2个阈值。此时,作为2个阈值,设定了任意的数值,例如,在将顶点f 4分类为集合1,将顶点5^10分类为集合2,将顶点If 14分类为集合3的情况下,作为阈值,设定“4”和“10”。另外,也可以根据多边形模型的顶点的数量动态地变更2个阈值。分类部13在例如设定了 2个阈值,且2个阈值是“4”和“10”的情况下,将顶点数据中的、与顶点索引是“4”以下的顶点(赋予了“1”、“2”、“3”、“4”的顶点索引的顶点)相关的顶点数据分类为集合I (集合索引是“I”的集合)。另外,将顶点数据中的、与顶点索引大于“4”、并且小于等于“10”的顶点(赋予了“5”、“6”、“7”、“8”、“9”、“10”的顶点索引的顶点)相关的顶点数据分类为集合2 (集合索引是“2”的集合)。
进而,将顶点数据中的、与顶点索引大于“10”的顶点(赋予了 “11”、“12”、“13”、“14”的顶点索引的顶点)相关的顶点数据分类为集合3 (集合索引是“3”的集合)。但是,分类部13针对成为树构造的根的顶点,以属于全部相同的集合(集合索引是“I”的集合)的方式分类。因此,在图11的例子中,将I个阈值设定为“4”。在分类部13中,如果将顶点数据分割为多个集合,则将各顶点的顶点索引更新为由集合索引、和在该顶点所属的集合内唯一的顶点索引的组合构成的索引(集合索引一集合内顶点索引)。例如,对于属于集合I的顶点的顶点索引,从“1”、“2”、“3”、“4”被更新为“I — I”、“I — 2,,、“ I — 3,,、“ I — 4”。另外,对于属于集合2的顶点的顶点索引,从“5”、“6”、“7”、“8”、“9”、“10”被更新为 “2 - 1,,、“2 - 2,,、“2 - 3,,、“2 - 4,,、“2 — 5,,、“2 — 6”。 进而,对于属于集合3的顶点的顶点索弓丨,从“11”、“12”、“13”、“14”被更新为“3 —1,,、“3 — 2,,、“3 — 3,,、“3 — 4”。此处,图12是示出表现图11 (c)所示的树构造的顶点的数据构造的一个例子的说明图。图12所示的数据具有识别各顶点的顶点索弓I、表示顶点的三维位置的位置信息、表示父节点的顶点索引、表示子节点的顶点索引、表示关联面的面索引、有效标志。在分类部13中,如果更新了顶点索引,则与更新后的顶点索引一并地,更新面数据中包含的顶点索引(顶点参照排列)(步骤ST13)。此处,图13是示出顶点索引(顶点参照排列)被更新的面数据的说明图。如图9以及图13所示,例如,面索引为“I”的顶点参照排列中记录的“I”的顶点索引被置换为“I - 1”,“13”的顶点索引被置换为“2 - 2”,“9”的顶点索引被置换为“2 -3”,“4”的顶点索引被置换为“2 - I”。对于面索引为“2” “10”的顶点参照排列中记录的顶点索引,也同样地被置换。在分类部13中,如果更新了面数据中包含的顶点索引(顶点参照排列),则决定多边形模型的各面所属的集合,更新识别各面的面索引(步骤ST14)。具体而言,如以下那样,决定多边形模型的各面所属的集合。此处,图14是示出面索引被更新的面数据的说明图。[集合I]在面数据中包含的3个顶点参照排列1、2、3这全部中,决定为记录了 I个以上的属于集合I的顶点索引的面是属于集合I的面。在图13的例子中,对于面索引为“6”和“9”的面,在3个顶点参照排列1、2、3这全部中,记录了 I个以上的属于集合I的顶点索引,所以被分类为集合I (参照图14)。[集合2]在属于集合I的面以外的面、且3个顶点参照排列1、2、3这全部中,决定为记录了属于集合I的顶点索引、或者、属于集合2的顶点索引的面是属于集合2的面。在图13的例子中,对于面索引为“1”、“2”、“3”、“5”、“10”的面,在3个顶点参照排列1、2、3这全部中,记录了属于集合I的顶点索引、或者、属于集合2的顶点索引,所以被分类为集合2 (参照图14)。
[集合3]决定为属于集合I或者集合2的面以外的面是属于集合3的面。在图13的例子中,对于面索引为“4”、“7”、“8”的面,由于不属于集合1、2,所以被分类为集合3 (参照图14)。在分类部13中,如果决定了多边形模型的各面所属的集合,则如图14所示,将各面的面索引更新为由集合索引、和在该面所属的集合内唯一的面索引的组合构成的索引(集合索引一集合内面索引)。例如,对于属于集合I的面的面索引,从“6”、“9”被更新为“I — 1”、“1 — 2”。另外,对于属于集合2的面的面索引,从“1”、“3”、“2”、“5”、“10”被更新为“2 — 1,,、“2 - 2,,、“2 - 3,,、“2 - 4,,、“2 — 5”。 进而,对于属于集合3的面的面索引,从“7”、“4”、“8”被更新为“3 — 1”、“3 — 2”、“3 — 3”。在分类部13中,如果更新了面索引,则与更新后的面索引一并地,更新表示顶点数据中包含的关联面的面索引。此处,图15是示出表示关联面的面索引被更新了的顶点数据的说明图。如图12以及图15所示,例如,顶点索引为“I — 2”的关联面中记录的“7”的面索引被置换为“3 - 1”,顶点索引为“一 4”的关联面中记录的“I”和“3”的面索引被置换为“2 — I”和 “2 — 2”。对于其他面索弓I,也同样地被置换。最后,分类部13与针对HDD2的保存形式符合地对面数据进行整形(步骤ST15)。S卩,分类部13将图14所示的面数据变换为图16所示的面数据。图16是示出由分类部13变换了的面数据的说明图。面数据的保存形式包括各面的面索引、顶点参照I 一 f I 一 3、顶点参照2 — Γ2 一
3、顶点参照3 — 1^3 — 3、以及有效标志。各面的面索引和有效标志是拷贝图14的面索引和有效标志而得到的结果。顶点参照I 一 f I 一 3是在图14的顶点参照排列广3中记录的顶点索引中,有I个以上的属于集合I的顶点索引的情况下,拷贝其中最大的顶点索引而得到的结果。例如,在面索引为“一 I”的顶点参照I 一 I中,拷贝了图14的顶点参照排列I中记录的“I - 1”,在顶点参照I 一 2中,拷贝了图14的顶点参照排列2中记录的“I - 2”,在顶点参照I 一 3中,拷贝了图14的顶点参照排列3中记录的“I - 4”。顶点参照2 —广2 — 3是在图14的顶点参照排列广3中记录的顶点索引中,有I个以上的属于集合2的顶点索引的情况下,拷贝其中最大的顶点索引而得到的结果。例如,在面索引为“I — I”的顶点参照2 — I中,在图14的顶点参照排列I中,没有属于集合2的顶点索引,所以记录了 “一 I”。在顶点参照2 — 2中,在图14的顶点参照排列2中,没有属于集合2的顶点索引,所以记录了“一 I”。在顶点参照I — 3中,拷贝了图14的顶点参照排列3中记录的“2 — 2”和“2 —4”中的、大的一方的“2 - 4”。顶点参照3 —广3 — 3是在图14的顶点参照排列广3中记录的顶点索引中,有I个以上的属于集合3的顶点索引的情况下,拷贝其中最大的顶点索引而得到的结果。例如,在面索引为“I — I”的顶点参照3 — I中,在图14的顶点参照排列I中,无属于集合3的顶点索引,所以记录了 “一 I”。另外,在顶点参照3 — 2中,拷贝了图14的顶点参照排列2中记录的“3 — 1”,在顶点参照3 - 3中,拷贝了图14的顶点参照排列3中记录的“3 - 3”。预处理部I的数据保存部14实施将从分类部13输出的顶点数据以及面数据的分割数据保存到HDD2的处理。S卩,数据保存部14将从分类部13输出的集合单位的顶点数据以及面数据作为I个保存单位,并将各集合分别记录到HDD2。这样,针对顶点数据以及面数据的每个集合,设为文件等逻辑上的I个群组,从而在执行时处理部3对HDD2中记录的各集合进行随机访问时,能够一样地在一定的时间内读 出各集合。此处,图17是示出将属于集合I的顶点数据以及面数据作为文件I记录到HDD2,将属于集合2的顶点数据以及面数据作为文件2记录到HDD2,将属于集合3的顶点数据以及面数据作为文件3记录到HDD2的例子的说明图。在图17中,〇中的数字表示顶点索弓丨,记录了附加了该顶点索引的顶点的数据(图15中的I纵列量的数据)。另外,□中的数字表示面索弓丨,记录了附加了该面索引的面的数据(图16中的I纵列量的数据)。另外,在图17中,仅图示了由模型分割部11分割为块单位的多边形模型中的、I个块的数据,但实际上,所有块的数据被记录到HDD2。在执行时处理部3的数据展开部31中,如果预处理部I中的顶点数据以及面数据的记录处理完成,则从HDD2中记录的集合单位的顶点数据以及面数据中,读入从多边形模型构筑部33输出的读入命令表示的顶点数据以及面数据。在该阶段中,从多边形模型构筑部33输出的读入命令是指示读入属于集合I的顶点数据以及面数据的命令,从HDD2读入属于集合I的顶点数据以及面数据。虽然将在后面详细叙述,但在仅通过属于集合I的顶点数据以及面数据,不能构筑具有与由详细度决定部32决定的详细度对应的顶点的数量的多边形模型的情况下,进而,从多边形模型构筑部33输出指示读入属于集合2的顶点数据以及面数据的读入命令、指示读入属于集合3的顶点数据以及面数据的读入命令。数据展开部31如果从多边形模型构筑部33接收到指示读入属于集合2的顶点数据以及面数据的读入命令,则从HDD2读入属于集合2的顶点数据以及面数据,如果从多边形模型构筑部33接收到指示读入属于集合3的顶点数据以及面数据的读入命令,则从HDD2读入属于集合3的顶点数据以及面数据。数据展开部31如果如上所述,从HDD2读入了属于集合I的顶点数据以及面数据,则对可从HDD2高速读写的存储器4,展开属于集合I的顶点数据以及面数据。 另外,虽然将在后面详细叙述,但数据展开部31如果从多边形模型构筑部33接收到丢弃命令,则从已在存储器4中展开的顶点数据以及面数据中,丢弃该丢弃命令表示的顶点数据以及面数据。
执行时处理部3的详细度决定部32如果提供了表示假想空间内的视点的视点信息,则针对由预处理部I的模型分割部11分割的每个多边形模型,考虑该视点信息表示的假想空间内的视点,决定针对该多边形模型的描绘的详细度。S卩,详细度决定部32以是否处于从假想空间内的视点看到分割后的多边形模型的位置、假想空间内的视点至分割后的多边形模型的距离、或者、在从假想空间内的视点观察了分割后的多边形模型时该多边形模型是否构成分割前的多边形模型(对预处理部I提供的多边形模型)的轮廓的一部分等为判断基准,计算分割后的多边形模型的图像针对分割前的多边形模型的图像的贡献度,该贡献度越高,将针对该多边形模型的描绘的详细度设定为越高的值。此处,图18是说明由详细度决定部32决定描绘的详细度的决定处理的说明图。例如,在使用透视投影来描绘三维假想空间的情况下,如果如图18 Ca)所示,描绘对象的块存在于接近假想空间内的视点的位置(在假想空间内的距视点的距离短的情况 下),如图18 (b)所示,描绘对象的块的图像被描绘得较大。因此,对于描绘对象的块的图像,针对全块(对预处理部I提供的多边形模型)的描绘结果的贡献度大,所以如果不详细描绘描绘对象的块的图像,则全块的描绘结果的劣化变大。因此,描绘对象的块的位置越接近假想空间内的视点,将针对该块的描绘的详细度决定为越高的值,而增加该块中包含的多边形的顶点的个数。另一方面,如果如图18 (C)所示,描绘对象的块存在于远离假想空间内的视点的位置(在假想空间内的距视点的距离长的情况下),如图18 (d)所示,描绘对象的块的图像被描绘得较小。因此,对于描绘对象的块的图像,针对全块(对预处理部I提供的多边形模型)的描绘结果的贡献度变小,所以即使将该块的图像描绘得较粗,全块的描绘结果的劣化也变小。因此,描绘对象的块的位置越远离假想空间内的视点,将针对该块的描绘的详细度决定为越低的值,减少该块中包含的多边形的顶点的个数。在图18的例子中,示出了以假想空间内的视点至描绘对象的块的距离为判断基准,决定该块的描绘的详细度(详细度被决定为与视点至该块的距离成为反比例的值)的例子,但不限于此,例如,也可以以是否处于从假想空间内的视点能够看到描绘对象的块的位置为判断基准,来决定该块的描绘的详细度。S卩,在存在于从假想空间内的视点能够看到描绘对象的块的位置的情况下,对于该块的图像,针对全块(对预处理部I提供的多边形模型)的描绘结果的贡献度大,所以如果不详细地描绘描绘对象的块的图像,则全块的描绘结果的劣化变大。另一方面,在存在于从假想空间内的视点看不到描绘对象的块的位置的情况下,对于该块的图像,针对全块(对预处理部I提供的多边形模型)的描绘结果的贡献度成为零。因此,在存在于从假想空间内的视点能够看到描绘对象的块的位置的情况下,将针对该块的描绘的详细度决定为高的值,增加该块中包含的多边形的顶点的个数。另一方面,在不存在于从假想空间内的视点能够看到描绘对象的块的位置的情况下,将针对该块的描绘的详细度决定为低的值(或者、O值),减少该块中包含的多边形的顶点的个数。
另外,在从假想空间内的视点观察了描绘对象的块时,也可以以该块是否被其他块遮挡为判断基准,来决定该块的描绘的详细度。在从假想空间内的视点观察了描绘对象的块时,该块未被其他块遮挡的情况下,如果该块存在于视野内,则能够看到该块。因此,对于该块的图像,针对全块(对预处理部I提供的多边形模型)的描绘结果的贡献度大,如果不详细描绘对象的块的图像,则全块的描绘结果的劣化变大。另一方面,在从假想空间内的视点观察了描绘对象的块时,该块被其他块遮挡了的情况下,无法看到该块。因此,对于该块的图像,针对全块的描绘结果的贡献度成为零。因此,在从假想空间内的视点观察了描绘对象的块时,该块未被其他块遮挡的情况下,将针对描绘对象的块的描绘的详细度决定为高的值,增加该块中包含的多边形的顶 点的个数。另一方面,在从假想空间内的视点观察了描绘对象的块时,该块被其他块遮挡的情况下,将针对描绘对象的块的描绘的详细度决定为低的值(或者、O值),减少该块中包含的多边形的顶点的个数。另外,在从假想空间内的视点观察了描绘对象的块时,也可以以该块是否构成全块(对预处理部I提供的多边形模型)的轮廓的一部分为判断基准,来决定该块的描绘的详细度。在从假想空间内的视点观察了描绘对象的块时,该块构成了全块的轮廓的一部分的情况下,对于该块的图像,针对全块的描绘结果的贡献度大(如果轮廓变化,则多边形模型的形状变化,所以在构成了轮廓的一部分的情况下,贡献度变大),所以如果不详细描绘描绘对象的块的图像,则全块的描绘结果的劣化变大。另一方面,在从假想空间内的视点观察了描绘对象的块时,该块未构成全块的轮廓的一部分的情况下,对于该块的图像,针对全块的描绘结果的贡献度小,所以即使将描绘对象的块的图像较粗地描绘,全块的描绘结果的劣化也小。因此,在从假想空间内的视点观察了描绘对象的块时,该块构成了全块的轮廓的一部分的情况下,将针对描绘对象的块的描绘的详细度决定为高的值,增加该块中包含的多边形的顶点的个数。另一方面,在从假想空间内的视点观察了描绘对象的块时,该块未构成全块的轮廓的一部分的情况下,将针对描绘对象的块的描绘的详细度决定为较低的值,减少该块中包含的多边形的顶点的个数。也可以作为决定描绘的详细度时的判断基准,另外使用该块、视点的移动速度等。也可以通过嵌入各种判断基准,提高针对全块的图像的各块的贡献度的推测精度。如果详细度决定部32决定了详细度,则执行时处理部的多边形模型构筑部33针对由模型分割部11分割的每个块,以使该块中包含的多边形模型中的顶点的数量与和由详细度决定部32决定的详细度对应的顶点的数量一致的方式,更新存储器4中展开的顶点数据以及面数据的有效标志,从而构筑描绘对象的多边形模型。以下,具体说明多边形模型构筑部33的处理内容。多边形模型构筑部33按照由模型分割部11分割的块单位反复实施以下的处理,对所有块实施同样的处理。多边形模型构筑部33参照存储器4中展开的任意的块的顶点数据,掌握有效的顶点的数量,判定有效的顶点的数量是否与和由详细度决定部32决定的详细度对应的顶点
的数量一致。另外,多边形模型构筑部33如上所述,最初,将指示读入属于集合I的顶点数据以及面数据的读入命令输出到数据展开部31,从而在存储器4中展开属于集合I的顶点数据以及面数据,但在此,仅通过属于集合I的顶点数据,无法得到与由详细度决定部32决定的详细度对应的顶点的数的、有效的顶点的数量,所以设为对于指示读入属于集合2的顶点数据以及面数据的读入命令,也输出到数据展 开部31,对于属于集合2的顶点数据以及面数据,也在存储器4中展开。图20是示出存储器4中展开的属于集合1、2的顶点数据以及面数据的说明图。在图20中,〇表示多边形模型的顶点,□表示多边形模型的面。另外,发白地涂覆有效的顶点以及面,用斜线涂覆非有效的顶点以及面。在图20 Ca)的例子中,有效的顶点的数量是4个,所以如果与由详细度决定部32决定的详细度对应的顶点的数量(由详细度决定部32决定的详细度越高,顶点的数量成为越大的值(成为与详细度成比例的值))是4个,则判断为有效的顶点的数量和与详细度对应的顶点的数量一致。另一方面,如果与由详细度决定部32决定的详细度对应的顶点的数量不是4个,则判断为有效的顶点的数量和与详细度对应的顶点的数量不一致。多边形模型构筑部33如果判断为有效的顶点的数量和与详细度对应的顶点的数量不一致,则以使有效的顶点的数量和与详细度对应的顶点的数量一致的方式,更新存储器4中展开的顶点数据以及面数据的有效标志(图19的步骤ST21)。例如,在与详细度对应的顶点的数量是5个的情况下,有效的顶点的数量不足I个,所以如图20 (b)所示,使有效的顶点的数量增加I个,而使有效的顶点的数量和与详细度对应的顶点的数量一致。按照下述步骤,进行从图20 Ca)向图20 (b)的更新。首先,多边形模型构筑部33在有效的顶点中,探索连接了赋予了最小的顶点索引的子节点的顶点,并将该顶点变更为非有效的顶点。在图20 Ca)的例子中,将连接了顶点索引为“2 — I”的顶点的顶点索引为“I 一4”的顶点变更为非有效的顶点。接下来,多边形模型构筑部33将与顶点索引为“I — 4”的顶点连接的子节点(顶点索引为“2 - I”和“2 - 2”的顶点)变更为有效的顶点,使有效的顶点的数量整体增加I个。但是,对于顶点索引的大小的判定,最初比较集合索引的大小来进行判定,在集合索引相等的情况下,比较集合内顶点索引的大小来进行判定。如果将顶点索引为“I 一 4”的顶点变更为非有效的顶点,则多边形模型构筑部33参照该成为非有效的顶点的关联面,更新相应的面的有效标志,从而将相应的面变更为有效的面。在图20 (b)的例子中,将面索引为“2 - I”和“2 — 2”的面变更为有效的面。
此处,示出了通过使有效的顶点的数量增加I个,而与和详细度对应的顶点的数量一致的例子,但如果与详细度对应的顶点的数量是6个以上,则通过使有效的顶点的数量进一步增加,更新为与和详细度对应的顶点的数量一致。但是,即使在有效的顶点的数量不足于与详细度对应的顶点的数量的情况下,如果有效的顶点的数量成为最大值(在有效的全部顶点成为未连接子节点的顶点的情况下),则也无法使有效的顶点的数量增加其以上,所以结束有效标志的更新处理。到此,示出了增加有效的顶点的数量的例子,但在有效的顶点的数量多于与详细度对应的顶点的数量的情况下,减少有效的顶点的数量,使有效的顶点的数量与和详细度对应的顶点的数量一致。为便于说明,设为图20 (b)是更新前的顶点数据以及面数据,图20 (a)是更新后的顶点数据以及面数据。另外,设为与详细度对应的顶点的数量是4个。 通过下述步骤,进行从图20 (b)向图20 Ca)的更新。首先,多边形模型构筑部33在有效的顶点中,探索连接了父节点的顶点、且顶点索引最大的顶点,将该顶点变更为非有效的顶点。在图20 (b)的例子中,将顶点索引为“2 - I”和“2 — 2”的顶点变更为非有效的顶点。接下来,多边形模型构筑部33将与顶点索引为“2 - I”和“2 — 2”的顶点连接的父节点(顶点索引为“I 一 4”的顶点)变更为有效的顶点,使有效的顶点的数量整体减少I个。如果将顶点索引为“I - 4”的顶点变更为有效的顶点,则多边形模型构筑部33参照该成为有效的顶点的关联面,更新相应的面的有效标志,从而将相应的面变更为非有效的面。在图20 (b)的例子中,将面索引为“2 - I”和“2 — 2”的面变更为非有效的面。此处,示出了通过使有效的顶点的数量减少I个,而与和详细度对应的顶点的数量一致的例子,但如果与详细度对应的顶点的数量是3个以下,则通过使有效的顶点的数量进一步减少,更新为与和详细度对应的顶点的数量一致。但是,即使在有效的顶点的数量多于与详细度对应的顶点的数量的情况下,如果有效的顶点的数量成为最小值(在有效的全部顶点成为未连接父节点的顶点的情况下),无法使有效的顶点的数量减少其以上,所以结束有效标志的更新处理。另外,在有效的顶点的数量、和与由详细度决定部32决定的详细度对应的顶点的数量大幅不同的情况下,如果通过一次的步骤ST21的处理,直至顶点数相等,反复有效标志的更新处理,则有时处理量变多、在输出的图像内显著地出现物体的变形,所以也可以不一次性地进行有效标志的更新处理,而留待至下一次的处理。在多边形模型构筑部33中,如果进行了存储器4中展开的顶点数据以及面数据的有效标志的更新处理,则判定存储器4中展开的顶点数据以及面数据的数据量是否适合(步骤 ST22)。例如,在步骤ST21中,即使直至有效的顶点的数量成为最大值实施了更新处理,在有效的顶点的数量少于与由详细度决定部32决定的详细度对应的顶点的数量的情况下,也判断为存储器4中展开的顶点数据以及面数据的数据量少。另一方面,例如,在存储器4中展开了属于集合1、2的顶点数据以及面数据时,在更新后的有效的顶点的全部属于集合I的情况下(在该情况下,属于集合2的顶点数据以及面数据是多余的数据),判断为存储器4中展开的顶点数据以及面数据的数据量多。多边形模型构筑部33在存储器4中展开的顶点数据以及面数据的数据量适合的情况下,结束针对该块的更新处理,同样地实施针对其他块的更新处理。多边形模型构筑部33在存储器4中展开的顶点数据以及面数据的数据量不足的情况(在当前仅通过存储器4中展开的顶点数据以及面数 据,不能构筑具有与详细度对应的顶点的数量的多边形模型的情况)下,如果当前在存储器4中展开了属于集合I的顶点数据以及面数据,则将指示读入属于集合2的顶点数据以及面数据的读入命令输出到数据展开部31 (步骤ST23)。或者,如果当前在存储器4中展开了属于集合I和集合2的顶点数据以及面数据,则将指示读入属于集合3的顶点数据以及面数据的读入命令输出到数据展开部31 (步骤ST23)。多边形模型构筑部33在存储器4中展开的顶点数据以及面数据的数据量过多的情况(在构筑具有与详细度对应的顶点的数量的多边形模型之后,在存储器4中展开了多余的分割数据的情况)下,当前在存储器4中展开了属于集合1、2、3的顶点数据以及面数据时,如果仅通过属于集合1、2的顶点数据以及面数据,能够构筑具有与详细度对应的顶点的数量的多边形模型,则将指示丢弃属于集合3的顶点数据以及面数据的丢弃命令输出到数据展开部31 (步骤ST23)。或者,当前在存储器4中展开了属于集合1、2的顶点数据以及面数据时,如果仅通过属于集合I的顶点数据以及面数据,能够构筑具有与详细度对应的顶点的数量的多边形模型,则将指示丢弃属于集合2的顶点数据以及面数据的丢弃命令输出到数据展开部31(步骤 ST23)。另外,在多边形模型构筑部33判定为存储器4中展开的顶点数据以及面数据的数据量适合时,也可以预测可使用的存储器4的余量、视点的移动,推测将来必要性高的数据量,并考虑其推测结果来进行判定。在执行时处理部3的描绘处理部34中,如果多边形模型构筑部33更新有效标志来构筑了多边形模型,则例如在内部的视频RAM上描绘该多边形模型(由多边形模型构筑部33更新之后的有效标志表示是描绘对象的意思的顶点所构成的多边形模型)的图像,并将该图像输出到图像显示部5。以下,具体说明描绘处理部34的处理内容。描绘处理部34在所有块中,直至参照所有有效的面,反复实施以下的步骤ST32 ST35的处理(步骤ST31)。如果当前在存储器4中展开的面数据(参照图16)仅为属于集合I的面数据,则描绘处理部34参照该面数据中包含的顶点参照I 一 f I 一 3,确认构成描绘对象的多边形的面的3个顶点(步骤ST32)。另外,如果存储器4中展开的面数据是属于集合I和集合2的面数据,则参照该面数据中包含的顶点参照2 — f 2 — 3,来确认构成描绘对象的多边形的面的3个顶点(步骤ST32)。另外,如果存储器4中展开的面数据是属于集合I、集合2以及集合3的面数据,则参照该面数据中包含的顶点参照3 — f 3 — 3,确认构成描绘对象的多边形的面的3个顶点(步骤 ST32)。但是,在面数据中包含的顶点参照中记录了 “一 I”的情况下,不存在参照目的地,所以参照集合索引小I个的顶点参照(例如,在参照了顶点参照3 - I时,如果在顶点参照3 - I中存储了“一 1”,则参照顶点参照2 - 1,并且在参照了顶点参照2 - 2时,如果在顶点参照2 - 2中存储了 “一 1”,则参照顶点参照I 一 2)。例如,在存储器4中展开了图20 (a)所示那样的顶点数据以及面数据的情况下,在以作为有效的面的面索引“I 一 I”的面为描绘对象时,参照顶点参照I 一 1、1 一 2、2 -
3(虽然展开了属于集合1、2的面数据,但在顶点参照2 — I和2 —2中,存储了“一 1”,所以参照顶点参照I 一 1、1 一 2),确认构成描绘对象的多边形的面的3个顶点是顶点索引为“I — 1”、“1 — 2”、“2 — 4” 的顶点。描绘处理部34如果确认了构成描绘对象的多边形的面的3个顶点,则参照3个顶点的有效标志(参照图15),判定3个顶点这全部是否为有效的顶点(步骤ST33)。描绘处理部34在构成描绘对象的多边形的面的3个顶点中,包含非有效的顶点的情况下,参照与非有效的顶点的父节点相当的顶点的有效标志(步骤ST34),判定该顶点是否为有效的顶点(步骤ST33)。在图20 Ca)的例子中,顶点索引为“2 — 4”的顶点是非有效,所以参照与该顶点的父节点相当的顶点(顶点索引为“2 — 2”的顶点)的有效标志。顶点索引为“2 - 2”的顶点是非有效的顶点,所以进而参照与该顶点的父节点相当的顶点(顶点索引为“ I 一 4 ”的顶点)的有效标志。顶点索引为“I 一 4”的顶点是有效的顶点,所以转移到步骤ST35的处理。但是,在存储器4中展开的当前的顶点数据以及面数据从图20 (a)被更新为图20(b)的情况下,顶点索引为“2 - 2”的顶点是有效的顶点,所以不参照顶点索引为“I 一 4”的顶点的有效标志,而转移到步骤ST35的处理。描绘处理部34如上所述,如果发现了 3个有效的顶点(在存储器4中展开的当前的顶点数据以及面数据是图20 Ca)的情况下,顶点索引为“I 一 1”、“1 - 2”、“1 一 4”的顶点;在存储器4中展开的当前的顶点数据以及面数据从图20 (a)被更新为图20 (b)的情况下,顶点索引为“I - 1”、“1 - 2”、“2 - 2”的顶点),则参照顶点数据中包含的位置信息,确定3个有效的顶点的三维位置(X,Y,Z),使用该三维位置(X,Y,Z),例如在内部的视频RAM上描绘由3个有效的顶点构成的3角形多边形(步骤ST35)。描绘处理部34通过在所有块中,参照所有有效的面(步骤ST31),如果描绘了由有效的顶点构成的全多边形,则将作为该描绘结果的多边形模型(对预处理部I提供的多边形模型)的图像输出到图像显示部5 (步骤ST36)。由此,在图像显示部5中,显示多边形模型的图像。另外,对于根据多边形的三维位置和视点的位置姿势描绘图像的处理,也可以利用在一般的多边形描绘中使用的任意的处理。如以上说明,根据该实施方式1,设置模型分割部11,分割表现了三维物体的多边形模型;数据生成部12,针对由模型分割部11分割的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据;分类部13,分割由数据生成部12生成的顶点数据,并输出该顶点数据的分割数据;数据保存部14,将从分类部13输出的顶点数据的分割数据保存到HDD2 ;数据展开部31,从由HDD2保存的多个分割数据中,读入读入命令表示的分割数据,在可从HDD2高速读写的存储器4中展开该分割数据,另一方面,从已在存储器4中展开的分割数据中,丢弃丢弃命令表示的分割数据;详细度决定部32,针对由模型分割部11分割的每个多边形模型,考虑假想空间内的视点,决定针对该多边形模型的描绘的详细度;以及多边形模型构筑部33,参照存储器4中展开的分割数据,构筑具有与由详细度决定部32决定的详细度对应的顶点的数量的多边形模型,并且将表示读入对象的分割数据的读入命令以及表示丢弃对象的分割数据的丢弃命令输出到数据展开部31,其中,描绘处理部34描绘由多边形模型构筑部33构筑的多边形模型,所以起到即使未搭载可高速读写大量数据的存储装置,也能够应用LOD技术高速并且高质量地描绘复杂的三维假想环境的效果。S卩,根据该实施方式1,在大容量的HDD2中保存的所有顶点数据以及面数据的分割数据(集合单位的顶点数据以及面数据)中,数据展开部31在多边形模型构筑部33的指示下,在存储器4中仅展开必要的一部分的分割数据(能够构筑具有与描绘的详细度对·应的顶点的数量的多边形模型的量的数据),所以起到相比于作为现有技术的ProgressiveMesh (递进网格),能够大幅降低存储器4的消耗量的效果。另外,在该实施方式I中,示出了对预处理部I提供的多边形模型具有包括表示顶点的三维位置(X,Y,Z)的位置信息的顶点数据、和包括表示构成多边形的面的顶点的顶点信息的面数据的例子,但也可以使顶点数据以及面数据例如附加地保有顶点以及面的法线、在涂覆面时使用的纹理等在描绘图像时可利用的信息。产业上的可利用性本发明适用于能够使用三维的几何学信息,高速并且高质量描绘复杂的三维假想环境的图像显示装置。
权利要求
1.一种图像显示装置,其特征在于,具备 模型分割单元,分割表现了三维物体的多边形模型; 顶点数据生成单元,针对由所述模型分割单元分割的每个多边形模型,根据构成了该多边形模型的I个以上的多边形中的既存的顶点,生成新的顶点,生成用树构造表现了包括新的顶点的I个以上的多边形模型的顶点之间的逻辑上的连接关系的顶点数据; 数据保存单元,分割由所述顶点数据生成单元生成的顶点数据,将所述顶点数据的分割数据保存到存储装置; 数据展开单元,从由所述存储装置保存的多个分割数据中,读入读入命令表示的分割数据,在能够从所述存储装置高速读写的记录介质中展开所述分割数据,另一方面,从已在所述记录介质中展开的分割数据中,丢弃丢弃命令表示的分割数据; 详细度决定单元,针对由所述模型分割单元分割的每个多边形模型,考虑假想空间内的视点,来决定针对该多边形模型的描绘的详细度; 多边形模型构筑单元,参照所述记录介质中展开的分割数据,构筑具有与由所述详细度决定单元决定的详细度对应的顶点的数量的多边形模型,并且将表示读入对象的分割数据的读入命令以及表示丢弃对象的分割数据的丢弃命令输出到所述数据展开单元;以及 描绘单元,描绘由所述多边形模型构筑单元构筑的多边形模型。
2.根据权利要求I所述的图像显示装置,其特征在于, 顶点数据生成单元针对包括新的顶点的I个以上的多边形模型的每个顶点,生成具有表示三维位置的信息、表示存在逻辑上的连接关系的顶点的信息、以及表示是否为描绘对象的顶点的有效标志的顶点数据。
3.根据权利要求I所述的图像显示装置,其特征在于, 数据保存单元将顶点数据的分割数据作为I个保存单位,将各分割数据分别保存到所述存储装置。
4.根据权利要求I所述的图像显示装置,其特征在于, 详细度决定单元考虑假想空间内的视点,计算由模型分割单元分割后的多边形模型的图像相对分割前的多边形模型的图像的贡献度,所述贡献度越高,将针对分割后的多边形模型的描绘的详细度决定为越高的值。
5.根据权利要求4所述的图像显示装置,其特征在于, 详细度决定单元以是否处于从假想空间内的视点能够看到由模型分割单元分割后的多边形模型的位置、所述视点至分割后的多边形模型的距离、或者在从所述视点观察了分割后的多边形模型时该多边形模型是否构成分割前的多边形模型的轮廓的一部分为判断基准,计算分割后的多边形模型的图像相对分割前的多边形模型的图像的贡献度。
6.根据权利要求2所述的图像显示装置,其特征在于, 多边形模型构筑单元针对由模型分割单元分割的每个多边形模型,以使该多边形模型中的顶点的数量与和由详细度决定单元决定的详细度对应的顶点的数量一致的方式,更新作为记录介质中展开的分割数据的顶点数据以及面数据中包含的有效标志,从而构筑描绘对象的多边形模型。
7.根据权利要求I所述的图像显示装置,其特征在于, 多边形模型构筑单元在当前仅通过记录介质中展开的分割数据,不能构筑具有与由详细度决定单元决定的详细度对应的顶点的数量的多边形模型的情况下,将指示读入其他分割数据的读入指令输出到数据展开单元,另一方面,在构筑具有与由所述详细度决定单元决定的详细度对应的顶点的数量的多边形模型之后,在所述记录介质中展开了多余的分割数据的情况下,将指示丢弃多余的分割数据的丢弃指令输出到所述数据·展开单元。
全文摘要
设置有数据展开部(31),从由HDD(2)保存的多个分割数据中,读入读入命令表示的分割数据,在可从HDD(2)高速读写的存储器(4)中展开该分割数据;详细度决定部(32),针对所分割的每个多边形模型,考虑假想空间内的视点,决定针对该多边形模型的描绘的详细度;以及多边形模型构筑部(33),参照在存储器(4)中展开的分割数据,构筑具有与由详细度决定部(32)决定的详细度对应的顶点的数量的多边形模型,并且将表示读入对象的分割数据的读入命令输出到数据展开部(31)。
文档编号G06T17/20GK102763139SQ20108006459
公开日2012年10月31日 申请日期2010年2月23日 优先权日2010年2月23日
发明者樱井智史 申请人:三菱电机株式会社