《将3D场景分割为由计算资源处理的多个区域.pdf》由会员分享,可在线阅读,更多相关《将3D场景分割为由计算资源处理的多个区域.pdf(19页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103971416 A (43)申请公布日 2014.08.06 CN 103971416 A (21)申请号 201310757290.X (22)申请日 2013.12.20 12306654.0 2012.12.21 EP G06T 19/20(2011.01) (71)申请人 达索系统公司 地址 法国韦利济 - 维拉库布莱 (72)发明人 P贝尔曼斯 M布尔克纳福德 (74)专利代理机构 永新专利商标代理有限公司 72002 代理人 张晰 王英 (54) 发明名称 将 3D 场景分割为由计算资源处理的多个区 域 (57) 摘要 本发明指向一种用于将三维场景分割。
2、为多个 区域的计算机实现方法, 每个区域由一计算资源 处理。该方法包括 : - 提供包括一个或多个对象 的三维场景, 每个对象产生一计算资源成本 ; - 确 定三维场景中的一组位置 ; - 以达到最贵计算 成本的每个位置的最大对象占用来填充每个位 置 ; - 为三维场景的每个位置计算最高计算成本 密度 ; 和 - 将相邻位置分组到一个或多个区域, 每 个区域具有保证区域的实时性能的合成计算成本 密度。 (30)优先权数据 (51)Int.Cl. 权利要求书 2 页 说明书 12 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书12页 附图4页。
3、 (10)申请公布号 CN 103971416 A CN 103971416 A 1/2 页 2 1. 一种用于将三维场景分割为多个区域的计算机实现方法, 每个区域由计算资源处 理, 该方法包括 : - 提供 (100) 包括一个或多个对象的三维场景, 每个对象产生一计算资源成本 ; - 确定 (110) 所述三维场景中的一组位置 ; - 以达到最贵计算成本的每个位置的最大对象占用来填充 (120) 每个位置 ; - 为所述三维场景的每个位置计算 (130) 最高计算成本密度 ; 和 - 将相邻位置分组 (160) 到一个或多个区域, 每个区域具有保证所述区域的实时性能 的合成计算成本密度。 。
4、2. 如权利要求 1 所述的计算机实现方法, 进一步包括以下步骤 : - 聚集 (132) 为所述三维场景的位置计算的最高计算成本密度 ; 和 - 根据聚集的最高计算成本密度建立所述三维场景的成本密度地图 (134)。 3.如权利要求1到2中任一项所述的计算机实现方法, 其中, 为动态对象执行以每个位 置的最大对象占用来填充每个位置的步骤, 动态对象是能够在三维场景中潜在地移动的对 象。 4. 如权利要求 1 到 3 中任一项所述的计算机实现方法, 进一步包括以下步骤 : - 为所述三维场景的每个位置提取 (140) 位于所述每个位置上的静态对象, 静态对象 是不能够在三维场景中移动并且不能够。
5、被另外的对象穿过的对象 ; 和 - 根据提取出的静态对象建立所述三维场景的约束地图 (142)。 5. 如权利要求 4 所述的计算机实现方法, 其中, 提取静态对象的步骤进一步包括 : - 为所述三维场景的每个位置提取所述静态对象在所述三维场景的所述每个位置上的 印迹。 6. 如权利要求 4 到 5 中任一项所述的计算机实现方法, 进一步包括步骤 : - 聚集 (150) 所述三维场景的成本密度地图和所述三维场景的约束地图。 7.如权利要求1到6中任一项所述的计算机实现方法, 其中, 计算最高计算成本密度包 括计算比率 P/A, 其中, P 是用于处理位置所需的计算资源的测量百分比, A 是所。
6、述三维场景 中的位置的面积。 8. 如权利要求 1 到 7 中任一项所述的计算机实现方法, 其中, 在分组步骤, 每个区域的 所述合成计算成本密度是这样的 : 用于处理所述区域所需要的计算资源低于预先定义的阈 值。 9. 如权利要求 1 到 8 中任一项所述的计算机实现方法, 其中, 在分组步骤, 在两个或多 个区域之间的合成计算成本密度是明显一样的。 10. 如权利要求 1 到 9 中任一项所述的计算机实现方法, 其中, 考虑每个区域过去所制 造的计算资源的使用, 进一步执行分组步骤。 11. 一种包括用于被计算机执行的指令的计算机程序, 所述指令适用于执行权利要求 1-10 之一的方法的步。
7、骤。 12. 一种计算机可读存储介质, 其上记录有根据权利要求 11 所述的计算机程序。 13. 一种计算机化系统, 包括 : - 存储系统, 用于存储包括一个或多个对象的三维场景 ; - 处理单元, 用于处理分割三维场景的多个区域, 每个区域由所述处理单元的计算资源 权 利 要 求 书 CN 103971416 A 2 2/2 页 3 处理, 所述处理单元适用于根据权利要求1到10中任一项所述的方法将三维场景分割为多 个区域。 权 利 要 求 书 CN 103971416 A 3 1/12 页 4 将 3D 场景分割为由计算资源处理的多个区域 技术领域 0001 本发明涉及计算机程序和系统的。
8、领域, 尤其涉及用于将三维场景分割为多个区域 的方法、 系统和程序, 每个区域由计算资源处理。 背景技术 0002 大型多用户在线应用程序 (MMO) 允许大量用户同时使用例如真实世界现象模拟 器、 沉浸式应用程序等的应用程序。同样地, 大型多用户在线游戏 (MMOG) 允许大量玩家同 时进行视频游戏。 MMO和MMOG尤其依赖计算机网络, 比如因特网, 用于允许用户或玩家连接 到应用程序或视频游戏。贯穿该说明书, 词语 “应用程序” 和 “视频游戏” 将被理解为是同 义的, 并且术语 MMO 和 MMOG 也不做区别使用。 0003 MMO 涉及复杂和庞大的虚拟环境, 为了给用户或游戏玩家提。
9、供更加真实的体验, 希 望虚拟环境以尽可能多的细节、 尽可能接近实时地被呈现。MMO 被特别设计用于呈现和操 纵 3D 场景, 并典型地用在终端用户的计算机上用于要求交互式连续实时 3D 场景生成的应 用程序。当用户与 3D 场景交互时, 计算机足够快地重绘 3D 呈现以向用户传达用户正参与 的连续的、 不间断的现实感觉。该场景由多个独立的对象构成, 当用户与该 3D 场景交互时 可对所述对象进行操纵。这样, MMO 涉及很大的数据量, 通常要求高数据速率和高数据复杂 度以管理实时参与到空间复杂和高细致虚拟环境的大量用户。 0004 MMO 典型地用于在计算机模型内模拟现实世界现象, 如多体刚。
10、性动力学、 人类模 拟、 布料模拟、 粒子模拟。模拟需要描述真实世界现象的精确数据和算法, 例如用于制造过 程的材料的物理属性 ( 强度、 弹性等等 ), 以便建立对该过程的模拟和对使用中的产品的模 拟的产品。3D CAD/CAM( 计算机辅助设计 / 计算机辅助制造 ) 工具允许建立对产品或组成 部件的 3D 呈现。 0005 对 MMO 和 MMOG 主要和关键的要求是向所连接的玩家在任何时候都能提供实时响 应, 而不考虑他们的数量, 也不考虑用于解决和呈现应用程序所引起的计算成本。否则, 游 戏体验的质量将变得糟糕, 会降低玩家对应用程序的兴趣, 限制在执行协同和分布设计评 审时的交互。。
11、 0006 MMO, 和 MMOG 一样, 必须是可扩展的以动态适应永远变化的工作负荷, 从而保持实 时性能。可扩展性尤其包括能够同时使用应用程序的用户数量、 用于计算模拟的计算资源 数量、 被应用程序所允许的3D场景的对象之间的同时交互的数量, 诸如此类。 对于MMOG, 用 户数量、 以及所有包含的动态对象的位置和图形属性可以显著变化。然而, 游戏开始之前, 周围布景是一次全部设定的, 并且动态对象的类型和所支持的行为种类也是预先定义的。 换句话说, MMOG 中的 3D 场景包括许多预先确定的特征, 这些特征强有力地限制了对计算资 源的需求, 从而提高了可扩展性。 0007 相反, 对于。
12、高级 MMO, 3D 场景的布景和群体类型能够进化和充实, 特别是在应用程 序运行时。事实上, MMO 目的在于真实世界现象, 其中, 对象行为是动态的并排除预先定义 的行为种类。因此, MMO 中的 3D 布景不能使用像用于 MMOG 的预先定义的特征。 说 明 书 CN 103971416 A 4 2/12 页 5 0008 可扩展性的问题被 MMOG 所解决。此类方案和技术包括分片和分区。分片在于克 隆世界 ( 部分或全部 ) 并招待新登录的用户以便处理工作负荷上升, 但是不可能在分片之 间进行交互。因此, 本性而言, 分片不支持虚拟世界空间和群体的无限扩展 ; 分片确实具有 由他们被分。
13、配的处理资源的性能所指示的物理容量上限。 0009 分区依靠对所谓区域中虚拟世界空间的分割, 他们中的每个承担计算资源的责 任。对象 / 用户能够进行逐区域的导航。相关联的计算资源接着在网络上传输专用消息以 便将这些移动对象集成到他们的计算模型中。 0010 然而, 在 MMOG 中, 区域互相之间相当独立的发展 : 动态对象简单的从区域 “A” 的 若干预先定义通道位置中的一个 “远程传输” 到区域 “B” 的若干位置中的另一个。优化负 载平衡问题通过以下解决 : 通过使用障碍物或实体墙围住区域、 通过限制区域内部通道位 置的数量、 通过限制任何时候在每个区域内对象的群体、 以及通过使用调整。
14、过的静态布景 (dcor) 来填充区域。某种程度上, 虚拟环境的不同区域被定制以符合实时需求。 0011 对于高级MMO, 这种简化是不能接受的。 事实上, 虚拟环境, 尤其当真实世界现象被 模拟时, 不能支持布景的人工围栏, 这限制了对模拟的真实世界定制化的可能性。正相反, 在真实世界中, 区域是开放的, 与他们的相邻区域共享共同的连续边界, 任何对象都可能通 过这里。因此, 就其本质而言, 分区能够潜在地管理如高级 MMO 中所需要的虚拟世界的无限 增大。然而, 如 MMOG 中所执行的分区不适于 MMO 的上下文环境, 因为它需要特殊定制虚拟 环境、 所模拟的现实世界和对其特征的限制。 。
15、0012 在此背景下, 仍然需要改进的方法、 计算机程序和系统, 用于在真实世界模拟应用 程序中提供可扩展的、 无缝的和有效的对 3D 场景的实时模拟。 发明内容 0013 根据一个方面, 本发明因此提供一种用于将三维场景分割为多个区域的计算机实 现方法, 每个区域由一计算资源处理。该方法包括 : 0014 - 提供包括一个或多个对象的三维场景, 每个对象产生一计算资源成本 ; 0015 - 确定三维场景中的一组位置 ; 0016 - 以达到最贵计算成本的每个位置的最大对象占用来填充每个位置 ; 0017 - 为三维场景的每个位置计算最高计算成本密度 ; 和 0018 - 将相邻位置分组到一个。
16、或多个区域, 每个区域具有保证区域的实时性能的合成 计算成本密度。 0019 该方法可以包括下面的一个或多个 : 0020 - 聚集为三维场景的位置计算的最高计算成本密度, 和根据聚集的最高计算成本 密度建立三维场景的成本密度地图 ; 0021 - 为动态对象执行以每个位置的最大对象占用来填充每个位置的步骤, 动态对象 是能够在三维场景中潜在地移动的对象 ; 0022 - 为三维场景的每个位置提取位于所述每个位置上的静态对象, 静态对象是不能 够在三维场景中移动并不能够被另外的对象穿过的对象, 和根据提取出的静态对象建立三 维场景的约束地图 ; 0023 - 提取静态对象的步骤进一步包括为三维。
17、场景的每个位置提取静态对象在三维场 说 明 书 CN 103971416 A 5 3/12 页 6 景的所述每个位置上的印迹 ; 0024 - 聚集三维场景的成本密度地图和三维场景的约束地图的步骤 ; 0025 - 计算最高计算成本密度包括计算比率 P/A, 其中, P 是用于处理位置所需的计算 资源的测量百分比, A 是三维场景中位置的面积 ; 0026 - 在分组步骤, 每个区域的合成计算成本密度是这样的 : 用于处理该区域所需要 的计算资源低于预先定义的阈值 ; 0027 - 在分组步骤, 在两个或多个区域之间的合成计算成本密度是明显一样的 ; 0028 - 考虑每个区域过去所制造的计算。
18、资源的使用, 进一步执行分组步骤。 0029 本发明进一步提出一种包括用于被计算机执行的指令的计算机程序, 所述指令适 用于执行本发明的方法的步骤。 0030 本发明进一步提出一种计算机可读存储介质, 在其上记录有以上所述的计算机程 序。 0031 本发明进一步提出一种计算机化系统, 包括 : 0032 - 存储系统, 用于存储包括一个或多个对象的三维场景 ; 0033 - 处理单元, 用于处理分割三维场景的多个区域, 每个区域由该处理单元的一计算 资源处理, 该处理单元适用于根据本发明的方法将三维场景分割为多个区域。 附图说明 0034 现在将以非限制性例子的形式和根据附图描述本发明的实施例。
19、, 其中 : 0035 - 图 1 显示了方法的例子的流程图 ; 0036 - 图 2 显示了大商场的虚拟世界的例子的俯视图 ; 0037 - 图 3 显示了对位置的最高成本密度的分析的例子 ; 0038 - 图 4 显示了对位置的最高成本密度的量化的例子 ; 0039 - 图 5 显示了成本密度地图的例子 ; 0040 - 图 6 显示了约束地图的例子 ; 0041 - 图 7 显示了对图 5 和图 6 的成本密度地图和约束地图的聚集的例子 ; 0042 - 图 8 显示了计算机化系统的例子。 具体实施方式 0043 根据图 1 的流程图, 提出了一种计算机实现方法, 其用于将三维场景分割为。
20、多个 区域, 每个区域由计算资源处理。处理包括提供三维 (3D) 场景。3D 场景可以模拟真实世界 环境。3D 场景包括一个或多个对象, 例如 3D 建模对象。每个对象产生计算资源成本, 也就 是说, 为了在 3D 场景中被执行, 每个对象需要计算资源的时间。该方法进一步包括确定 3D 场景中的一组位置。3D 场景中的位置可以是 3D 场景的对象可进入的面积。3D 场景中的位 置可以是其中可包含 3D 场景的对象的体积。该方法进一步包括以达到最贵计算成本的每 个位置的最大对象占用来填充每个位置。该方法进一步包括为 3D 场景的每个位置计算最 高计算成本密度。最高计算成本密度可以指每个面积单位或。
21、每个体积单位的计算成本。该 方法还包括将相邻位置分组到一个或多个区域。 每个区域具有保证区域的实时性能的合成 计算成本密度。 区域的合成计算成本密度是每个位置的最高成本密度乘以它的面积或体积 说 明 书 CN 103971416 A 6 4/12 页 7 的总和。 0044 这个方法改进了对 3D 场景的分区, 其中提供了保证实时性能, 不需要对其特征施 加 3D 场景的特殊定制或约束。另外, 本方法进一步支持 3D 场景的扩展、 对象类型和其行为 种类的扩展。事实上, 分组取决于 3D 场景的每上个位置的饱和度的结果, 饱和度通过以达 到最贵计算成本的每个位置的最大对象占用来填充每个位置来执。
22、行。有趣的是, 最大对象 占用反映了 3D 场景的真实状况。换句话说, 分组是情节 (scenario) 的结果, 其中每个位置 上对象的群体是最多的, 情节关于模拟的真实世界是现实的。 0045 该方法是计算机实现的。这意味着该方法的步骤 ( 或基本上所有步骤 ) 由至少一 台计算机或一计算机化的系统执行。在例子中, 该方法的至少一些步骤的触发可以通过用 户 - 计算机交互来执行。所需要的用户 - 计算机交互的级别取决于自动化预测的级别并平 衡实现用户愿望的需要。在例子中, 这个级别可以是用户定义的和 / 或预先定义的。 0046 例如, 提供包括一个或多个对象的 3D 场景的步骤可以根据用。
23、户的选择来执行, 例 如场景的。用户可以通过触觉设备执行选择, 比如键盘、 鼠标、 定位笔, 诸如此类。例如, 在 两键鼠标中, 左键可以用于选择场景列表中的场景。 该系统还可以默认识别场景, 即不需要 用户选择。 0047 计算机实现该方法的一个典型例子是使用包含存储器和处理器的系统执行该方 法。存储器存储数据库, 其仅仅是适合此类存储的任何硬件。处理器还可以是指计算单元。 这个系统在真实世界模拟应用程序中的上下文中提供可扩展的、 无缝的和有效的 3D 场景 的实时模拟。该系统可以进一步包括适用于显示 3D 场景和 3D 场景内的对象的图形用户界 面 (GUI)。GUI 与存储器和处理器耦合。
24、。 0048 通过 “数据库” , 意味着对被组织用于搜索和取回的数据 ( 即信息 ) 的任何采集。 当存储在存储器上时, 数据库允许通过计算机快速搜索和取回。数据库事实上被结构化以 便于结合各种数据处理操作来存储、 取回、 修改和删除数据。 数据库可以由能够被分解成记 录的一个文件或一组文件组成, 每个记录由一个或多个字段组成。字段是数据存储的基本 单位。用户可以主要通过查询取回数据。使用关键字和排序命令, 用户能够快速搜索、 重新 排列、 分组和选择许多记录中的字段, 以根据正在使用的数据库管理系统的规则来取回或 建立关于特别的数据聚集的报告。 0049 在该方法的情况下, 数据库包含三维。
25、场景, 该三维场景包括一个或多个对象。 一个 或多个对象存储在数据库上, 并可以独立于场景存储。 数据库可以进一步包含计算机程序, 该计算机程序包括用于被该系统执行的指令。指令适用于执行本方法的步骤。 0050 该方法一般操纵对象。对象是被存储在数据库中的数据定义的任何对象。引申开 来,“对象” 这个表达指定了数据本身。根据系统的类型, 对象可以由不同种类的数据定义。 系统可以是 CAD 系统、 CAE 系统、 CAM 系统、 和 / 或 PLM 系统的任何组合。在那些不同的系统 中, 建模对象由相应的数据定义。人们可以相应地谈到 CAD 对象、 PLM 对象、 CAE 对象、 CAM 对象、。
26、 CAD 数据、 PLM 数据、 CAM 数据、 CAE 数据。然而, 这些系统并不互相排斥, 因为对象可 以由与这些系统的任何组合相对应的数据来定义。这样, 系统很可能既是 CAD 又是 PLM 系 统, 通过下面提供的这样的系统的定义, 这一点是很明显的。系统还可以是 MMO 或 MMOG 系 统, 其中对象根据用户动作被操纵。 0051 通过 CAD 系统, 意味着至少适用于基于对建模对象的图形表示来设计建模对象的 说 明 书 CN 103971416 A 7 5/12 页 8 任何系统, 比如CATIA。 在这种情况下, 定义建模对象的数据包括允许表示建模对象的数据。 CAD系统例如可。
27、以使用边或线、 某些情况下使用面或表面, 提供对CAD建模对象的表示。 线、 边或表面可以用各种方式表示, 例如非均匀有理 B 样条 (NURBS)。特别的, CAD 文件包含规 范, 根据该规范可以产生几何图形, 这反过来允许产生表示。建模对象的规范可以存储在 单一的 CAD 文件中或多个文件中。CAD 系统中表示建模对象的文件的典型大小是每个部件 一兆字节范围内。建模对象典型的可以是数千部件的组装。 0052 在 CAD 的上下文中, 建模对象典型的可以是 3D 建模对象, 例如表示产品, 比如一 个部件或部件的组装, 或可能是产品的组装。通过 “3D 建模对象” , 意味着由允许它的 3。
28、D 表 示的数据建模的任何对象。3D 表示允许从所有角度查看部件。例如, 3D 建模对象, 当用 3D 表示时, 可以围绕它的任意轴线或围绕表示被显示于其上的屏幕内的任意轴线被处理和转 动。这显然排除不是 3D 建模的 2D 图标。3D 表示的显示有利于设计 ( 即, 提高了设计者统 计上完成他们任务的速度 )。这加速了行业制造过程, 因为产品的设计是制造过程的一部 分。 0053 CAD系统可以是基于历史的。 在这种情况下, 建模对象进一步由包括几何特征历史 的数据来定义。建模对象事实上可以由自然人 ( 即设计者 / 用户 ) 使用标准建模特征 ( 如 伸出、 转动、 切割和/或变圆等等)和。
29、/或标准表面特征(如扫除、 混合、 放样(loft)、 填充、 变形、 平滑和 / 或等等 ) 进行设计。许多支持这样的建模功能的 CAD 系统是基于历史的系 统。 这是指设计特征的建立历史典型地通过用输入和输出链接将所述几何特征链接在一起 的非循环数据流而被保存。自 80 年代初期, 基于历史的建模范例被众所周知。建模对象由 两个持久性数据表示来描述 : 历史和 B-rep( 即边界表示法 )。B-rep 是历史中定义的计算 的结果。 当建模对象被表示时, 显示在计算机屏幕上的部件的形状是(曲面细分的)B-rep。 部件的历史是设计的意图。 基本上, 历史收集了建模对象已经经历的操作的信息。。
30、 B-rep可 以与历史一起保存, 以使得更容易显示复杂部件。 为了允许根据设计意图改变部件的设计, 历史可以与 B-rep 一起保存。 0054 通过 PLM 系统, 意味着适用于管理表示物理制造产品的建模对象的任何系统。在 PLM系统中, 建模对象因而由适用于制造物理对象的数据来定义。 这些典型的可以是尺寸值 和 / 或公差值。对于正确制造对象, 具有这样的值确实更好。 0055 通过 CAE 系统, 意味着适用于分析建模对象物理行为的任何系统。在 CAE 系统中, 建模对象因而由适用于分析这类行为的数据来定义。 这典型的可以是一组行为特征。 例如, 与门相对应的建模对象可以由表明这扇门围。
31、绕轴线旋转的数据来定义。 0056 图 8 显示了客户端计算机系统的例子, 例如用户的工作站。 0057 客户端计算机包括连接到内部通信总线 1000 的中央处理单元 (CPU)1010, 随机存 取存储器(RAM)1070也连接到总线。 客户端计算机进一步设置有图形处理单元(GPU)1110, 其与连接到总线的视频随机存取存储器 1100 相关联。视频 RAM1100 也就是本领域公知的 帧缓冲器。大容量存储设备控制器 1020 管理对大容量存储设备的访问, 例如硬盘驱动器 1030。适用于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易 失性存储器, 举例来说包括半导体存储。
32、器设备, 例如 EPROM、 EEPROM、 和闪速存储器设备 ; 磁 盘, 例如内置硬盘和可移动磁盘 ; 磁光盘 ; 和 CD-ROM 盘 1040。前述的任何一个可以通过特 殊设计的 ASIC( 专用集成电路 ) 来补充或并入其中。网络适配器 1050 管理对网络 1060 的 说 明 书 CN 103971416 A 8 6/12 页 9 访问。 客户端计算机还可以包括触觉设备1090, 例如光标控制设备、 键盘等等。 光标控制设 备用在客户端计算机中, 以准许用户有选择地将光标放在显示器 1080 上任何希望的位置。 另外, 光标控制设备允许用户选择各种命令, 和输入控制信号。 光标控。
33、制设备包括若干信号 产生设备, 用于将控制信号输入到系统。典型地, 光标控制设备可以是鼠标, 鼠标的按键用 来产生信号。 0058 计算机程序可以包括依据计算机的指令, 指令包括用于引起上述系统执行上述方 法的方式。 本发明例如可以用数字电子电路或用计算机硬件、 固件、 软件或用他们的组合来 实施。 本发明的装置可以用有形地体现在机器可读存储设备中由可编程处理器执行的计算 机程序产品实施 ; 并且本发明的方法步骤可以由执行程序指令的可编程处理器来执行, 以 通过通过操作输入数据和产生输出来执行本发明的功能。 0059 本发明可以有利地用在可编程系统上可执行的一个或多个计算机程序实施, 可编 程。
34、系统包括用来从数据存储系统接收数据和指令和传输数据和指令到数据存储系统的至 少一个耦合的可编程处理器、 至少一个输入设备和至少一个输出设备。应用程序可以用高 级过程编程语言或面向对象编程语言、 或者如果需要则用汇编或机器语言来实现 ; 并且在 任何情况下, 语言可以是编译或解释语言。 0060 根据图 1 的流程图, 现在讨论用于将三维场景分割为多个区域的方法的一个例 子。 0061 在步骤 100, 提供包括一个或多个对象的三维 (3D) 场景。提供 3D 场景可以包括 在显示器上显示 3D 场景和一个或多个对象, 例如根据图 2 提到的显示器 1080。3D 场景是 描述了其中对象之间的空。
35、间关系的空间。 场景由至少两个对象组成, 对象可以是, 但不限制 为, 建模对象或 3D 建模对象。3D 建模对象是对 3D 空间中对象的描述。3D 场景是物理宇宙 的模型, 其可以由依靠坐标描述 3D 空间中的每个点的几何图形进行数学表示。3D 场景典 型的是模拟的真实世界, 其中对象之间的真实交互被模拟。表达真实交互意思是模拟的交 互反映了真实世界的交互, 例如物理定律如作用力 / 转向力 ( 重力、 磁力、 接触 )、 控制定律 如信息流、 控制事件等等。一个或多个对象在 3D 场景中发展并受模拟的真实世界的定律支 配, 例如两个对象不能相互交叉。3D 场景包括能够为了特定的情节而被修改。
36、的布局。情节 描述了 3D 场景中一个或多个对象的至少可预测的交互。情节因而描述了一种方式, 即 3D 场景用于或设想用于活动的上下文中, 例如分析商店中新的区域对顾客流程管理的影响或 万一火灾疏散对安全的影响。每个特定的情节将在布局中被模拟。要知道情节可以由用户 定义。 事实上, 3D场景的布局由不能在3D场景中移动和不能被另一对象穿过的静态对象组 成。 0062 图 2 举例说明了 3D 场景的俯视图的例子, 其模拟了大商场的虚拟世界。这个虚拟 商场由被墙 ( 由粗线表示 ) 隔开的几个店铺 200、 210、 220、 230、 走廊 260、 270 和楼梯 240、 250 构成。店。
37、铺包含架子 280、 收银机 290 和其他设备。图 2 中, 3D 场景的布局由静态对象 组成, 例如走廊的地面、 楼梯、 墙、 架子。 3D场景的其他对象(例如收银机)不是布局的一部 分, 因为这些对象不是静态对象 : 事实上, 收银机是能够移动的对象, 除非收银机被设计为 布局的一部分并从而是静态对象。 0063 然后, 在图1中的步骤110, 确定3D场景中的一组位置, 这相当于说在3D场景中标 识两个或多个位置。可选地, 可以仅确定一个位置。位置是 3D 场景的对象可以到达的 3D 说 明 书 CN 103971416 A 9 7/12 页 10 场景的一部分。典型地, 动态对象可以。
38、到达 3D 场景的位置。动态对象是能够在三维场景中 潜在移动的对象。动态对象因而是与静态对象相对的, 静态对象从来不在 3D 场景中移动并 不能被另一个对象穿过。术语 “位置” 可以指 3D 场景的对象可进入的 3D 场景的划定面积, 或也可以指 3D 场景的其中包含 3D 场景的对象的体积。换句话说, 位置可以是由一个或多 个对象占用的或可以占用的 3D 场景中的地点。 0064 返回图 2 中显示的 3D 场景, 由对象模拟顾客 ( 未显示 )。顾客能够行走、 浏览、 挑 选陈列在架子上的货物并将它们放入他们的购物车中。要知道货物 ( 未显示 ) 也是对象。 这些顾客和货物是动态对象, 也。
39、就是说, 能够在 3D 场景中潜在移动的对象。这里, 动态对象 和可能动作的列表不是广泛的, 取决于应用程序的目的和 3D 场景支持的情节的本性。图 2 上所表示的 3D 场景持续运转或由计算机资源处理。这涉及同时地用户在任何时候注册 / 注销、 商场中建立新店铺并开始营业、 能够增加象电梯一样的新设备和能够引进新的商品。 换句话说, 布局可以被修改, 动态对象也可以被修改 ; 例如, 顾客可以被抑制、 增加或甚至修 改。 0065 因而, 3D 场景可以被考虑为包括静态对象的布局和在所述布局中移动 / 发展的一 组动态对象。有趣的是, 位置和静态对象紧密相关。事实上, 在布局内动态对象的移动。
40、被静 态对象所限制, 所述静态对象定义了不能被动态对象穿过的 3D 空间中的表面或体积。例 如, 在图 3 中, 表示顾客 34 和购物车 35 的对象是动态对象, 其在静态对象走廊 33( 图 2 中 被称为走廊 270、 280) 中移动。走廊 33 的地面可以被动态对象到达, 因而能够被标识为位 置。作为另一个例子, 表示堆 32 中的罐头的对象是动态对象, 其能够从一个架子 31 潜在地 被移动 ( 例如, 他们可以被顾客抓取并放入购物车中 )。因此, 显示实例 30 的架子 31 能够 被确定为是位置。 0066 返回参看图 1, 在步骤 120, 用达到最贵计算成本的每个位置的最大。
41、对象占用来填 充事先确定的每个位置。用位置的最大对象占用来填充位置意思是对象被放在位置上, 并 且放在这个位置上的对象数量是允许放在该位置的最大对象数量。 这个最大对象数量是该 位置的特征, 这个特征可由 3D 场景上播放或应用的情节定义。情节关于模拟的真实世界的 是真实的, 并限制 3D 场景中对象的可能动作。 0067 3D 场景上的一个或多个对象是实例化的对象, 这是本领域公知的。当对象在 3D 场景中被实例化时, 该对象产生计算成本。 实例化的对象的计算成本是实例化参数的函数。 实例化的这些参数可以是, 但不限制为, 对象的 3D 网格的选择复杂性、 纹理精度、 3D 场景中 对象的反。
42、射和阴影、 与动态行为 ( 如接触 / 冲突、 弹性、 热传递等等 ) 相关联的属性。要知 道, 当用于位置上的最大数量对象的实例化参数最多时 ( 如用最大的现实实例化 ), 产生的 计算成本最高。 0068 根据图2, 货物可以放在店铺200里的架子280上。 例如, 货物可以是洗发水瓶, 架 子可以是位置。当 3D 场景播放真实世界模拟情节时, 架子可以支撑用最大现实实例化的最 大数量的洗发水瓶, 结果是为这个架子获得了最贵计算成本。这种情况显示在图 3 中。显 示实例 30 包括 6 个架子 31。显示实例 30 显示了带有最大允许的架子 (31) 的它的最高成 本情况, 每个架子处于它。
43、们最高容量的堆(32)中的罐头, 对于最贵CPU的罐头, 具有用于呈 现的复杂 3D 网格和丰富纹理。 0069 仍然根据图 2, 作为另一个例子, 对象可以放在走廊 270 上。例如, 对象可以是拿 说 明 书 CN 103971416 A 10 8/12 页 11 着购物篮的用户。再次, 当 3D 场景播放真实世界模拟情节时, 走廊可以包括最大数量的拿 着购物篮的用户, 其为架子产生了最贵计算成本。这在显示位置的图 3 上举例说明, 这里是 走廊 33( 图 2 中被称为走廊 270、 280), 其处于最高成本情况, 当每个顾客 34 推着充满物品 36 的购物车 35, 每个顾客和它的。
44、车处于 “一个挨一个” 的情况 ; 也就是说,“一个挨一个” 的 情况是更差的情况, 其中走廊 33 包括最大数量的顾客。要知道, 对象 ( 用户、 车和物品 ) 使 用被选择用于产生最高计算资源成本的参数实例来被实例化 ; 例如, 选择呈现参数用来获 得对象的最精确表示。 0070 有利地, 步骤120可以仅为动态对象执行, 也就是说, 为能够在3D场景中潜在移动 的对象执行。 事实上, 动态对象具有不可预测的计算成本, 因为他们的计算成本取决于比如 他们的数量、 他们呈现的细节这些因素。 相反, 静态的, 也就是, 不能够在三维场景中移动且 不能够被另外的对象穿过的对象, 产生计算资源的可。
45、预测计算成本, 或换句话, 他们的计算 资源成本能够事先知道。 0071 这样, 在步骤 120, 当达到给定位置上可接受的最大数量的对象时和当对象至少用 最大现实被实例化时, 达到该位置上的最贵计算成本。因此, 执行最高成本情况分析 : 虚拟 世界的每个位置都被分析它的最高 CPU 成本情况。 0072 然后, 在步骤130, 计算3D场景的每个位置的最高计算成本密度。 这有利地允许为 在步骤 120 执行的所有位置量化和表征更差的成本情况。为步骤 120 填充的每个位置执行 计算。 0073 最高计算成本密度可以是指每面积单位或每体积单位的计算成本, 取决于位置的 种类(面积, 体积)。 。
46、例如, 如果位置是面积, 那么最高计算成本密度将是每面积单位的计算 成本 ; 作为另一个例子, 如果位置是体积, 那么最高计算成本密度将是每体积单位的计算成 本。显然, 最高计算成本密度能够包括 3D 对象的本性。这相当于说, 最高计算成本密度可 以根据所述面积或体积单位上的 3D 对象的本性来计算。例如, 对于同样的面积, 最高计算 成本密度可以取决于是模拟基本3D对象比如立方体、 球体等, 或是模拟复杂3D对象比如表 面、 网格等。 0074 事实上, 计算步骤130包括计算比率P/A, 其中, P是用于处理达到它的最贵计算成 本的位置所需的计算资源的测量百分比, 如根据步骤120所讨论的。
47、, 并且其中A是三维场景 中位置的面积。可选地, A 可以是三维场景中位置的体积。计算资源 P 典型的是实施本方 法的系统的处理器, 或处理区域的计算资源。 0075 现在参看图 4, 举例说明了对根据图 2 所描述的大商场中的架子的最高计算成本 密度的计算。图 4 中, 确定的位置 40 是包括其上放置动态对象 ( 货物 ) 的显示实例 30 的 三个架子 31 的体积。比率 P/A 的计算结果是每体积单位的最高计算成本, 例如每立方米的 最高计算成本。 0076 可选地, 仍然根据图4, 位置40的比率P/A的计算结果可以是每面积单位的最高计 算成本, 例如每平方米。因为位置 40 是体积。
48、, 所以表示该位置的体积的面积被计算。为了 这个目标, 从体积 40 提取印迹 (print)41 : 这是指体积 40 的投影在跟随一个方向的投影平 面上 ( 例如商场的地面 42) 完成, 也就是说, 通过将 3D 空间中的点线性映射到二维投影平 面上的点来构造投影。因而, 印迹是面积。图 4 中, 投影的方向由这里垂直于投影平面 42 的箭头 43 表示。这个例子中投影平面可以是走廊 33 的地面。因而, 印迹 41 是体积 40 在 说 明 书 CN 103971416 A 11 9/12 页 12 投影平面 42 投影的结果。 0077 典型地, 投影平面可以是跨越 3D 场景延伸的。
49、平面, 以便每个位置能够投影到这个 平面上。当在步骤 110 已经确定混合的面积和体积位置时, 这样的投影平面允许计算最高 计算成本密度。事实上, 所有位置 ( 面积或体积 ) 都投影到投影平面上。在图 4 的例子中, 3D 场景是大商场, 其中大商场的地面是平面。在这种情况下, 地面充当用于确定位置的平 面 : 面积位置比如商场的走廊在大商场的地面上被直接标识, 体积位置的印迹比如架子在 大商场的地面上被计算。 0078 通过运行几批基础的但是重要的情节来执行计算步骤 130, 这些情节满足实时模 拟以测量最高计算机资源成本情况下选择的典型位置的小的同质面积的计算资源性能。 0079 接着, 在图1的步骤132, 执行聚集计算出的3D场景的每个位置的最高计算成本密 度的步骤。聚集是指计算出的每个位置的最高计算成本密度的结果被连接 ( 或收集 ) 到一 起。 0080 然后, 在图1的步骤134, 根据聚集的最高计算成本密度建立3D场景的成本密度地 图。术语 “。