首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

将3D场景分割为由计算资源处理的多个区域 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:达索系统公司

摘要:本发明指向一种用于将三维场景分割为多个区域的计算机实现方法,每个区域由一计算资源处理。该方法包括:‑提供包括一个或多个对象的三维场景,每个对象产生一计算资源成本;‑确定三维场景中的一组位置;‑以达到最贵计算成本的每个位置的最大对象占用来填充每个位置;‑为三维场景的每个位置计算最高计算成本密度;和‑将相邻位置分组到一个或多个区域,每个区域具有保证区域的实时性能的合成计算成本密度。

主权项:1.一种用于将三维场景分割为多个区域的计算机实现方法,每个区域由计算资源处理,该方法包括:‑提供100包括一个或多个对象的三维场景,每个对象产生一计算资源成本;‑确定110所述三维场景中的一组位置;‑以达到最贵计算成本的每个位置的最大对象占用来填充120每个位置;‑为所述三维场景的每个位置计算130最高计算成本密度;‑为所述三维场景的每个位置提取140位于所述每个位置上的静态对象,静态对象是不能够在三维场景中移动并且不能够被另外的对象穿过的对象;‑根据提取出的静态对象建立所述三维场景的约束地图142;‑将部分相邻位置分组160到一个或多个区域,每个区域具有合成计算成本,该合成计算成本是相邻位置的每个部分的最高成本的总和并且该合成计算成本保证所述区域的实时性能,其中,对部分相邻位置的分组是根据由所述约束地图提供的提取出的静态对象来执行的。

全文数据:将3D场景分割为由计算资源处理的多个区域技术领域[0001]本发明涉及计算机程序和系统的领域,尤其涉及用于将三维场景分割为多个区域的方法、系统和程序,每个区域由计算资源处理。背景技术[0002]大型多用户在线应用程序MM0允许大量用户同时使用例如真实世界现象模拟器、沉浸式应用程序等的应用程序。同样地,大型多用户在线游戏MM0G允许大量玩家同时进行视频游戏。MM0和MM0G尤其依赖计算机网络,比如因特网,用于允许用户或玩家连接到应用程序或视频游戏。贯穿该说明书,词语“应用程序”和“视频游戏”将被理解为是同义的,并且术语MM0和MM0G也不做区别使用。[0003]MM0涉及复杂和庞大的虚拟环境,为了给用户或游戏玩家提供更加真实的体验,希望虚拟环境以尽可能多的细节、尽可能接近实时地被呈现。MM0被特别设计用于呈现和操纵3D场景,并典型地用在终端用户的计算机上用于要求交互式连续实时3D场景生成的应用程序。当用户与3D场景交互时,计算机足够快地重绘3D呈现以向用户传达用户正参与的连续的、不间断的现实感觉。该场景由多个独立的对象构成,当用户与该3D场景交互时可对所述对象进行操纵。这样,MM0涉及很大的数据量,通常要求高数据速率和高数据复杂度以管理实时参与到空间复杂和高细致虚拟环境的大量用户。[0004]MM0典型地用于在计算机模型内模拟现实世界现象,如多体刚性动力学、人类模拟、布料模拟、粒子模拟。模拟需要描述真实世界现象的精确数据和算法,例如用于制造过程的材料的物理属性强度、弹性等等),以便建立对该过程的模拟和对使用中的产品的模拟的产品。3DCADCAM计算机辅助设计计算机辅助制造工具允许建立对产品或组成部件的3D呈现。[0005]X寸MMO和MM0G主要和关键的要求是向所连接的玩家在任何时候都能提供实时响应,而不考虑他们的数量,也不考虑用于解决和呈现应用程序所引起的计算成本。否则,游戏体验的质量将变得糟糕,会降低玩家对应用程序的兴趣,限制在执行协同和分布设计评审时的交互。[0006]MM0,和丽0G—样,必须是可扩展的以动态适应永远变化的工作负荷,从而保持实时性能。可扩展性尤其包括能够同时使用应用程序的用户数量、用于计算模拟的计算资源数量、被应用程序所允许的3D场景的对象之间的同时交互的数量,诸如此类。对于MM0G,用户数量、以及所有包含的动态对象的位置和图形属性可以显著变化。然而,游戏开始之前,周围布景是一次全部设定的,并且动态对象的类型和所支持的行为种类也是预先定义的。换句话说,MM0G中的3D场景包括许多预先确定的特征,这些特征强有力地限制了对计算资源的需求,从而提高了可扩展性。[0007]相反,对于高级MM0,3D场景的布景和群体类型能够进化和充实,特别是在应用程序运行时。事实上,MM0目的在于真实世界现象,其中,对象行为是动态的并排除预先定义的行为种类。因此,MMO中的3D布景不能使用像用于MMOG的预先定义的特征。[0008]可扩展性的问题被MM0G所解决。此类方案和技术包括分片和分区。分片在于克隆世界部分或全部并招待新登录的用户以便处理工作负荷上升,但是不可能在分片之间进行交互。因此,本性而言,分片不支持虚拟世界空间和群体的无限扩展;分片确实具有由他们被分配的处理资源的性能所指示的物理容量上限。[0009]分区依靠对所谓区域中虚拟世界空间的分割,他们中的每个承担计算资源的责任。对象用户能够进行逐区域的导航。相关联的计算资源接着在网络上传输专用消息以便将这些移动对象集成到他们的计算模型中。[0010]然而,在MM0G中,区域互相之间相当独立的发展:动态对象简单的从区域“A”的若干预先定义通道位置中的一个“远程传输”到区域“B”的若干位置中的另一个。优化负载平衡问题通过以下解决:通过使用障碍物或实体墙围住区域、通过限制区域间(inter-zone通道位置的数量、通过限制任何时候在每个区域内对象的群体、以及通过使用调整过的静态布景decor来填充区域。某种程度上,虚拟环境的不同区域被定制以符合实时需求。[0011]对于高级MM0,这种简化是不能接受的。事实上,虚拟环境,尤其当真实世界现象被模拟时,不能支持布景的人工围栏,这限制了对模拟的真实世界定制化的可能性。正相反,在真实世界中,区域是开放的,与他们的相邻区域共享共同的连续边界,任何对象都可能通过这里。因此,就其本质而言,分区能够潜在地管理如高级MM0中所需要的虚拟世界的无限增大。然而,如MM0G中所执行的分区不适于MM0的上下文环境,因为它需要特殊定制虚拟环境、所模拟的现实世界和对其特征的限制。[0012]在此背景下,仍然需要改进的方法、计算机程序和系统,用于在真实世界模拟应用程序中提供可扩展的、无缝的和有效的对3D场景的实时模拟。发明内容[0013]根据一个方面,本发明因此提供一种用于将三维场景分割为多个区域的计算机实现方法,每个区域由一计算资源处理。该方法包括:[0014]-提供包括一个或多个对象的三维场景,每个对象产生一计算资源成本;[0015]-确定三维场景中的一组位置;[0016]-以达到最贵计算成本的每个位置的最大对象占用来填充每个位置;[0017]-为三维场景的每个位置计算最高计算成本密度;和[0018]-将相邻位置分组到一个或多个区域,每个区域具有保证区域的实时性能的合成计算成本密度。[0019]该方法可以包括下面的一个或多个:[0020]-聚集为三维场景的位置计算的最高计算成本密度,和根据聚集的最高计算成本密度建立三维场景的成本密度地图;[0021]-为动态对象执行以每个位置的最大对象占用来填充每个位置的步骤,动态对象是能够在三维场景中潜在地移动的对象;[00221-为三维场景的每个位置提取位于所述每个位置上的静态对象,静态对象是不能够在三维场景中移动并不能够被另外的对象穿过的对象,和根据提取出的静态对象建立三维场景的约束地图;[0023]-提取静态对象的步骤进一步包括为三维场景的每个位置提取静态对象在三维场景的所述每个位置上的印迹;[0024]-聚集三维场景的成本密度地图和三维场景的约束地图的步骤;[0025]-计算最高计算成本密度包括计算比率PA,其中,P是用于处理位置所需的计算资源的测量百分比,A是三维场景中位置的面积;[0026]-在分组步骤,每个区域的合成计算成本密度是这样的:用于处理该区域所需要的计算资源低于预先定义的阈值;[0027]-在分组步骤,在两个或多个区域之间的合成计算成本密度是明显一样的;[0028]-考虑每个区域过去所制造的计算资源的使用,进一步执行分组步骤。[0029]本发明进一步提出一种包括用于被计算机执行的指令的计算机程序,所述指令适用于执行本发明的方法的步骤。[0030]本发明进一步提出一种计算机可读存储介质,在其上记录有以上所述的计算机程序。[0031]本发明进一步提出一种计算机化系统,包括:[0032]-存储系统,用于存储包括一个或多个对象的三维场景;[0033]-处理单元,用于处理分割三维场景的多个区域,每个区域由该处理单元的一计算资源处理,该处理单元适用于根据本发明的方法将三维场景分割为多个区域。附图说明[0034]现在将以非限制性例子的形式和根据附图描述本发明的实施例,其中:[0035]-图1显示了方法的例子的流程图;[0036]-图2显示了大商场的虚拟世界的例子的俯视图;[0037]-图3显不了对位置的最高成本密度的分析的例子;[0038]-图4显示了对位置的最高成本密度的量化的例子;[0039]-图5显示了成本密度地图的例子;[0040]-图6显示了约束地图的例子;[0041]-图7显示了对图5和图6的成本密度地图和约束地图的聚集的例子;[0042]-图8显示了计算机化系统的例子。具体实施方式[0043]根据图1的流程图,提出了一种计算机实现方法,其用于将三维场景分割为多个区域,每个区域由计算资源处理。处理包括提供三维(3D场景。3D场景可以模拟真实世界环境。3D场景包括一个或多个对象,例如3D建模对象。每个对象产生计算资源成本,也就是说,为了在3D场景中被执行,每个对象需要计算资源的时间。该方法进一步包括确定邪场景中的一组位置。3D场景中的位置可以是3D场景的对象可进入的面积。3D场景中的位置可以是其中可包含3D场景的对象的体积。该方法进一步包括以达到最贵计算成本的每个位置的最大对象占用来填充每个位置。该方法进一步包括为3D场景的每个位置计算最高计算成本密度。最高计算成本密度可以指每个面积单位或每个体积单位的计算成本。该方法还包括将相邻位置分组到一个或多个区域。每个区域具有保证区域的实时性能的合成计算成本密度。区域的合成计算成本密度是每个位置的最高成本密度乘以它的面积或体积的总和。[0044]这个方法改进了对3D场景的分区,其中提供了保证实时性能,不需要对其特征施加3D场景的特殊定制或约束。另外,本方法进一步支持3D场景的扩展、对象类型和其行为种类的扩展。事实上,分组取决于3D场景的每个位置的饱和度的结果,饱和度通过以达到最贵计算成本的每个位置的最大对象占用来填充每个位置来执行。有趣的是,最大对象占用反映了3D场景的真实状况。换句话说,分组是情节scenario的结果,其中每个位置上对象的群体是最多的,情节关于模拟的真实世界是现实的。[0045]该方法是计算机实现的。这意味着该方法的步骤或基本上所有步骤)由至少一台计算机或一计算机化的系统执行。在例子中,该方法的至少一些步骤的触发可以通过用户-计算机交互来执行。所需要的用户-计算机交互的级别取决于自动化预测的级别并平衡实现用户愿望的需要。在例子中,这个级别可以是用户定义的和或预先定义的。[0046]例如,提供包括一个或多个对象的3D场景的步骤可以根据用户的选择来执行,例如场景的。用户可以通过触觉设备执行选择,比如键盘、鼠标、定位笔,诸如此类。例如,在两键鼠标中,左键可以用于选择场景列表中的场景。该系统还可以默认识别场景,即不需要用户选择。[0047]计算机实现该方法的一个典型例子是使用包含存储器和处理器的系统执行该方法。存储器存储数据库,其仅仅是适合此类存储的任何硬件。处理器还可以是指计算单元。这个系统在真实世界模拟应用程序中的上下文中提供可扩展的、无缝的和有效的3D场景的实时模拟。该系统可以进一步包括适用于显示3D场景和3D场景内的对象的图形用户界面GUIAUI与存储器和处理器耦合。[0048]通过“数据库”,意味着对被组织用于搜索和取回的数据(即信息)的任何采集。当存储在存储器上时,数据库允许通过计算机快速搜索和取回。数据库事实上被结构化以便于结合各种数据处理操作来存储、取回、修改和删除数据。数据库可以由能够被分解成记录的一个文件或一组文件组成,每个记录由一个或多个字段组成。字段是数据存储的基本单位。用户可以主要通过查询取回数据。使用关键字和排序命令,用户能够快速搜索、重新排列、分组和选择许多记录中的字段,以根据正在使用的数据库管理系统的规则来取回或建立关于特别的数据聚集的报告。[0049]在该方法的情况下,数据库包含三维场景,该三维场景包括一个或多个对象。一个或多个对象存储在数据库上,并可以独立于场景存储。数据库可以进一步包含计算机程序,该计算机程序包括用于被该系统执行的指令。指令适用于执行本方法的步骤。[0050]该方法一般操纵对象。对象是被存储在数据库中的数据定义的任何对象。引申开来,“对象”这个表达指定了数据本身。根据系统的类型,对象可以由不同种类的数据定义。系统可以是CAD系统、CAE系统、CAM系统、和或PLM系统的任何组合。在那些不同的系统中,建模对象由相应的数据定义。人们可以相应地谈到CAD对象、PLM对象、CAE对象、CAM对象、CAD数据、PLM数据、CAM数据、CAE数据。然而,这些系统并不互相排斥,因为对象可以由与这些系统的任何组合相对应的数据来定义。这样,系统很可能既是CAD又是PLM系统,通过下面提供的这样的系统的定义,这一点是很明显的。系统还可以是匪〇或MM0G系统,其中对象根据用户动作被操纵。[0051]通过CAD系统,意味着至少适用于基于对建模对象的图形表示来设计建模对象的任何系统,比如CATIA。在这种情况下,定义建模对象的数据包括允许表示建模对象的数据。CAD系统例如可以使用边或线、某些情况下使用面或表面,提供对CAD建模对象的表示。线、边或表面可以用各种方式表示,例如非均匀有理B样条NURBS。特别的,CAD文件包含规范,根据该规范可以产生几何图形,这反过来允许产生表示。建模对象的规范可以存储在单一的CAD文件中或多个文件中。CAD系统中表示建模对象的文件的典型大小是每个部件一兆字节范围内。建模对象典型的可以是数千部件的组装。[0052]在CAD的上下文中,建模对象典型的可以是3D建模对象,例如表示产品,比如一个部件或部件的组装,或可能是产品的组装。通过“3D建模对象”,意味着由允许它的3D表示的数据建模的任何对象。3D表示允许从所有角度查看部件。例如,3D建模对象,当用3D表示时,可以围绕它的任意轴线或围绕表示被显示于其上的屏幕内的任意轴线被处理和转动。这显然排除不是3D建模的2D图标。3D表示的显示有利于设计(S卩,提高了设计者统计上完成他们任务的速度)。这加速了行业制造过程,因为产品的设计是制造过程的一部分。[0053]CAD系统可以是基于历史的。在这种情况下,建模对象进一步由包括几何特征历史的数据来定义。建模对象事实上可以由自然人(即设计者用户)使用标准建模特征(如伸出、转动、切割和或变圆等等和或标准表面特征如扫除、混合、放样loft、填充、变形、平滑和或等等进行设计。许多支持这样的建模功能的CAD系统是基于历史的系统。这是指设计特征的建立历史典型地通过用输入和输出链接将所述几何特征链接在一起的非循环数据流而被保存。自80年代初期,基于历史的建模范例被众所周知。建模对象由两个持久性数据表示来描述:历史和B-reP即边界表示法hB-rep是历史中定义的计算的结果。当建模对象被表示时,显示在计算机屏幕上的部件的形状是(曲面细分的B-rep。部件的历史是设计的意图。基本上,历史收集了建模对象已经经历的操作的信息。B-rep可以与历史一起保存,以使得更容易显示复杂部件。为了允许根据设计意图改变部件的设计,历史可以与B-rep—起保存。[0054]通过PLM系统,意味着适用于管理表示物理制造产品的建模对象的任何系统。在PLM系统中,建模对象因而由适用于制造物理对象的数据来定义。这些典型的可以是尺寸值和或公差值。对于正确制造对象,具有这样的值确实更好。[0055]通过CAE系统,意味着适用于分析建模对象物理行为的任何系统。在CAE系统中,建模对象因而由适用于分析这类行为的数据来定义。这典型的可以是一组行为特征。例如,与门相对应的建模对象可以由表明这扇门围绕轴线旋转的数据来定义。[0056]图8显示了客户端计算机系统的例子,例如用户的工作站。[0057]客户端计算机包括连接到内部通信总线1000的中央处理单元CPU1010,随机存取存储器RAM1070也连接到总线。客户端计算机进一步设置有图形处理单元GPU1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM1100也就是本领域公知的帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备的访问,例如硬盘驱动器1030。适用于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,举例来说包括半导体存储器设备,例如EPR0M、EEPR0M、和闪速存储器设备;磁盘,例如内置硬盘和可移动磁盘;磁光盘;和⑶-ROM盘1040。前述的任何一个可以通过特殊设计的ASIC专用集成电路来补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等等。光标控制设备用在客户端计算机中,以准许用户有选择地将光标放在显示器1〇80上任何希望的位置。另外,光标控制攻备允许用尸选择各种命令,和输入控制信号。光标控制设备包括若千信号产生设备,用于将控制信号输入到系统。典型地,光标控制设备可以是鼠标,鼠标的按键用来产生信号。[0058]计算机程序可以包括依据计算机的指令,指令包括用于引起上述系统执行上述方法的方式。本发明例如可以用数字电子电路或用计算机硬件、固件、软件或用他们的组合来实施。本f明的装置可以用有形地体现在机器可读存储设备中由可编程处理器执行的计算机程序产品实施;并且本发明的方法步骤可以由执行程序指令的可编程处理器来执行,以通过通过操作输入数据和产生输出来执行本发明的功能。[0059]本发明可以有利地用在可编程系统上可执行的一个或多个计算机程序实施,可编程系统包括用来从数据存储系统接收数据和指令和传输数据和指令到数据存储系统的至少一个耦合的可编程处理器、至少一个输入设备和至少一个输出设备。应用程序可以用高级过程编程语言或面向对象编程语言、或者如果需要则用汇编或机器语言来实现;并且在任何情况下,语言可以是编译或解释语言。[0060]根据图1的流程图,现在讨论用于将三维场景分割为多个区域的方法的一个例子。[0061]在步骤100,提供包括一个或多个对象的三维3D场景。提供3D场景可以包括在显示器上显示3D场景和一个或多个对象,例如根据图2提到的显示器1〇8〇。30场景是描述了其中对象之间的空间关系的空间。场景由至少两个对象组成,对象可以是,但不限制为,建模对象或3D建模对象。3D建模对象是对邪空间中对象的描述。3D场景是物理宇宙的模型,其可以由依靠坐标描述3D空间中的每个点的几何图形进行数学表示。3D场景典型的是模拟的真实世界,其中对象之间的真实交互被模拟。表达真实交互意思是模拟的交互反映了真实世界的交互,例如物理定律如作用力转向力重力、磁力、接触)、控制定律如信息流、控制事件等等。一个或多个对象在3D场景中发展并受模拟的真实世界的定律支配,例如两个对象不能相互交叉。3D场景包括能够为了特定的情节而被修改的布局。情节描述了3D场景中一个或多个对象的至少可预测的交互。情节因而描述了一种方式,g卩3D场景用于或设想用于活动的上下文中,例如分析商店中新的区域对顾客流程管理的影响或万一火灾疏散对安全的影响。每个特定的情节将在布局中被模拟。要知道情节可以由用户定义。事实上,3D场景的布局由不能在3D场景中移动和不能被另一对象穿过的静态对象组成。[0062]图2举例说明了3D场景的俯视图的例子,其模拟了大商场的虚拟世界。这个虚拟商场由被墙(由粗线表示)隔开的几个店铺200、210、220、230、走廊260、270和楼梯240、250构成。店铺包含架子280、收银机290和其他设备。图2中,3D场景的布局由静态对象组成,例如走廊的地面、楼梯、墙、架子。3D场景的其他对象例如收银机不是布局的一部分,因为这些对象不是静态对象:事实上,收银机是能够移动的对象,除非收银机被设计为布局的一部分并从而是静态对象。[0063]然后,在图1中的步骤110,确定3D场景中的一组位置,这相当于说在3D场景中标识两个或多个位置。可选地,可以仅确定一个位置。位置是3D场景的对象可以到达的3D场景的一部分。典型地,动态对象可以到达3D场景的位置。动态对象是能够在三维场景中潜在移动的对象。动态对象因而是与静态对象相对的,静态对象从来不在3D场景中移动并不能被另一个对象穿过。术语“位置”可以指3D场景的对象可进入的3D场景的划定面积,或也可以指3D场景的其中包含3D场景的对象的体积。换句话说,位置可以是由一个或多个对象占用的或可以占用的3D场景中的地点。[0064]返回图2中显示的3D场景,由对象模拟顾客未显示)。顾客能够行走、浏览、挑选陈列在架子上的货物并将它们放入他们的购物车中。要知道货物未显示也是对象。这些顾客和货物是动态对象,也就是说,能够在3D场景中潜在移动的对象。这里,动态对象和可能动作的列表不是广泛的,取决于应用程序的目的和3D场景支持的情节的本性。图2上所表示的3D场景持续运转或由计算机资源处理。这涉及同时地用户在任何时候注册注销、商场中建立新店铺并开始营业、能够增加象电梯一样的新设备和能够引进新的商品。换句话说,布局可以被修改,动态对象也可以被修改;例如,顾客可以被抑制、增加或甚至修改。[0065]因而,3D场景可以被考虑为包括静态对象的布局和在所述布局中移动发展的一组动态对象。有趣的是,位置和静态对象紧密相关。事实上,在布局内动态对象的移动被静态对象所限制,所述静态对象定义了不能被动态对象穿过的3D空间中的表面或体积。例如,在图3中,表示顾客34和购物车35的对象是动态对象,其在静态对象走廊33图2中被称为走廊270、280中移动。走廊33的地面可以被动态对象到达,因而能够被标识为位置。作为另一个例子,表示堆32中的罐头的对象是动态对象,其能够从一个架子31潜在地被移动例如,他们可以被顾客抓取并放入购物车中)。因此,显示实例30的架子31能够被确定为是位置。[0066]返回参看图1,在步骤120,用达到最贵计算成本的每个位置的最大对象占用来填充事先确定的每个位置。用位置的最大对象占用来填充位置意思是对象被放在位置上,并且放在这个位置上的对象数量是允许放在该位置的最大对象数量。这个最大对象数量是该位置的特征,这个特征可由3D场景上播放或应用的情节定义。情节关于模拟的真实世界的是真实的,并限制3D场景中对象的可能动作。[0067]3D场景上的一个或多个对象是实例化的对象,这是本领域公知的。当对象在3D场景中被实例化时,该对象产生计算成本。实例化的对象的计算成本是实例化参数的函数。实例化的这些参数可以是,但不限制为,对象的3D网格的选择复杂性、纹理精度、3D场景中对象的反射和阴影、与动态行为如接触冲突、弹性、热传递等等相关联的属性。要知道,当用于位置上的最大数量对象的实例化参数最多时(如用最大的现实实例化),产生的计算成本最局。[0068]根据图2,货物可以放在店铺200里的架子280上。例如,货物可以是洗发水瓶,架子可以是位置。当3D场景播放真实世界模拟情节时,架子可以支撑用最大现实实例化的最大数量的洗发水瓶,结果是为这个架子获得了最贵计算成本。这种情况显示在图3中。显示实例30包括6个架子31。显示实例30显示了带有最大允许的架子31的它的最高成本情况,每个架子处于它们最高容量的堆32中的罐头,对于最贵CRJ的罐头,具有用于呈现的复杂3D网格和丰富纹理。[0069]仍然根据图2,作为另一个例子,对象可以放在走廊270上。例如,对象可以是拿着购物篮的用户。再次,当3D场景播放真实世界模拟情节时,走廊可以包括最大数量的拿着购物篮的用户,其为架子产生了最贵计算成本。这在显示位置的图3上举例说明,这里是走廊33图2中被称为走廊270、2S0,其处于最高成本情况,当每个顾客34推着充满物品36的购物车35,每个顾客和它的车处于“一个挨一个”的情况;也就是说,“一个挨一个”的情况是更差的情况,其中走廊33包括最大数量的顾客。要知道,对象(用户、车和物品)使用被选择用于产生最高计算资源成本的参数实例来被实例化;例如,选择呈现参数用来获得对象的最精确表示。L〇〇7〇」有利地、,步骤120可以仅为动态对象执行,也就是说,为能够在31场景中潜在移动的对象执行。事实上,动态对象具有不可预测的计算成本,因为他们的计算成本取决于比如他们的数量、他们呈现的细节这些因素。相反,静态的,也就是,不能够在三维场景中移动且不能够被另外的对象穿过的对象,产生计算资源的可预测计算成本,或换句话,他们的计算资源成本能够事先知道。[0071]这样,在步骤120,当达到给定位置上可接受的最大数量的对象时和当对象至少用最大现实被实例化时,达到该位置上的最贵计算成本。因此,执行最高成本情况分析:虚拟世界的每个位置都被分析它的最高CPU成本情况。[0072]然后,在步骤130,计算3D场景的每个位置的最高计算成本密度。这有利地允许为在步骤120执行的所有位置量化和表征更差的成本情况。为步骤12〇填充的每个位置执行计算。[0073]最高计算成本密度可以是指每面积单位或每体积单位的计算成本,取决于位置的种类面积,体积)。例如,如果位置是面积,那么最高计算成本密度将是每面积单位的计算成本;作为另一个例子,如果位置是体积,那么最高计算成本密度将是每体积单位的计算成本。显然,最高计算成本密度能够包括3D对象的本性。这相当于说,最高计算成本密度可以根据所述面积或体积单位上的3D对象的本性来计算。例如,对于同样的面积,最高计算成本密度可以取决于是模拟基本3D对象比如立方体、球体等,或是模拟复杂3D对象比如表面、网格等。[0074]事实上,计算步骤130包括计算比率PA,其中,P是用于处理达到它的最贵计算成本的位置所需的计算资源的测量百分比,如根据步骤120所讨论的,并且其中A是三维场景中位置的面积。可选地,A可以是三维场景中位置的体积。计算资源p典型的是实施本方法的系统的处理器,或处理区域的计算资源。[0075]现在参看图4,举例说明了对根据图2所描述的大商场中的架子的最高计算成本密度的计算。图4中,确定的位置40是包括其上放置动态对象货物的显示实例30的三个架子31的体积。比率PA的计算结果是每体积单位的最高计算成本,例如每立方米的最高计算成本。[0076]可选地,仍然根据图4,位置40的比率PA的计算结果可以是每面积单位的最高计算成本,例如每平方米。因为位置40是体积,所以表示该位置的体积的面积被计算。为了这个目标,从体积40提取印迹print41:这是指体积40的投影在跟随一个方向的投影平面上例如商场的地面4¾完成,也就是说,通过将3D空间中的点线性映射到二维投影平面上的点来构造投影。因而,印迹是面积。图4中,投影的方向由这里垂直于投影平面42的箭头43表示。这个例子中投影平面可以是走廊33的地面。因而,印迹41是体积40在投影平面42投影的结果。[0077]典型地,投影平面可以是跨越3D场景延伸的平面,以便每个位置能够投影到这个平面上。当在步骤110已经确定混合的面积和体积位置时,这样的投影平面允许计算最高计算成本密度。事实上,所有位置面积或体积都投影到投影平面上。在图4的例子中,3D场景是大商场,其中大商场的地面是平面。在这种情况下,地面充当用于确定位置的平面:面积位置比如商场的走廊在大商场的地面上被直接标识,体积位置的印迹比如架子在大商场的地面上被计算。[0078]通过运行几批基础的但是重要的情节来执行计算步骤13〇,这些情节满足实时模拟以测量最高计算机资源成本情况下选择的典型位置的小的同质面积的计算资源性能。[0079]接着,在图1的步骤132,执行聚集计算出的3D场景的每个位置的最高计算成本密度的步骤。聚集是指计算出的每个位置的最高计算成本密度的结果被连接或收集到一起。[00S0]然后,在图1的步骤134,根据聚集的最高计算成本密度建立3D场景的成本密度地图。术语“成本密度地图”指的是对计算出的最高计算成本密度的表示。这个表示典型的用于2D平面,其可以与3D场景叠加,例如3D场景的俯视图。换言之,成本密度地图是对与3D场景一致的最高计算成本密度的表示。[0081]有趣的是,成本密度地图可以建立在与位置可以在上面投影的一个投影平面相同的平面上。通过这种方式,位置和计算出的最高计算成本密度之间的一致更加容易保持。而且,因为作为位置在投影平面上投影的结果预先建立卻场景地图,这有利地使得聚集和建立步骤132、134更加容易。[0082]—旦成本密度地图已经建立,它可以被显示以便用户能够看到邪场景的什么面积需要多少数量的计算资源。为了这个目标,地图可以提供图形信息,显示了计算出的3D场景的位置的最高计算成本密度。例如,颜色色标可以被用于表示最高成本密度。[0083]现在参看图5,表示的是图2上表示的3D场景(大商场)的成本密度地图的例子。作为计算、聚集和建立步骤13〇、132和1M的结果获得这个成本密度地图。图5中显示的成本密度地图是能够与3D场景叠加的一个平面,例如图2的邪场景。图5中,成本密度地图由成本密度Ki多边形i是自然数的集合组成,每个多边形Ki表示己为其计算了成本密度的位置。例如,多边形Ks近似地对应于动态对象放在架子上的货物的位置。作为另一个例子,多边形对应于顾客和他们的车能够在其中移动的商场的区域。[0084]有趣的是,根据聚集的最高计算成本密度建立的地图可以是跨越3D场景延伸的平面,以便3D中的每个位置投影到这个平面上。当在步骤11〇已经确定混合的面积和体积位置时,这样的单一投影平面允许计算最高计算成本密度。[0085]在图1上描述的过程的这个步骤,作为步骤120到134的结果,已经建立3D场景的成本密度地图。在步骤140-142,现在计算第二地图,其被称为3D场景的约束地图。成本密度地图和约束地图的建立可以顺序执行,或并行执行。对于两个地图,仅需要提供包括一个或多个对象的3D场景步骤100和确定3D场景中一组位置步骤110。可选的,可以提供在3D场景上播放的情节。可以用和3D场景相似的方式提供该情节。[0086]在步骤140,为3D场景的每个位置提取位于所述每个位置上的静态对象。如先前所见,静态对象是不能够在3D场景中移动并不能够被另外的对象穿过的对象。术语“提取”意思是为标识3D场景的静态对象对3D场景执行计算。这样,提取静态对象相当于标识静态对象。当虚拟世界被设计时,可以由虚拟世界的知识引起对静态对象的标识。[0087]接下来,在步骤142,根据在步骤140提取的静态对象建立3D场景的约束地图。术语“约束地图”是指对静态对象的表示。这个表示典型地在2D平面中完成,其可以与3D场景叠力口,例如3D场景的俯视图。[0088]约束地图的目的是提供对用于在步骤160将被分组的区域的实用规则的图形转化。这些实用规则想要提供依赖于规则的适宜的成形区域。例如,规则的范围可以涉及但不限制于环境的几何形状:事实上,如先前所见,3D场景可以被考虑成包括能够为了特定情节而修改的布局,其该布局可以包括不能够在3D场景中移动并不能够被另外的对象穿过的静态对象。另外,其他规则可以管理除环境的几何形状之外的其他考量,如物理、工程等等。[0089]就成本密度地图而言,约束地图典型的是一2D平面,其可以与3D场景叠加,例如图2的3D场景的俯视图。因为静态对象是3D对象,所以提取步骤可以进一步包括提取3D场景的每个位置上的每个静态对象的印迹。如先前根据图4所解释的,提取对象的印迹相当于说该对象的投影在依照投影方向的投影平面上完成,以便完成从3D空间中的点映射到二维投影平面上的点。[0090]约束地图可以建立在与位置可以在上面投影的一个投影平面相同的平面上。通过这种方式,位置和提取的静态对象之间的一致性更加容易保持。一旦成本密度地图已经建立,它可以被显示以便用户能够看到3D场景的特定面积上的约束。[0091]现在参看图6,表示的是图2上表示的3D场景大商场)的约束地图的例子。这个约束地图是作为提取和建立步骤140和142的结果获得的。通过提取一些静态对象的印迹,一些静态对象已从3D场景被提取,如图4的实例所示。例如,显示实例30的一些支撑件66已经被提取。每个支撑件66是不能够被任何其他的对象穿过的静态对象。作为从3D场景提取的静态对象的另外的例子,有支撑大商场屋顶的桩子62、隔开商场店铺的隔离墙64。[0092]有趣的是,依附于支撑件66的架子31也是静态对象;它们不能在3D场景中移动并不能够被任何其他的对象穿过。然而,当建立约束地图时它们没有被提取。事实上,一个或多个动态对象可以潜在地位于架子上,如图3或4所示,当架子的印迹被提取时,也就是说,当架子36的投影在投影平面上这里是地面42完成时,潜在的一个或多个动态对象的投影该投影的执行类似于对架子的可以至少部分的重新覆盖架子的印迹。因为一个或多个动态对象的印迹很可能至少部分的重新覆盖静态对象的印迹,所以当建立约束地图时没有保持架子。相反,没有动态对象可以放在上面的支撑件66的印迹被保持。[0093]约束地图可以是跨越3D场景的平面,以便3D场景中的每个位置可以投影到这个平面上。当在步骤110已经确定混合的面积和体积位置时,这样的单一投影平面允许提取静态对象。[0094]返回到图1,一旦成本密度地图和约束地图已经建立,在步骤150处可以聚集两个地图。聚集地图是指地图被合并。聚集两个地图可以通过叠加两个地图来实行。特别是,当两个地图具有相同比例时,这个操作可以更加容易地执行。要知道,术语“比例”指的是地图上的距离相对3D场景上对应的距离的比率。[0095]接下来,在步骤160,执行将相邻位置分组到一个或多个区域。位置是相邻的,也就是说,每个位置与区域的另一个位置具有至少一个共同的点或一个共同的边界。可选的,分组步骤可以包含部分相邻位置被分组到一个或多个区域。因而,步骤160在于将虚拟环境分割为一个或多个区域。例如,并参看图5,每个多边形K8表示一位置并与另一个多边形1^共享至少一条边。由虚线表示的区域52包括部分相邻位置。[0096]每个区域具有保证区域的实时性能的合成计算最高成本密度。这是指实施本方法的计算机化系统的处理单元能够给区域提供确保实时性能的计算资源。术语“实时性能”是指在严格的时间限制内提供有保证的响应。[0097]执行分组以便每个区域的合成计算成本密度是这样的:用于处理该区域所需要的计算资源低于预先定义的阈值。区域的合成计算成本密度是每个位置的最高成本密度乘以它的面积的总和。换句话,通过用它的最高成本密度乘它的面积来计算每个位置的最高计算成本,每个位置获得的结果被加在一起。预先定义的阈值可以是实施本方法的计算机化系统的处理单元的百分比,或者是区域的计算资源的百分比。尤其是,可以创建这样的区域:它们形成叫做最小区域的区域,其中,在3D场景的最高成本情况下,最小区域是它的CPU成本明显等于其相关联的处理资源的100%的区域。优选的,CPU成本低于100%,例如因为满足约束的形状调整。[0098]另外,将位置分组为一个或多个区域可以被执行以便两个或多个区域之间的合成计算成本密度是明显一样的。这有利地有助于使得共享区域之间的CPU的处理资源更加容易。特别是,当计算机化系统包括提供区域的计算资源的两个或多个CPU时,CPU之间的负载更加容易被共享。[00"]而且,通过考虑使用每个区域过去制造的计算资源,分组可以进一步被执行。事实上,3D场景持续运转或由计算机资源处理,从而,新的动态和静态对象可以连续不断地被添加、修改或抑制。这样,优选地,用于分割3D场景的方法可以被定期执行以便3D场景的修改可以被考虑。例如,在经过预先确定的一段时间之后,该方法可以再次被执行。可选的,在己经完成了对3D场景的一个或多个修改之后,可以再次执行用于分割3D场景的方法。因为本发明的方法已经被执行了几次,所以有可能知道过去使用的每个区域的计算资源,从而可以标识仅使用了一小部分分配给它的计算资源的区域。事实上,根据区域的合成计算成本密度分配用于处理该区域的计算资源被降低了。这可以通过降低预先定义的阈值来执行。[0100]可以根据用户动作执行分组,例如通过与3D场景的位置被显示在上面的显示进行交互。为了这个目标,可以通过显示为用户提供图形编辑工具,如图7上所示;通过将区域分割编辑器的视图与约束地图叠加和与成本密度地图叠加来产生该显示。当编辑和拖拽区域46的形状时,用户连续接收对产生的区域的CPU成本这里是75%的更新。对区域的拖拽相当于执行对区域分割编辑器上的面积的选择,可以由用户经由触觉设备执行该选择,比如键盘、鼠标、定位笔、或直接是显示器,例如显示器是触敏屏幕。例如,在两键鼠标中,当移动光标44时左键可以用于选择一个面积。[0101]另外,可以协助用户定位区域的定义点:基于从约束地图提取的规则,用户的拖拽能够被操纵或禁止。对于图2上表示的大商场实例,这样的协助将使得区域区段与墙一致,或与最近的架子保持垂直。[0102]可以通过用于编辑区域的一个或多个规则进一步协助用户,例如,但不限制为:[0103]•区域不能够具有包含需要超过计算机化系统的处理单元的100%的计算成本的合成计算成本密度;[0104]•区域不能是成块的;[0105]•区域具有最少可能数量的带有可交叉边界的相邻区域;[0106]•区域具有与相邻区域最短长度的交叉边界;[0107]•区域具有尽可能的最紧凑的形状。[0108]还可以根据执行该方法的系统的计算自动执行分组。这可以通过使用优化程序来执行,所述优化程序能够自动产生虚拟环境到区域的可能分割,这接近差不多可能1〇〇%的计算资源的CPU功耗。[0109]已经描述了本发明的优选实施例。要知道,不脱离本发明的精神和范围可以进行各种不同的修改。因此,其他实现包含在下面的权利要求范围内。

权利要求:1.一种用于将三维场景分割为多个区域的计算机实现方法,每个区域由计算资源处理,该方法包括:-提供100包括一个或多个对象的三维场景,每个对象产生一计算资源成本;-确定(110所述三维场景中的一组位置;-以达到最贵计算成本的每个位置的最大对象占用来填充12〇每个位置;-为所述三维场景的每个位置计算(130最高计算成本密度;-为所述三维场景的每个位置提取140位于所述每个位置上的静态对象,静态对象是不能够在三维场景中移动并且不能够被另外的对象穿过的对象;-根据提取出的静态对象建立所述三维场景的约束地图(142;-将部分相邻位置分组(160到一个或多个区域,每个区域具有合成计算成本,该合成计算成本是相邻位置的每个部分的最高成本的总和并且该合成计算成本保证所述区域的实时性能,其中,对部分相邻位置的分组是根据由所述约束地图提供的提取出的静态对象来执行的。2.如权利要求1所述的计算机实现方法,进一步包括以下步骤:-聚集132为所述三维场景的位置计算的最高计算成本密度;和-根据聚集的最高计算成本密度建立所述三维场景的成本密度地图(134。3.如权利要求1到2中任一项所述的计算机实现方法,其中,为动态对象执行以每个位置的最大对象占用来填充每个位置的步骤,动态对象是能够在三维场景中潜在地移动的对象。4.如权利要求1所述的计算机实现方法,其中,提取静态对象的步骤进一步包括:-为所述三维场景的每个位置提取所述静态对象在所述三维场景的所述每个位置上的印迹。5.如权利要求1所述的计算机实现方法,进一步包括步骤:-聚集150所述三维场景的成本密度地图和所述三维场景的约束地图。6.如权利要求1所述的计算机实现方法,其中,计算最高计算成本密度包括计算比率PA,其中,P是用于处理位置所需的计算资源的测量百分比,A是所述三维场景中的位置的面积。7.如权利要求1所述的计算机实现方法,其中,在分组步骤,每个区域的所述合成计算成本是这样的:用于处理所述区域所需要的计算资源低于预先定义的阈值。8.如权利要求1所述的计算机实现方法,其中,在分组步骤,在两个或多个区域之间的合成计算成本是明显一样的。9.如权利要求1所述的计算机实现方法,其中,考虑每个区域过去所制造的计算资源的使用,进一步执行分组步骤。10.—种用于将三维场景分割为多个区域的设备,每个区域由计算资源处理,所述设备包括用于执行权利要求1到9中任一项所述的方法的步骤的模块。11.一种计算机可读存储介质,其上记录有指令,所述指令在由处理器执行时,使得所述处理器执行权利要求1到9中任一项所述的方法。12.—种计算机化系统,包括:_存储系统,用于存储包括一个或多个对象的三维场景;-处理单元,用于处理分割三维场景的多个区域,每个区域由所述处理单元的计算资源处理,所述处理单元适用于根据权利要求1到9中任一项所述的方法将三维场景分割为多个区域。

百度查询: 达索系统公司 将3D场景分割为由计算资源处理的多个区域

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。