CN108230453A - 将3d场景自动划分成由计算资源进行处理的多个分区 - Google Patents
将3d场景自动划分成由计算资源进行处理的多个分区 Download PDFInfo
- Publication number
- CN108230453A CN108230453A CN201711395421.9A CN201711395421A CN108230453A CN 108230453 A CN108230453 A CN 108230453A CN 201711395421 A CN201711395421 A CN 201711395421A CN 108230453 A CN108230453 A CN 108230453A
- Authority
- CN
- China
- Prior art keywords
- scenes
- subregion
- unit
- cost
- calculating
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- 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/52—Parallel processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2008—Assembling, disassembling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明显著地涉及用于将3D场景划分成多个分区的计算机实现的方法,每个分区表示3D场景中的区域或体并且由计算资源进行处理。该方法包括:提供包括一个或多个对象的3D场景,每个对象产生计算资源成本;计算表示所提供的3D场景的计算成本的密度的第一图;定义表示将作为对3D场景的划分而获得的分区的形状上的约束的第二图;通过计算没有动态对象的3D场景的空间量子化,将所提供的3D场景离散化成单元,动态对象是能够在3D场景中潜在地移动的对象;针对每个单元,根据3D场景的第一图对计算成本进行计算;根据第二图将单元聚合成一个或多个分区,每个分区具有作为属于该分区的单元的计算成本的总和的计算成本,该分区的计算成本允许在计算资源上进行对该分区的实时模拟。
Description
技术领域
本发明涉及计算机程序和系统领域,以及更具体地涉及用于将三维场景划分成多个分区的方法、系统和程序,每个分区由计算资源进行处理。
背景技术
3D模拟在过去的三十年中在各种且大量受众的用户中得到了巨大成功:从对处于设计阶段的系统在现实中表现如何进行验证的工程师,到探索或展示理论概念的科学家,再到玩视频游戏或享受3D动画片的一般公众。3D模拟在过去的三十年中得到许多演变,并且仍然具有增长的势头。特别地,3D模拟旨在回应用户对于更复杂且更真实的行为(多刚体动力学、人体模拟、织物模拟、粒子模拟...)的需求,以用于更广泛的群体和对象类型,以及更广泛的规模。
3D模拟必须满足实时需求,更具体地,这在视频游戏产业中是通过开发用于支持大量用户在大规模虚拟世界中进行交互的特定技术而发起的。必须随时向连接的用户提供实时响应,而不管用户的数量如何,并且不管由解决和显现应用而引起的计算成本。
大型多用户在线应用(MMO)允许许多用户同时使用诸如真实世界现象模拟器、沉浸式应用等的应用。类似地,大型多用户在线游戏(MMOG)允许许多游戏玩家同时玩视频游戏。MMO和MMOG显著地依赖计算机网络(例如,互联网),以允许用户或玩家连接到应用或视频游戏。贯穿本说明书,词语“应用”和“视频游戏”将被理解为是同义的,并且术语MMO和MMOG将无差别地使用。
MMO涉及复杂且庞大的虚拟环境,期望该虚拟环境以尽可能多的细节、尽可能接近实时地显现,以便于向用户或游戏玩家提供更真实的体验。MMO专门设计用于3D场景的表示和操纵,并且典型地在终端用户的计算机上用于需要交互的、连续的、实时的3D场景生成的应用。当用户与3D场景进行交互时,计算机足够快速地重绘3D表示,以向用户传达用户正在其中参与的持续的、不间断的现实的感觉。场景由许多分离的对象组成,这些对象能够由用户在与3D场景交互时进行操纵。因此,MMO涉及大数据量,一般需要高数据速率和高数据复杂度,以便于对在空间复杂且高度详细的虚拟环境中实时参与的大量用户进行管理。
MMO典型地用于在计算机模型内模拟真实世界现象;例如,多刚体动力学、人体模拟、织物模拟、粒子模拟。模拟需要描述真实世界现象的准确的数据和算法,例如,在制造过程中使用的材料以及用于创建过程的模拟和使用中的产品的模拟的产品的物理性质(强度、弹性等)。3D CAD/CAM(计算机辅助设计、计算机辅助制造)工具允许创建产品或部件零件的3D表示。MMO也被称为3D体验,即,其中工程师研究对象的行为的虚拟环境;典型地,所模拟的环境是工业环境。表达“3D场景”与“3D体验”是同义的。
MMO正如MMOG,必须是可扩展的,以便动态地适应永久变化的工作负载,从而维持实时性能。可扩展性显著地包括能够同时使用应用的用户的数量,用于对模拟进行计算的计算资源的数量,应用所允许的3D场景中的对象之间的同时交互的数量等。
对于MMOG,用户的数量以及所有包含的动态对象的位置属性和图形属性可能显著地变化;动态对象是可能在场景中移动的对象。尽管如此,在游戏开始之前,针对所有类型的动态对象设置一次周围布景,并且所支持的行为类别是预定义的。换言之,MMOG中的3D场景包括强烈地限制计算资源的需求的多个预确定的特性;从而改进可扩展性。因此,预测计算资源的需求是可能的。
相反,对于先进的MMO,3D场景的布景和群体类型能够演变并且丰富,特别是在应用正在运行时。实际上,MMO旨在对真实世界现象进行模拟,其中,对象的行为是动态的并且排除预定义的行为类。因此,MMO中的3D布景不能像MMOG那样使用预定义的特性。
因此,即使3D体验具有与MMOG相同种类的实时且大量的约束,其对于更加精细、真实、且准确的物理行为也具有特定且严格的需求,因此要求计算能力。
单个计算资源无法实时处理所有的求解计算,并且出于该原因,需要并行化技术。简言之,3D体验被划分成所谓的或分区(也被称为部分),分区中的每个分区对3D体验的特定空间区域进行处置。这些分区的尺寸是重要的,因为其决定了分区是否可以由计算资源实时地进行计算。将3D场景(也称为3D体验)划分成部分的方式是原生的,即,如何对分区进行界定。
对分区进行界定时最重要的要求是,每个分区的模拟总是使得负载严格低于计算资源的100%以实现实时;例如,低于95%以保持安全余量。几乎存在无限数量的适合3D体验的分区,但很少称为最佳的(即,最少数量的部分),对此而言实际上完全相同数量的计算资源足以实时地运行模拟。手动执行该选择是极其耗时的任务而且效率不高,因为不能手动探索所有解;因此,在对其进行手动选择时,无法在合理的时间范围内获得具有最少数量的分区的最佳解。
这个问题可以公式化为连续的问题,其中不断地且同时地对表征解的参数进行调整以探索所有的可能性,寻找最好地符合标准的参数。当适用时,该选项是最高效且质量最好的技术。然而,很少有表征(例如,部分的数量,在其被选择为多边形的情况下边界点的数量...)在本质上不是连续的,而且因此通常相关联的技术需要附加的昂贵的人工产物,并且对于求解该问题变得不可行。
在该上下文中,仍然需要改进的方法、计算机程序以及系统来对将3D场景划分成由计算资源进行处理的多个分区进行改进。
发明内容
因此提供了一种用于将3D场景划分成多个分区的计算机实现的方法。每个分区表示3D场景中的区域或体并且由计算资源进行处理。该方法包括:
-提供包括一个或多个对象的3D场景,每个对象产生计算资源成本;
-计算第一图,其表示所提供的3D场景的计算成本的密度;
-定义第二图,其表示将作为对3D场景的划分的结果而获得的分区的形状上的约束;
-通过计算没有动态对象的3D场景的空间量子化,将所提供的3D场景离散化成单元,动态对象是能够在3D场景中潜在地移动的对象;
-针对每个单元,根据3D场景的第一图对计算成本进行计算;
-根据第二图将单元聚合成一个或多个分区,每个分区具有作为属于该分区的单元的计算成本的总和的计算成本,该分区的计算成本允许在计算资源上进行对该分区的实时模拟。
在示例中,该方法可以包括以下中的一个或多个:
-将单元聚合成一个或多个分区是进一步利用组合优化算法来执行的;
-组合优化算法是蚁群算法;
-在单元的聚合之前:根据第二图计算一个或多个单元的一个或多个聚类;并且其中,聚合步骤包括将聚类聚合成一个或多个分区,每个分区具有作为属于该分区的单元的计算成本的总和的计算成本,该分区的计算成本允许在计算资源上进行对该分区的实时模拟;
-在第二图上表示的分区的形状上的约束是通过以下操作获得的:在3D场景中识别3D场景中的一个或多个静态对象,静态对象是不能在3D场景中移动并且不能被另一对象穿越的对象;以及针对识别出的每个静态对象,计算与创建一个或多个单元的一个或多个聚类的规则相关联的几何形状;
-几何形状与用于创建单元的聚类的规则的关联是以下中的一个:几何形状是多边形,并且规则创建被包括在多边形中的单元的聚类;几何形状是多边形,并且规则根据由向量表示的方向和大小来创建从多边形延伸的单元的聚类;几何形状是多段线,并且规则触发针对与多段线接界的每个单元的聚类的创建;
-在3D场景中对3D场景中的一个或多个静态对象的识别是根据用户动作来执行的;
-规则与计算出的几何形状的关联是根据用户动作执行的;
-对表示所提供的3D场景的计算成本的密度的第一图的计算包括:确定3D场景中的一组位置;用每个位置的对象最大占用率填充该位置,对象最大占用率达到最昂贵的计算成本;针对3D场景中的每个位置,计算最大计算成本;
-针对每个位置,计算比率P/A,其中,P是处理该位置所要求的计算资源的测量的百分比,并且A是该位置在三维场景中的面积;
-用每个位置的对象最大占用率填充该位置的步骤是针对动态对象执行的;
-对3D场景的空间量子化的计算包括:计算由以下关系式定义的表面量子Sq
Sq=(CPUCA)/(计算成本的密度)Max
其中,(CPUCA)表示用于处理分区的计算机资源成本的精度,并且(计算成本的密度)Max是在第一图上表示的最高密度;以及将所提供的3D场景离散化成单元,每个单元具有等于表面量子Sq的尺寸;
-针对每个单元根据3D场景的第一图对计算成本进行计算包括计算表面量子Sq与该单元的计算成本的密度之间的乘积;
-组合优化算法的目标函数被公式化用于至少在以下情况时增加:分区的数量N作为将单元新聚合成一个或多个分区的结果而增加;分区的形状是锯齿状的边界;断开连接的分区的数量大于零。
进一步提供了一种计算机程序,其包括用于执行该方法的指令。
进一步提供了一种计算机程序,其包括用于执行该方法的指令。
进一步提供了一种计算机可读存储介质,其上记录有计算机程序。
进一步提供了一种系统,其包括耦合到存储器的处理器,该存储器在其上记录有计算机程序。
附图说明
现在将通过非限制性示例的方式并且参考附图来描述本发明的实施例,在附图中:
-图1示出了该方法的示例的流程图;
-图2示出了3D体验的示例;
-图3示出了图2的成本密度的图的示例;
-图4示出了图2的约束的图的示例;
-图5示出了离散化成单元的图3的图的示例;
-图6示出了形成成本密度图的图3的图的示例;
-图7示出了可以在3D体验中识别的约束的类型的示例;
-图8示出了离散化成单元的聚类的图4的图的示例;
-图9示出了系统的示例。
具体实施方式
参照图1的流程图,提出了用于将三维(3D)场景划分成多个分区的计算机实现的方法。3D场景因此被划分成一组分区。该组中的每个分区表示3D场景中的区域,或3D场景中的体。每个分区由计算资源进行处理。在实践中,将每个分区分配给解算器,并且每个解算器在其自己的专用计算资源上运行;计算资源可以是但不限于在CPU上、在多核CPU上的求解线程,在多CPU计算机上的进程,在服务器CPU上的服务器进程…因此,“解算器”和“计算资源”的观点在负载和性能方面是严格等价的。因此,术语“解算器”和表达方式“计算资源”在本发明中是同义词。该方法包括提供包括一个或多个对象的3D场景。每个对象产生计算资源成本,例如,用于实例化3D场景中的对象,用于计算3D场景中的对象的表示等等。该方法还包括计算表示所提供的3D场景的计算成本的密度的第一图。该方法包括定义第二图,该第二图表示将作为对3D场景的划分(例如,根据用户行动)的结果而获得的分区的形状上的约束。该方法还包括通过计算没有动态对象的3D场景的空间量子化来将所提供的3D场景离散化成单元,动态对象是能够在3D场景中潜在地移动的对象。该方法还包括根据第一图来计算每个单元的计算成本。该方法附加地包括根据第二图将单元聚合成一个或多个分区。每个分区的计算成本是属于该分区的一个或多个单元的计算成本的总和。分区的计算成本允许在计算资源上对该分区进行实时模拟;换言之,3D场景的模拟的时间步骤的计算总是在新的时间开始之前完成。
这样的方法改进了将3D场景划分成由计算资源进行处理的多个分区。显著地,第一图和第二图提供从3D场景中提取的信息的表示。所提取的信息允许计算遵从3D场景的固有特性(例如,3D场景中的静态对象)和3D场景的外在特性(例如,用于模拟3D场景的计算资源上的计算成本)的3D场景的最小离散化。3D场景的这种最小离散化允许减少单元聚合的组合的数量。通过这种方式,因此可以作为使用组合方法的结果而获得具有最小数量的分区的最佳的(多个)解,其中可以将(多个)解公式化为大量且有限数量的特定元素的(多个)布置。可以在合理的时间范围内获得(多个)解,并且可以自动地执行划分,即不需要用户干预。将讨论本发明的另外的优点。
该方法是计算机实现的。这表示该方法的步骤(或大体上所有步骤)由至少一个计算机或任何相似的系统来执行。因此,该方法的步骤由计算机可能全自动或半自动地执行。在示例中,可以通过用户-计算机交互来执行该方法的步骤中的至少一些步骤的触发。所需要的用户-计算机交互水平可能取决于预见的自动化水平,并且与实现用户意愿的需求保持平衡。在示例中,该水平可以是用户定义的和/或预定义的。
例如,提供3D场景的步骤可以在进行用户选择时执行;用户可以经由诸如键盘、鼠标、触笔等的触觉设备来执行选择。例如,在双按键鼠标中,左侧按键可以用于在场景的列表中选择场景。该系统还可以默认地识别场景,即,不需要用户选择。
该方法的计算机实现方式的典型示例是利用适用于该目的的系统来执行该方法。该系统可以包括耦合到存储器以及图形用户接口(GUI)的处理器,存储器在其上记录有计算机程序,计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括若干物理不同的部分(例如,一部分用于程序,并且可能一部分用于数据库)。
“数据库”表示被组织用于进行搜索和检索的任何数据(即,信息)的集合(例如,关系数据库,其例如基于诸如SQL的预确定的结构化语言)。当存储在存储器上时,数据库允许由计算机进行快速搜索和检索。实际上,数据库被结构化以有助于结合各种数据处理操作对数据进行存储、检索、修改、以及删除。数据库可以由能够被分解为记录的文件或文件集合构成,这些记录中的每一个记录由一个或多个字段构成。字段是数据存储的基本单位。用户可以主要通过查询来检索数据。使用关键字和排序命令,用户能够根据正在使用的数据库管理系统的规则来对许多记录中的字段进行快速搜索、重新排列、分组、以及选择,以便检索或创建关于特定数据聚合体的报告。
在该方法的情况下,数据库可以存储3D场景、3D场景中的一个或多个对象。3D场景可以独立于一个或多个对象而被存储在例如另一数据库中。数据库还可以包括计算机程序,计算机程序包括用于由系统执行的指令。指令适用于执行本方法的步骤。
该方法一般对处于3D场景中的建模对象进行操纵。3D建模对象形成3D场景。建模对象是由例如存储在数据库中的数据定义的任何对象。引申开来,表达方式“建模对象”指定数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统、和/或PLM系统的任何组合。在这些不同的系统中,建模对象由对应的数据定义。本领域技术人员可以相应地提及CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统不是互相排斥的,因为建模对象可以由对应于这些系统的任何组合的数据来定义。该系统还可以是其中对3D场景和/或3D建模对象进行模拟或播放的MMO或MMOG系统。在MMO/MMOG系统中使用的3D建模对象可能已经利用CAD系统进行设计。
CAD系统附加地表示至少适用于在建模对象的图形表示的基础上来设计建模对象的任何系统,例如,CATIA。在这种情况下,定义建模对象的数据包括允许建模对象的表示的数据。例如,CAD系统可以使用边或线(在某些情况下使用面或表面)来提供CAD建模对象的表示。可以以诸如非均匀有理B样条(NURBS)的各种方式来表示线、边、或表面。特别地,CAD文件包含规格,根据规格可以生成几何结构,这接下来允许生成表示。建模对象的规格可以存储在单个CAD文件或多个CAD文件中。表示CAD系统中的建模对象的文件的典型大小在每个零件一兆字节的范围内。并且建模对象典型地可以是成千上万个零件构成的组装件。
在本发明的上下文中,建模对象典型地可以是3D建模对象,例如,表示诸如零件或零件构成的组装件的产品,或者可能是产品构成的组装件。“3D建模对象”表示由允许其3D表示的数据建模的任何对象。3D表示允许从所有角度来查看该零件。例如,当对3D建模对象进行3D表示时,可以围绕其轴中的任一个轴或围绕显示该表示的屏幕中的任何轴来对3D建模对象进行处理并转动。这显著地排除了非3D建模的2D图标。3D表示的显示有助于进行设计(即,提高了设计人员统计地完成其任务的速度)。因为产品的设计是制造过程的一部分,所以这加速了工业中的制造过程。
3D场景以及3D场景中的一个或多个3D建模对象可以表示以下产品的几何结构,该产品在利用例如CAD软件解决方案或CAD系统完成其虚拟设计之后将在真实世界中进行制造:例如,(例如,机械的)零件或零件构成的组装件(或者等同地,零件构成的组装件,因为零件构成的组装件从该方法的观点可以看作零件本身,或者该方法可以独立地应用于组装件中的每个零件),或者更一般地任何刚性体组装件(例如,移动机构)。CAD软件解决方案允许对各种且不受限制的工业领域中的产品进行设计,包括:航空航天、建筑、建造、消费品、高科技设备、工业装备、运输、船舶、和/或海上石油/天然气生产或运输。因此,通过该方法设计的3D建模对象可以表示可以是任何机械零件的工业产品,例如,陆地交通工具的一部分(包括例如汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和公共汽车、火车)、航空交通工具的一部分(包括例如机身装备、航空航天装备、推进装备、国防产品、飞机装备、空间装备)、航海交通工具的一部分(包括航海装备、商船、近海装备、游艇和工作船、船舶装备)、一般机械零件(包括例如工业制造机械、重型移动机械或装备、安装装备、工业装备产品、制造金属产品、轮胎制品等)、机电或电子零件(包括例如消费电子、安全和/或控制和/或仪表化产品、计算和通信装备、半导体、医疗设备和装备)、消费品(包括例如家具、家居和园艺产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
CAD系统可以是基于历史的。在这种情况下,建模对象由包含几何特征的历史的数据来进一步定义。实际上,建模对象可以由自然人(即,设计人员/用户)使用标准建模特征(例如,挤压、旋转、切割、和/或削圆)和/或标准铺面特征(例如,扫掠、混合、放样、填充、变形、和/或平滑)来设计。许多支持这种建模功能的CAD系统是基于历史的系统。这意味着设计特征的创建历史典型地通过非周期数据流进行保存,非周期数据流通过输入链接和输出链接将所述几何特征链接在一起。自80年代初以来,基于历史的建模范例是公知的。通过以下两种持久性数据表示来描述建模对象:历史和B-rep(即,边界表示)。B-rep是在历史中定义的计算的结果。当建模对象被表示时,在计算机的屏幕上显示的零件的形状是B-rep(例如,其细分曲面(tessellation))。零件的历史是设计意图。基本上,历史收集了关于建模对象已经经历的操作的信息。B-rep可以与历史一起保存,以便更容易地显示复杂的零件。历史可以与B-rep一起保存,以便允许根据设计意图对零件进行设计改变。
PLM系统附加地表示适用于对表示物理制造的产品(或要制造的产品)的建模对象进行管理的任何系统。因此,在PLM系统中,由适于制造物理对象的数据来定义建模对象。这样的数据典型地可以是尺寸值和/或公差值。为了正确制造对象,实际上最好具有这样的值。
CAM解决方案附加地表示适用于对产品的制造数据进行管理的任何解决方案、软件或硬件。制造数据一般包括与要制造的产品、制造过程、以及所需要的资源有关的数据。CAM解决方案用于计划和优化产品的整个制造过程。例如,CAM解决方案能够给CAM用户提供关于可行性、制造过程的持续时间或者可以用于制造过程的特定步骤的资源(例如,特定的机器人)的数量的信息;并且因此允许做出关于管理或所需要的投资的决策。CAM是CAD过程和潜在的CAE过程之后的后续过程。这样的CAM解决方案由Dassault Systèmes以商标提供。
CAE解决方案附加地表示适用于对建模对象的物理行为进行分析的任何解决方案、软件或硬件。公知且广泛使用的CAE技术是有限元方法(FEM),其典型地涉及将建模对象分为能够通过方程对物理行为进行计算并仿真的元素。这样的CAE解决方案由DassaultSystèmes以商标提供。另一种发展中的CAE技术涉及对由不具有CAD几何数据的不同物理领域的多个组件所构成的复杂系统进行建模与分析。CAE解决方案允许进行仿真并且因此对要制造的产品进行优化、改进以及、验证。这样的CAE解决方案由DassaultSystèmes以商标提供。
PDM代表产品数据管理。PDM解决方案表示适用于对与特定产品有关的所有类型的数据进行管理的任何解决方案、软件、或硬件。PDM解决方案可以由产品生命周期中所涉及的所有参与者使用:主要是工程师,但是也包括项目经理、财政人员、销售人员、以及买方。PDM解决方案一般基于面向产品的数据库。PDM解决方案允许参与者共享关于其产品的一致性数据,并且因此防止参与者使用分歧性数据。这样的PDM解决方案由Dassault Systèmes以商标提供。
图9示出了系统的示例,其中系统是客户端计算机系统,例如,用户的工作站。该系统可以是服务器,例如,包括数据库的服务器。
示例的客户端计算机包括连接到内部通信总线(BUS)1000的中央处理单元(CPU)1010,和同样连接到总线的随机存取存储器(RAM)1070。客户端计算机可以进一步包括有图形处理单元(GPU)1110,图形处理单元(GPU)1110与连接到总线的视频随机存取存储器1100相关联。在本领域中,视频RAM 1100也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030的大容量存储设备的访问。适于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,举例来说,包括诸如EPROM、EEPROM、以及闪速存储器设备的半导体存储器设备;诸如内部硬盘和可移除盘的磁盘;磁光盘;以及CD-ROM盘1040。前述任一项可以由特别设计的ASIC(专用集成电路)进行补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如,光标控制设备、键盘等。在客户端计算机中光标控制设备用于允许用户选择性地将光标定位在显示器1080上的任何期望的位置处。另外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括用于向系统输入控制信号的若干信号生成设备。典型地,光标控制设备可以是鼠标,鼠标的按键用于生成信号。可替代地或另外,客户端计算机系统可以包括触敏板和/或触敏屏。
计算机程序可以包括能够由计算机执行的指令,该指令包括用于使得上述系统执行该方法的模块。程序可以记录在包括系统的存储器的任何数据存储介质上。例如,可以以数字电子电路,或者以计算机硬件、固件、软件、或以其组合来实现程序。程序可以被实现为装置(例如,有形地体现在机器可读存储设备中的产品),以用于由可编程处理器执行。方法步骤可以由执行指令的程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行该方法的功能。因此,处理器可以是可编程且耦合的,以接收来自数据存储系统的至少一个输入设备的数据和指令,并且向数据存储系统的至少一个输出设备发送数据和指令。应用程序可以以高级过程语言或面向对象的编程语言来实现,或者如果需要则以汇编语言或机器语言来实现。在任何情况下,语言都可以是编译语言或解释语言。程序可以是完全安装程序或更新程序。在任何情况下将程序应用于系统都会产生用于执行该方法的指令。
“划分3D场景”指定准备运行模型的过程,例如,3D场景被模拟或播放。该模型(例如,3D场景)模仿真实世界系统随着时间进行的操作。例如,3D场景包括3D建模对象,并且每个3D建模对象再现(或建模)通过3D场景建模的系统的一部分。3D建模对象可以表示产品的几何结构,在利用例如CAD软件解决方案或CAD系统完成其虚拟设计之后,并且在利用例如MMO应用完成其模拟之后,该产品要在真实世界中进行制造。
该方法可以包括在制造过程中,其可以包括在创建3D场景之后划分3D场景以及对经划分的3D场景进行模拟。然后,可以产生所模拟的3D场景,即,产生对应于建模系统的物理产品。在任何情况下,通过该方法模拟的3D场景可以表示制造对象。因为该方法改进了3D场景的模拟,所以该方法还改进了产品的制造,并且因此提高了制造过程的生产率。
现在参照图1,在步骤S10处提供3D场景,即计算机化的系统(例如图9的系统)可以访问3D场景的数据;例如,3D场景被加载到系统的存储器上。
3D场景是其中描述对象之间的空间关系的空间。场景由至少两个对象组成,并且对象可以是但不限于建模对象或3D建模对象。3D建模对象是3D空间中的对象的描述。3D场景是物理世界的模型,其可以通过借助于坐标描述3D空间中的每个点的几何结构来从数学上进行表示。3D场景典型地是被模拟的真实世界,其中对象之间的真实交互被模拟。表达方式真实交互表示所模拟的交互反映了真实世界的交互,例如,物理定律反映力/作用力(重力、磁力、接触力),控制定律反映信息流、控制事件...一个或多个对象在3D场景中演变并服从所模拟的真实世界的定律,例如,两个对象不能彼此相交。3D场景包括能够被修改以用于特定情境的目的的布局。情境描述3D场景中的一个或多个对象的至少可预见的交互。因此,情境描述3D场景用于或被设想用于活动的上下文的一种方式。每个特定情境在布局上进行模拟。应当理解,该情境可以由用户定义。
3D场景的每个对象都会产生计算资源成本。如本领域已知的,3D场景上的对象是实例化的对象。对象在其在3D场景中实例化时会产生计算成本。实例化对象的计算成本是实例化的参数的函数。实例化的这些参数可以是但不限于对象的3D网格的选定的复杂度、纹理的精度、3D场景中的对象的反射和阴影、与动态行为相关联使得接触/碰撞、有弹性、传热等的属性。应当理解,当对于某一位置上的最大数量的对象而言实例化参数是最大的(例如,具有最大真实性的实例化)时,所产生的计算成本是最大的。
通常,表达方式“计算资源的成本”是指对对象进行计算所要求的计算资源的百分比,例如,在3D场景的模拟的时间步骤期间。
对象的计算典型地由解算器执行。解算器是可以由模拟3D场景的计算机程序执行的一段代码。因此,一组解算器模拟完整的3D场景。假定每个解算器在其自己的专用计算资源上运行,该计算资源可以范围从多核CPU上的求解线程、多CPU计算机上的进程到服务器CPU上的服务器进程,而不限于此。并且因此,“解算器”和“计算资源”的观点在负载和性能方面是严格等价的。因此,表达方式“计算资源”是术语“解算器”的同义词。
图2示出了对房屋进行建模和模拟的3D场景的示例的顶视图,其中可以对多件家具进行填充和移位,可以对墙纸进行改变,并且人类可以在其中演进。3D场景包括两种对象。第一种被称为动态对象。动态对象是可以在3D场景中潜在地移动的对象。例如,对在3D场景中演进的人类建模的对象是动态对象。类似地,对多件家具建模的对象可以被移动并且是动态对象。动态对象在3D场景中自动地或者根据用户的动作移动或移位。第二种类型称为静态对象。静态对象不能在3D场景中移动,并且不能被另一对象穿越。动态对象因此与静态对象相反。
3D场景的静态对象的集合形成3D场景的布局。例如,图2的房屋的墙壁是静态对象,并且它们是3D场景的布局的一部分。3D场景中的诸如汽车的其他对象不属于布局,因为这些对象不是静态对象:事实上,汽车是可以移动的对象,除非汽车被设计为布局的一部分,并且在该情况下是静态对象。
在3D场景中,动态对象和可能动作的列表并不广泛,并且取决于应用的目的以及3D场景支持的情境的性质。在图2中表示的3D场景永久地运行或由计算资源进行处理。这同时涉及到,用户随时登录/注销,可以将新的家具添加到商场并开始营业,可以添加或移除新的墙壁...。换言之,可以修改布局,并且动态对象也可以被修改;例如,客户可以被压制、添加、或者甚至修改。因此可以将3D场景设想为包括静态对象的布局和在所述布局中移动/演进的一组动态对象。
仍然参照图2,已经将3D场景投影到平面上,大多数3D场景(例如,建筑物工厂的数字模型)是这样的情况。在这个示例中,平面表示被模拟的房屋的地面。根据定义,3D场景是体。投影包括3D场景的打印的提取:这意味着3D场景的体的投影在投影平面(例如,房屋的地面)上沿着某一方向执行,也就是通过将3D空间中的点线性地映射到二维投影平面上的点来构建投影。在图2的示例中,投影的方向垂直于房屋的地面。这允许获得在地面上移动的动态对象无法穿越的静态对象的完整表示。
回到图1,在步骤S20处,计算表示所提供的3D场景的计算成本的密度的第一图。第一图描绘了例如在3D场景的模拟的时间步骤期间用于模拟3D场景的每单位表面积所花费的计算资源的百分比。
可以如在2014年6月25日公开的文献EP2745892(A1)中所公开地来建立第一图。为了解释的目的,现在讨论第一图的计算的示例。在第一步骤中,确定3D场景中的一组位置。位置是3D场景中的可由3D场景的对象达到的部分。典型地,3D场景的位置可由动态对象达到。位置可以是3D场景中的可由3D场景的对象进行访问的被界定的区域,或者其可以是其中包含3D场景的对象的3D场景的体。换言之,位置可以是3D场景中的被一个或多个对象占用或可供一个或多个对象占用的地点。位置和静态对象密切相关。事实上,动态对象在布局中的移动受到静态对象的限制,静态对象定义了3D空间中的动态对象无法穿越的表面或体。例如,在图2中,表示汽车的对象210是能够进入或离开车库200的动态对象。车库200的墙壁是静态对象。车库的地面(由墙壁界定)可由动态对象到达,并且因此可以被识别为位置。在第二步骤中,每个位置都被达到最昂贵的计算成本的其对象最大占用率填充。用其对象最大占用率来填充位置意味着对象被放置在该位置上,并且放置在该位置上的对象的数量是该位置上允许的对象的最大数量。该最大数量的对象是可以由被3D场景播放或应用于3D场景的情境定义的位置的特性。该情境关于所模拟的真实世界是现实的,并且限制了对象在3D场景中的可能动作。例如,在图2中,位置“车库”(即,车库的地面)可以包括一辆汽车和许多用户。在实践中,只利用动态对象来执行用其对象最大占用率对位置进行填充。在下一步骤中,针对3D场景的每个位置计算最大计算成本。在达到给定位置上可接受的对象的最大数目时,以及当对象至少以最大真实性被实例化时,达到该位置的最昂贵的计算成本。因此,执行最大成本情况分析:虚拟世界的每个位置在其最大CPU成本情况下进行分析。在下面的步骤中,计算3D场景的每个位置的计算成本密度。这有利地允许针对所有位置量化和表征最差成本情况。在实践中,计算最大计算成本密度,并且其是指每单位表面积或每单位体积的计算成本,取决于位置的类型(区域、体)。例如,如果位置是区域,如在图2的示例中,则最大计算成本密度将是每单位表面积的计算成本。在实践中,针对每个位置计算比率P/A。P量化了处理该位置所需的计算资源的百分比,而A是3D场景中的位置的面积(或表面积)。然后,根据经聚合的最大计算成本密度来建立3D场景的成本密度的图(也称为第一图)。
图3示出了针对图2的3D场景的第一图的表示的示例。在图2中已经识别出五个位置200、220、230、240,并且图3表示它们的最大计算成本密度。如果位置在区域中具有很多对象的可能性较高,具有许多交互,则密度较高。在起居室230中,成本密度330为20%/m2(每平方米的计算机资源百分比),而小庭院200具有等于0%/m2的成本密度320,因为其是在3D场景的情境中没有演进的静态区域。在这个示例中,已经在与3D场景的投影平面相同的平面上建立了成本密度的图。3D场景与第一图之间的对应关系更容易表示和维护。一旦建立了成本密度的图,就可以将其显示给用户。为此目的,图可以提供图形信息350,其显示计算出的3D场景中的位置的最大计算成本密度。例如,如图2所示,色标350可以用于表示最大成本密度。
在步骤S30处,定义了第二图,其表示作为3D场景的划分的结果而获得的分区的形状上的约束。表达方式“分区的形状”表示允许用于作为3D场景的划分的结果而获得的一个或多个分区的几何形式。因此,第二图限制了允许用于一个或多个分区的(多个)几何形式。例如,分区可以是定义表面的2D形状,例如但不限于具有3个或更多个边的多边形。分区可以是定义了体的3D形状,例如但不限于平行六面体、球体。第二图旨在确保从计算资源的视角3D场景的划分不会引起问题。第二图的约束避免解算器的故障以及解算器之间的冲突,显著地在动态对象方面。
被识别以用于计算第一图的位置可以用于定义约束。特别地,可以根据3D场景中的静态对象来确定位置,例如,3D场景中的墙壁不能被动态对象穿过,使得房间可以定义位置。
这些位置的识别可以概括如下。首先,在3D场景中识别3D场景中的一个或多个静态对象。例如,并且参照图2,墙壁和楼梯是3D场景中的静态对象。然后,针对识别出的每个静态对象,计算几何形状。该计算的几何形状表示静态对象的轮廓;所计算的几何形状可以被设想为是对动态对象的约束,例如,动态对象不能越过所计算的几何形状。几何形状与用于在3D场景上创建将定义位置的区域的规则相关联。在场景已经被离散化成单元的情况下,如下面将变得明显的,规则创建一个或多个单元的一个或多个聚类。
不是仅依赖于用于计算第一图的位置,可以使用在3D场景中识别的以下三种约束来建立第二图。可以应用对上面讨论的位置概念的概括,即,通过识别静态对象来获得约束,根据静态对象来计算几何形状,并且将规则与计算出的几何形状相关联。
第一约束被称为“不穿过”约束,并且记为“C”约束。计算出的几何形状是线或多段线。线或多段线的线不应与动态对象相交。优选地,与该计算出的几何形状接触的3D场景中的其他分区(或部分)应该与(多条)线重合。该约束“C”旨在将分区分割到其中对象永远不会彼此交互的区域中。在图4的示例中,除了在门位置404处,“C”约束400与墙壁402重合,因为没有一件家具或一个人可以穿过该门。与多段线相关联的规则定义与多段线接触并几乎包括在多段线内的3D场景的表面形成分区。
第二约束被称为“取完整性”,并且记为“I”约束。计算出的几何形状是多边形,并且与该几何形状相关联的规则定义了包围在该多边形内(即完全包括在该多边形中)的表面形成分区。“I”约束防止由于破坏将该区域分割成两个或更多个分区而导致的附加的、复杂的、昂贵的、有时不可能的计算。在图4中,“I”约束410包括如防止将汽车210“切割”成两个部分(这在进行模拟时可能有问题)的矩形的几何形状402。有趣的是,几何形状402不包含区域404:事实上,该区域对于接收汽车210而言太小,因此如果区域404附接到另一区域,则不存在将汽车切割成两部分的风险。
第三约束被称为“跟随方向”,并且记为“D”。计算出的几何形状是多边形,并且与该几何形状相关联的规则是方向和大小。方向和大小由向量表示。与几何形状关联的规则定义了包围在多边形内(即完全包括在多边形中)的表面形成分区,并且根据向量从多边形的边延伸到多边形之外的另一表面被添加到该分区。例如,在图4中,“D”约束420包括多边形426包围台阶422,并且向量从多边形的顶部边延伸多边形426,以用于创建属于该分区的附加表面424(例如,服务于楼梯的平台);通过这种方式,假设由动态对象下楼梯或爬上楼梯需要穿过两个连续的分区,这总是立即执行,其中对象从一个分区一次转移到另一分区而没有任何振荡。
对3D场景中的约束的识别可以自动执行。这种自动识别可以基于对3D场景中的静态对象的分析。然后,所识别的静态对象可以与根据对可能存在于静态对象附近的动态对象的分析的规则相关联,该分析可以根据以下来执行:(i)曾经和/或目前位于所识别的静态对象附近的对象的历史,和/或(ii)指示静态对象的类别的、与静态对象相关联的一个或多个参数,例如,参数可以指示静态对象是墙壁、或者楼梯...。例如,执行该方法的系统可以发现车库的静态对象是“墙壁”,并且动态对象“汽车”位于或者已经位于这些静态对象的附近。作为另一示例,楼梯422可以与指示该静态对象422的类型是楼梯的参数相关联,并且作为结果,与计算出的几何形状426相关联的规则是用于创建服务于楼梯的平台424的方向和大小。
在3D场景中识别3D场景中的一个或多个静态对象可以根据用户动作执行。设计3D场景的设计者或者需要模拟3D场景的用户指定应该约束要创建的分区的形状的静态对象。作为用户动作的结果,自动地计算几何形状。几何形状可以由设计者/用户进行修改。可替代地,设计者/用户可以直接绘制几何形状。
规则与计算出的几何形状的关联可以根据用户动作执行,也就是说,用户选择要应用于自动计算出的几何形状或者他所修改或绘制的几何形状的规则的类型。例如,在创建几何形状之后,自动地向设计者/用户提出可供选择的规则的菜单,这被理解为一个规则可以与一个计算出的几何形状相关联。
在本发明的方法的这个阶段,已经从3D场景获得了两个图:表示3D场景的成本密度的第一图和表示对于将作为该方法的结果而获得的分区的约束的第二图。
然后,在图1的步骤S40至S42处,在步骤S10处提供的3D场景在计算离散化的量子之后被离散化成单元。将3D场景离散化意味着将3D场景(例如,投影在如图2所示的平面上的3D场景)划分成一组单元,其中每个单元具有相同的大小(即,相同的表面)。因此,单元是表面量子,并且随着整个3D场景被离散化,单元的数量将取决于所计算的量子。单元可以是2D单元:3D场景表示为如图2所示的2D平面,并且单元是2D表面。单元可以是3D单元:由3D场景在3D空间中创建的体被划分为作为3D体的单元。总而言之,单元覆盖整个3D场景。针对没有动态对象的3D场景计算3D场景的空间量子化。这意味着3D场景的离散化不考虑3D场景上的动态对象。3D场景的空间量子化可以如下计算。
在步骤S40中,使用关系式(1)来计算表面量子,记为Sq,
Sq=(CPUCA)/(计算成本的密度)Max (1)
其中,CPUCA表示用于处理分区的计算机资源成本的精度,并且(计算成本的密度)Max表示第一图上表示的最高密度。
计算资源的精度CPUCA表示这样的精度:设计者/用户希望以该精度按照CPU成本对3D场景进行划分。因此,对于具有较低成本密度的区域,表面量子Sq(利用其来调整几何形状的分区)必然表示小于成本精度。计算资源的精度CPUCA因此表示场景将被离散化的敏感度;可以使用表达方式“调整灵敏度”来指定精度CPUCA。事实上,表面量子(Sq)的值是由表示3D场景的成本密度的第一图决定的:实际上,需要确定在添加或取走这样的量子后解算器负载的变化的百分比的最大值。在步骤S42处,将3D场景离散化成全部具有与表面量子Sq相等的大小的单元。
图5示出了图3中表示的3D场景的第一图的示例,该3D场景被离散化成表面量子Sq的单元。这个示例示出了离散化3D场景的单元与3D场景的成本密度的图之间的关系。应理解,3D场景和第一图叠加:它们具有相同的大小。可替代地,这二者中的一个在给定的尺寸因子的情况下较小。单元的图案对于所有单元都是相同的:这里,3D场景被划分为N个单元,这N个单元是相同大小的正方形。3D场景因此根据格栅网格被离散化,该步骤是表面量子的平方根。使用格栅网格使得分区的创建更容易,显著地当3D场景对诸如建筑物(例如,工厂)的数字模型的基础设施进行建模时。应该理解,离散化也可以应用于其他规则网格或可变网格。
仍然参照图5,已经以设置为5%的CPU成本精度并且以每平方米20%的最高密度获得网格。这导致创建具有四分之一(1/4)平方米的表面量子的正方形单元的规则网格(502),并且当选择正方形网格时,场景根据半(1/2)米步长的正方形栅格离散化(500)。在这个示例中,精度设置为5%,这意味着单元的CPU成本可以随着最大精度(记为Δ=±ε)而变化,其中ε≤±5%。因此,对于20%的密度(图5中的黑色正方形)ε的值为5%,对于10%的密度ε的值为2.5%,并且对于5%的密度ε的值为1.25%。
接下来,在步骤S50处,针对经离散化的3D场景的每个单元对计算成本进行计算。该计算是根据在步骤S20处获得的3D场景的第一图来执行的。给定单元的计算成本由给定单元的表面量子Sq与该单元的计算成本的密度之间的数学乘积给出。已经在步骤S40处计算了给定单元的表面量子Sq。给定单元的计算成本的密度是从在步骤S20处计算的第一图获得的。步骤S50的输出是包括与先前针对3D场景所获得的相同的一组单元的新图,其中每个单元与该单元的计算成本相关联。
图6示出了利用步骤S50获得的该新图的示例。新图被称为离散化的成本图600,并且包括将3D场景离散化的每个单元的CPU成本的百分比。例如,单元620具有等于零的计算成本。作为另一示例,单元630具有等于5%的计算成本。这意味着负责单元630的计算资源需要其计算资源的5%用于对单元630进行处理。可以理解,对格栅网格的所有单元成本求和指示运行3D场景所需的计算资源的量。此外,离散化的成本图提供了关于多少分区能够实时模拟3D体验的信息。在图6的示例中,格栅的所有单元的成本之和约为296%。可以定义三个分区,每个分区的总体成本低于100%。每个分区与计算资源相关联,并且应该实时地对场景进行安全地处理。
然后,在步骤S60处,根据第二图来计算一个或多个单元的一个或多个聚类。一个或多个聚类旨在减少在定义分区时单元的组合的数量。事实上,假设场景离散化具有N个单元,则存在N!种方式来将这些单元聚集到具有接近(但始终低于)解算器可用的计算资源的100%的成本的部分中。这个步骤的目的是构成单元的聚类,使得在第二图上表示的(C)、(I)以及(D)约束由这些聚类隐式地验证,简化了接下来的阶段。作为明显的后果,这显著减小了要探索的组合。
图7示出了图4的离散化的第二图上的约束的示例。图4的“C”约束400具有作为多段线的计算出的几何形状,并且多段线700的线中的一条线在图7中表示。图4中的“I”约束410具有如围绕图7中的若干聚类710的计算出的几何形状的多边形。并且图4的“D”约束420还具有多边形,如图7中的720表示的计算出的几何形状。
“C”约束700与触发针对与多段线接界的每个单元的聚类的创建的规则相关联。换言之,位于“C”约束的几何形状(这里是多段线的线)周围的所有单元不会聚合在一起。与线700接界的每个单元与特定的值标签相关联;更具体地,并且如图8所示,在该约束的一侧上的单元标记有这个值800,而在相反侧上的单元标记有相反的值802。因此,当具有标签相反的单元时,任何进一步的聚类聚合应当被惩罚,而当具有标签相同的单元时,任何进一步的聚类聚合应当被奖励。
图7的“I”约束710与创建具有包括在多边形中的单元的单元聚类的规则相关联。因此,位于相同的(I)约束710内的所有单元形成如图8所示的单个聚类810,其在该方法的进一步的步骤中作为整体来进行处理。应该注意,(I)聚类的结果成本不应该超过计算资源可用的计算资源的100%。换言之,这意味着场景包含区域,其对于选择用于模拟的计算资源永远不会是实时的,并且已经利用该区域建立了成本密度的图。在从约束“I”、“D”或“C”获得的聚类需要100%或更多的可用计算资源的情况下,可以触发表面量子的减少并且执行3D场景的离散化的重做。
图7的“D”约束720与创建具有包围在几何形状内的单元的一个或多个聚类的规则相关联。根据“D”约束创建的每个聚类包括包围在几何形状中的至少一个单元,以及根据由向量722表示的方向和大小从几何形状(多边形)中的该至少一个单元延伸的一个或多个单元。在这个示例中,位于相同的(D)约束720内的所有单元排列成与约束722的方向平行的片式聚类822。换言之,在其外围具有这样的(D)聚类的任何聚类聚合将继承具有适当形状的边界。这种片式聚类的成本应该保持远低于100%。
不属于根据约束“I”、“D”或“C”创建的聚类的单元830被视为一个单元聚类,例如,图8中的单元830。
接下来,在步骤S70中,将聚类聚合为一个或多个分区。作为聚合的结果而获得的每个分区具有计算成本,该计算成本是属于该分区的单元的计算成本的总和。该分区的计算成本允许在计算资源上对该分区进行实时模拟。换言之,每个分区的计算成本应该保持低于解算器可用的计算资源的100%。
分区整形是所谓的装箱问题:其包括聚合聚类以形成CPU成本接近(但小于)100%的部分,并最小化稍后解释的成本函数。聚类的聚合优选地利用组合优化算法来执行。该算法执行的组合优化目的在于在考虑到CPU成本必须接近100%但不超过该阈值时可以获得的聚类的所有组合中找到最优的聚类聚合。也就是说,算法根据聚类的计算成本来计算所有可能的聚合的组合。存在N!种聚合N个聚类的方法。为了确定组合中的最佳解并且为了限制要计算的组合的数量,算法可以取表示要达到的目标的一个或多个标准作为输入。目标函数可以用于根据一个或多个标准来确定最佳解。组合优化算法的目标函数被公式化用于至少在以下情况时增加:
(i)分区的数量Z作为将单元新聚合成一个或多个分区的结果而增加。例如,目标函数的增加可以与Z变量的平方成正比;
(ii)分区的形状是锯齿状的边界。在这种情况下,目标函数的增加与凹陷的数量和/或凸起的数量成正比,和/或与分区的周长与其表面积之间的比率成正比;
(iii)断开连接的分区的数量大于0。当拓扑上不可能从任何位置到达分区的任何其他位置而不离开其边界中的一个并且重新进入其边界中的一个时,该分区断开连接。在这种情形下,目标函数的增加可以与Z变量的三次方(Z3)成正比;
(iv)Z分区包括从“I”约束获得的具有相反标签值的数量为K的聚类。在成本函数中使用的增益K可以初始设置为随机选择的值,并且然后按经验进行校准,或者通过诸如控制理论或机器学习中的算法进行调整。该校准可以在模拟正在运行时执行。目标函数的增加可以与Z变量的平方(Z2)成正比。
诸如蚁群算法的组合优化算法可以用于在合理的时间范围内找到最优解。应该理解,可以使用任何其他合适的组合优化算法。
Claims (15)
1.一种用于将3D场景划分成多个分区的计算机实现的方法,每个分区表示所述3D场景中的区域或体并且由计算资源进行处理,所述方法包括:
-提供(S10)包括一个或多个对象的3D场景,每个对象产生计算资源成本;
-计算(S20)第一图,所述第一图表示所提供的3D场景的计算成本的密度;
-定义(S30)第二图,所述第二图表示将作为对所述3D场景的划分的结果而获得的分区的形状上的约束;
-通过计算没有动态对象的所述3D场景的空间量子化,将所提供的3D场景离散化(S40,S42)成单元,动态对象是能够在所述3D场景中潜在地移动的对象;
-针对每个单元,根据所述3D场景的所述第一图对计算成本进行计算(S50);
-根据所述第二图将所述单元聚合(S70)成一个或多个分区,每个分区具有作为属于该分区的单元的计算成本的总和的计算成本,该分区的计算成本允许在计算资源上进行对该分区的实时模拟。
2.根据权利要求1所述的计算机实现的方法,其中,将所述单元聚合成一个或多个分区是进一步利用组合优化算法来执行的。
3.根据权利要求2所述的计算机实现的方法,其中,所述组合优化算法是蚁群算法。
4.根据权利要求1至3中的一项所述的计算机实现的方法,还包括在所述单元的聚合之前:
-根据所述第二图计算(S60)一个或多个单元的一个或多个聚类;
并且其中,聚合步骤(S70)包括将所述聚类聚合成一个或多个分区,每个分区具有作为属于该分区的单元的计算成本的总和的计算成本,该分区的计算成本允许在计算资源上进行对该分区的实时模拟。
5.根据权利要求1至4中的一项所述的计算机实现的方法,其中,在所述第二图上表示的所述分区的形状上的约束是通过以下操作获得的:
-在所述3D场景中识别所述3D场景中的一个或多个静态对象,静态对象是不能在所述3D场景中移动并且不能被另一对象穿越的对象;以及
-针对识别出的每个静态对象,计算与创建一个或多个单元的一个或多个聚类的规则相关联的几何形状。
6.根据权利要求5所述的计算机实现的方法,其中,几何形状与用于创建单元的聚类的规则的关联是以下中的一个:
-所述几何形状是多边形,并且所述规则创建被包括在所述多边形中的所述单元的聚类;
-所述几何形状是多边形,并且所述规则根据由向量表示的方向和大小来创建从所述多边形延伸的所述单元的聚类;
-所述几何形状是多段线,并且所述规则触发针对与所述多段线接界的每个单元的聚类的创建。
7.根据权利要求5至6中的一项所述的计算机实现的方法,其中,在所述3D场景中对所述3D场景中的一个或多个静态对象的所述识别是根据用户动作来执行的。
8.根据权利要求6至7中的一项所述的计算机实现的方法,其中,规则与计算出的几何形状的关联是根据用户动作执行的。
9.根据权利要求1至8中的一项所述的计算机实现的方法,其中,对表示所提供的3D场景的计算成本的密度的所述第一图的所述计算包括:
-确定所述3D场景中的一组位置;
-用每个位置的对象最大占用率填充该位置,所述对象最大占用率达到最昂贵的计算成本;
-针对所述3D场景中的每个位置,计算最大计算成本;
-针对每个位置,计算比率P/A,其中,P是处理该位置所要求的计算资源的测量的百分比,并且A是该位置在所述三维场景中的面积。
10.根据权利要求9所述的计算机实现的方法,用每个位置的对象最大占用率填充该位置的步骤是针对动态对象执行的。
11.根据权利要求1至10中的一项所述的计算机实现的方法,其中,对所述3D场景的空间量子化的计算包括:
-计算由以下关系式定义的表面量子Sq:
Sq=(CPUCA)/(计算成本的密度)Max
其中,(CPUCA)表示用于处理所述分区的计算机资源成本的精度,并且(计算成本的密度)Max是在所述第一图上表示的最高密度;
-将所提供的3D场景离散化成单元,每个单元具有等于所述表面量子Sq的尺寸。
12.根据权利要求10所述的计算机实现的方法,其中,针对每个单元根据所述3D场景的所述第一图对计算成本进行计算包括计算所述表面量子Sq与该单元的计算成本的密度之间的乘积。
13.根据权利要求2至11中的一项所述的计算机实现的方法,其中,所述组合优化算法的目标函数被公式化用于至少在以下情况时增加:
-分区的数量N作为将所述单元新聚合成一个或多个分区的结果而增加;
-分区的形状是锯齿状的边界;
-断开连接的分区的数量大于零。
14.一种计算机程序,包括用于执行根据权利要求1-13中的任一项所述的方法的指令。
15.一种系统,包括耦合到存储器和图形用户接口的处理器,所述存储器在其上记录有根据权利要求14所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16306766.3A EP3340181A1 (en) | 2016-12-21 | 2016-12-21 | Automatic partitioning of a 3d scene into a plurality of zones processed by a computing resource |
EP16306766.3 | 2016-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108230453A true CN108230453A (zh) | 2018-06-29 |
CN108230453B CN108230453B (zh) | 2023-07-28 |
Family
ID=57755133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711395421.9A Active CN108230453B (zh) | 2016-12-21 | 2017-12-21 | 将3d场景自动划分成由计算资源进行处理的多个分区 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10671773B2 (zh) |
EP (1) | EP3340181A1 (zh) |
JP (1) | JP7014589B2 (zh) |
CN (1) | CN108230453B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112494948A (zh) * | 2020-12-04 | 2021-03-16 | 韦林清 | 一种建筑模拟游戏系统 |
CN113198181A (zh) * | 2021-05-27 | 2021-08-03 | 星漫互动(苏州)网络科技有限公司 | 适用于大型游戏场景的编辑方法及系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733420B2 (en) * | 2017-11-21 | 2020-08-04 | GM Global Technology Operations LLC | Systems and methods for free space inference to break apart clustered objects in vehicle perception systems |
CN110433495B (zh) * | 2019-08-12 | 2023-05-16 | 网易(杭州)网络有限公司 | 游戏中虚拟场景的配置方法及装置、存储介质及电子设备 |
CN110753352B (zh) * | 2019-09-17 | 2022-04-08 | 中国联合网络通信集团有限公司 | 一种设备选型方法和装置 |
CN110636512B (zh) * | 2019-09-17 | 2022-04-08 | 中国联合网络通信集团有限公司 | 一种设备选型方法和装置 |
CN110662225B (zh) * | 2019-09-17 | 2022-04-08 | 中国联合网络通信集团有限公司 | 一种设备选型方法和装置 |
CN110708703B (zh) * | 2019-09-17 | 2022-04-12 | 中国联合网络通信集团有限公司 | 一种设备选型方法和装置 |
US11893484B2 (en) | 2019-12-06 | 2024-02-06 | X Development Llc | System and method for efficient parallel execution of physical simulations |
CN113015153B (zh) * | 2019-12-20 | 2022-10-18 | 中国移动通信集团湖北有限公司 | 服务小区的归属识别方法及装置 |
CN114153307A (zh) * | 2020-09-04 | 2022-03-08 | 中移(成都)信息通信科技有限公司 | 场景区块化处理方法、装置、电子设备及计算机存储介质 |
US11876685B1 (en) | 2021-05-19 | 2024-01-16 | Amazon Technologies, Inc. | Locally predicting state using a componentized entity simulation |
US11909601B1 (en) * | 2021-06-17 | 2024-02-20 | Amazon Technologies, Inc. | Implementing a scalable 3D simulation using a distributed 3D keyspace |
CN113827957A (zh) * | 2021-08-18 | 2021-12-24 | 网易(杭州)网络有限公司 | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 |
CN114972627A (zh) * | 2022-04-11 | 2022-08-30 | 深圳元象信息科技有限公司 | 场景生成方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886638A (zh) * | 2012-12-21 | 2014-06-25 | 达索系统公司 | 在划分为多个区域的三维场景中对对象的物理行为仿真 |
US20140176552A1 (en) * | 2012-12-21 | 2014-06-26 | Dassault Systemes | Partition Of A 3D Scene Into A Plurality Of Zones Processed By A Computing Resource |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6055563A (en) * | 1997-02-03 | 2000-04-25 | Fujitsu Limited | Transfer and display of virtual-world data |
US20060168107A1 (en) * | 2004-03-16 | 2006-07-27 | Balan Rajesh K | Generalized on-demand service architecture for interactive applications |
US20090157853A1 (en) * | 2007-12-18 | 2009-06-18 | International Business Machines Corporation | Systems, methods and computer program products for capacity on-demand server mechanism for seamless 3d virtual worlds |
US20100113159A1 (en) * | 2008-11-06 | 2010-05-06 | International Business Machines Corporation | Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems |
US8532925B2 (en) * | 2009-05-08 | 2013-09-10 | Alpine Electronics, Inc. | Spatial indexing method and apparatus for navigation system for indexing and retrieval of XML map data |
US10303821B2 (en) * | 2016-08-24 | 2019-05-28 | Improbable Worlds Ltd. | Load balancing systems and methods for spatially-optimized simulations |
EP3301572B1 (en) * | 2016-09-30 | 2023-05-24 | Dassault Systèmes | Method, program and system for simulating a 3d scene with a set of computing resources running in parallel |
-
2016
- 2016-12-21 EP EP16306766.3A patent/EP3340181A1/en active Pending
-
2017
- 2017-12-18 US US15/845,620 patent/US10671773B2/en active Active
- 2017-12-19 JP JP2017242946A patent/JP7014589B2/ja active Active
- 2017-12-21 CN CN201711395421.9A patent/CN108230453B/zh active Active
-
2020
- 2020-03-19 US US16/824,372 patent/US11087052B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886638A (zh) * | 2012-12-21 | 2014-06-25 | 达索系统公司 | 在划分为多个区域的三维场景中对对象的物理行为仿真 |
US20140176552A1 (en) * | 2012-12-21 | 2014-06-26 | Dassault Systemes | Partition Of A 3D Scene Into A Plurality Of Zones Processed By A Computing Resource |
CN103971416A (zh) * | 2012-12-21 | 2014-08-06 | 达索系统公司 | 将3d场景分割为由计算资源处理的多个区域 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112494948A (zh) * | 2020-12-04 | 2021-03-16 | 韦林清 | 一种建筑模拟游戏系统 |
CN113198181A (zh) * | 2021-05-27 | 2021-08-03 | 星漫互动(苏州)网络科技有限公司 | 适用于大型游戏场景的编辑方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200218838A1 (en) | 2020-07-09 |
US20180173827A1 (en) | 2018-06-21 |
EP3340181A1 (en) | 2018-06-27 |
US10671773B2 (en) | 2020-06-02 |
US11087052B2 (en) | 2021-08-10 |
JP2018116695A (ja) | 2018-07-26 |
CN108230453B (zh) | 2023-07-28 |
JP7014589B2 (ja) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108230453A (zh) | 将3d场景自动划分成由计算资源进行处理的多个分区 | |
CN105761303B (zh) | 在3d建模组件上创建包围盒 | |
CN103971416B (zh) | 将3d场景分割为由计算资源处理的多个区域 | |
US10929433B2 (en) | Querying a database with morphology criterion | |
CN108228987A (zh) | 副本选择 | |
CN107885599A (zh) | 用一组并行运行的计算资源模拟3d场景的方法、程序和系统 | |
CN105760570B (zh) | 选择对象集的视点 | |
CN108073682A (zh) | 基于参数视图函数查询数据库 | |
CN113724401B (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
Fadel et al. | Packing optimization of free-form objects in engineering design | |
Hung et al. | Automatic clustering method for real-time construction simulation | |
US20220138379A1 (en) | Machine learning approach to piecewise linear interface construction | |
CA2924696C (en) | Interactive haptic system for virtual reality environment | |
Merrell et al. | Constraint-based model synthesis | |
EP3674931A1 (en) | Flexible modeling using a weak type definition | |
Zawadzki et al. | Hybrid of shape grammar and morphing for procedural modeling of 3D caves | |
Erdei et al. | Procedural City Generation | |
Bae et al. | User‐guided volumetric approximation using swept sphere volumes for physically based animation | |
CN109767495A (zh) | 3d部件的增材制造 | |
Van Gestel | Procedural destruction of objects for computer games |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |