CN107004299B - 渲染三维多边形网格的似然图像 - Google Patents
渲染三维多边形网格的似然图像 Download PDFInfo
- Publication number
- CN107004299B CN107004299B CN201480083705.2A CN201480083705A CN107004299B CN 107004299 B CN107004299 B CN 107004299B CN 201480083705 A CN201480083705 A CN 201480083705A CN 107004299 B CN107004299 B CN 107004299B
- Authority
- CN
- China
- Prior art keywords
- rendering
- polygon mesh
- mesh
- updated
- computer
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- 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
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- 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/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
各方法和计算机系统用于在包括计算机生成环境的计算机模拟中渲染三维多边形网格的似然图像。在使用提供多个渲染面的多个顶点而限定的三维多边形网格上,通过多个顶点中的至少三个顶点确定锚定点;对于三维多边形网格的每个渲染面,确定是否存在朝向锚定点的路径和/或是否该一个渲染面处于三维多边形网格的不稳定的部分上。当不存在路径时或当该部分不稳定时,从三维多边形网格中去除该一个渲染面而形成更新的三维多边形网格。使用视觉纹理渲染包括多个渲染面的子集的更新的三维多边形网格以进行显示,该子集通过计算机模拟的视场确定。
Description
技术领域
本发明涉及计算机生成图像,更特别地涉及使用基于可动态修改的环境的计算机而生成图像。
背景技术
在计算机模拟中,重要的方面是:可信地复制实际环境,其中可触发各种动态事件(例如,碰撞或爆炸,导致对模型结构等的损坏)。为了保持可信,计算机模拟中的图像生成必须考虑到这些事件,同时保持足够高的从用户视角流过的可见速率。不过,需要大量物质资源(例如处理动力、存储器和/存储空间,等等)以动态考虑这样的动态事件(例如,特别是在多用户环境中)。因此,在可用物质资源内常常有必要放弃一些精确度。
本发明的目标在于:改进计算机模拟过程中考虑动态事件并同时考虑物质资源使用时的方式。
发明内容
提供此发明内容以介绍采用简化形式的一系列设计方案,这将在下文中在详细描述中进一步描述。此发明内容不是试图识别所要求保护主题的关键特征或基本特征,也不是试图用作确定所要求保护主题的范围的辅助。
根据第一组实施例的本发明的第一方面涉及一种方法,用于在包括计算机生成环境的计算机模拟中渲染(render)损坏增强图像(damaged-enhanced image)。所述方法包括:在计算机模拟过程中确定具有有效半径的虚拟冲击在计算机生成环境中的坐标;在所述坐标处在考虑有效半径的情况下识别受虚拟冲击影响的多个第一渲染面(renderingface)。多个第一渲染面与计算机生成环境的至少一个三维(3D)多边形网格相关联。所述方法然后接着将多个第一渲染面修剪为在考虑有效半径情况下计算出的数学定义减影(subtraction)形状;通过被修剪的多个第一渲染面而计算多个第二渲染面,由此限定出至少一个新形成的三维多边形网格;使用视觉纹理渲染至少一个损坏增强图像以进行显示,包括多个第二渲染面的子集,所述子集通过计算机模拟的视场进行确定。
所述用于渲染损坏增强图像的方法可在运行时通过分散处理单元在有限量的毫秒内进行。专用处理单元可以与计算机生成环境的模拟运载工具相关联,所述视场可因而通过模拟运载工具内的用户的位置限定。所述方法可选地可进一步包括:在集中处理单元,通过确定的坐标而计算所述至少一个新形成的三维多边形网格,并通过所述至少一个新形成的三维多边形网格而持续(persistently)更新与所述模拟相关联的存储模块。在集中处理单元的计算在此示例中独立于分散处理单元且按照非实时优先处理方式进行。
在集中处理单元计算所述至少一个新形成的三维多边形网格,可使用比在分散处理单元使用的数学定义减影形状更复杂的第二数学定义减影形状进行。
所述方法还可包括:在计算机模拟的第二分散处理单元,将所述至少一个新形成的三维多边形网格数据从存储模块加载。第二分散处理单元与计算机生成环境的第二模拟运载工具相关联,其具有通过第二模拟运载工具内的第二用户位置限定的第二视场。所述加载可以当所述至少一个新形成的三维多边形网格进入第二视场时进行。所述方法可替代地还可包括:在第二分散处理单元,当第二视场在虚拟冲击时包括所述三维多边形网格时,通过所确定的坐标并行于分散处理单元计算所述至少一个新形成的三维多边形网格。
所述渲染面可为三角形。
所述用于渲染损坏增强图像的方法可进一步包括:在开始计算机模拟之前(例如在集中处理器),从存储模块加载计算机生成环境,识别在计算机生成环境中形成非水密性(non-watertight)的网格的一个或多个开放的多边形网格(例如,可通过计算一个或多个连接性图线而进行识别)。所述方法可以然后进一步包括:对每个识别出的开放的多边形网格,尝试封闭对应的多边形网格,并在不可行时将对应的多边形网格标记为不可损坏;在识别所述多个第一渲染面之前,验证所述至少一个三维多边形网格在数据库中没有被标记为不可损坏。
所述用于渲染损坏增强图像的方法还可进一步包括:在修剪之前确定所述至少一个三维多边形网格中的每个形成水密性网格。
所述用于渲染损坏增强图像的方法可选地可包括:在确定坐标之后,渲染至少一个临时图像以进行显示,包括在所确定的坐标之处的分心的视觉效果,至少直到所述至少一个损坏增强图像的渲染被执行。
所述用于渲染损坏增强图像的方法可以进一步包括:在识别被影响的多个第一渲染三角形之后,缓存所述多个第一渲染三角形,由此允许撤销(undo)修剪。
数学定义减影形状是:通过单个数学公式表达的球形或椭球形。
所述用于渲染损坏增强图像的方法还可进一步包括:在计算多个第二渲染面之后,检测所述至少一个新形成的三维多边形网格以进行循环(for loops)。
渲染多个第二渲染面可以进一步包括:在多个第二渲染面的子集(对应于先前在至少所述多个第一渲染面中所表现的表面)上施加损坏纹理、从所述坐标向外褪色和超过有效半径。
根据第一组实施例的本发明的第二方面涉及一种计算机系统,用于在包括计算机生成环境的计算机模拟中渲染损坏增强图像。计算机系统包括处理器模块,用于:i)确定具有有效半径的虚拟冲击在计算机生成环境中的坐标;ii)在所述坐标处在考虑有效半径的情况下识别受虚拟冲击影响的多个第一渲染面。多个第一渲染面与计算机生成环境的至少一个三维(3D)多边形网格相关联。处理器模块还用于:iii)将多个第一渲染面修剪为在考虑有效半径情况下计算出的数学定义减影形状;iv)通过被修剪的多个第一渲染面而计算多个第二渲染面,由此限定出至少一个新形成的三维多边形网格。处理器模块还包括:图像生成模块,用于使用视觉纹理渲染至少一个损坏增强图像以进行显示,包括多个第二渲染面的子集,所述子集通过计算机模拟的视场进行确定。
处理器模块可包括:分散处理单元,其与计算机生成环境的模拟运载工具相关联,所述视场可通过模拟运载工具内的用户的位置限定,该分散处理单元执行i至iv。
集中处理单元(例如处理器模块的或者另一计算机系统的集中处理单元)可进一步用于:通过确定的坐标而计算所述至少一个新形成的三维多边形网格,将计算出的至少一个新形成的三维多边形网格存储在存储模块中(例如,存储模块与计算机模拟相关联、被包括在计算机系统中或者连接到计算机系统)。在集中处理的计算独立于分散处理单元且按照非实时优先处理方式进行。
集中处理单元可使用比在分散处理单元使用的数学定义减影形状更复杂的第二数学定义减影形状计算所述至少一个新形成的三维多边形网格。
计算机模拟的第二分散处理单元(例如在计算机系统中或者与计算机系统网络通讯)可将所述至少一个新形成的三维多边形网格数据从存储模块加载。第二分散处理单元可与计算机生成环境的第二模拟运载工具相关联,其具有通过第二模拟运载工具内的第二用户位置限定的第二视场。所述加载可当所述至少一个新形成的三维多边形网格进入第二视场时进行。当第二视场在虚拟冲击时包括所述三维多边形网格时,第二分散处理单元还可通过所确定的坐标并行于分散处理单元计算所述至少一个新形成的三维多边形网格。
渲染面可为三角形。
处理器模块还可进一步用于:在开始计算机模拟之前,从存储器模块加载计算机生成环境(例如在分散处理单元或者在集中处理器处),识别在计算机生成环境中形成非水密性(non-watertight)网格的一个或多个开放的多边形网格。处理器模块可通过计算连接性图线而进行识别。
处理器模块可进一步用于:对于每个识别出的开放的多边形网格,尝试封闭对应的多边形网格,并且在不可行时将对应的多边形网格在存储模块中标记为不可损坏;和在识别所述多个第一渲染面之前,验证所述至少一个三维多边形网格在存储模块中没有被标记为不可损坏。
处理器模块可进一步用于:在修剪之前确定所述至少一个三维多边形网格中的每个形成水密性网格。
图像生成模块可进一步用于:在由处理器模块确定坐标之后,渲染至少一个临时图像以进行显示,包括在所确定的坐标处的分心的视觉效果,至少直到所述至少一个损坏增强图像的渲染被执行。
处理器模块可进一步用于:在识别被影响的多个第一渲染三角形之后,缓存所述多个第一渲染三角形,由此允许撤销(undo)修剪。
数学定义减影形状可以是:通过单个数学公式表达的球形或椭球形。
处理器模块可进一步用于:在计算多个第二渲染面之后,检测所述至少一个新形成的三维多边形网格以进行循环(for loops)。
图像生成模块可通过以下方式渲染多个第二渲染面:在多个第二渲染面的子集(对应于先前在至少所述多个第一渲染面中所表现的表面)上施加损坏纹理、从所述坐标向外褪色和超过有效半径。
根据第二组实施例的本发明的第一方面涉及一种方法,用于在包括计算机生成环境的计算机模拟中渲染三维(3D)多边形网格的似然图像(plausible image)。所述方法包括:在使用多个顶点(提供多个渲染面)限定的三维多边形网格上,通过多个顶点中的至少三个确定锚定点;而且对于三维多边形网格的渲染面中的每一个,确定是否存在朝向锚定点的路径,并当不存在路径时从三维多边形网格中去除这一个渲染面而形成更新的三维多边形网格。所述方法然后接着使用视觉纹理渲染更新的三维多边形网格(包括多个渲染面的子集)以进行显示,所述子集通过计算机模拟的视场确定。
可选地,所述用于渲染似然图像的方法可进一步包括:通过多个渲染面而计算表现三维多边形网格的连接性图线。在此示例中,当不存在朝向锚定点的路径时,去除所述一个渲染面是通过从连接性图线中去除所述一个渲染面从而形成表现出更新的三维多边形网格的更新的连接性图线而进行的。
所述用于渲染似然图像的方法可以在运行时通过分散处理单元在有限量的毫秒内进行,专用处理单元与计算机生成环境的模拟运载工具相关联,其中,视场通过模拟运载工具内的用户的位置限定。专用处理单元可与模拟运载工具相关联,模拟运载工具作为训练装置的一部分,训练装置包括:考虑用户位置而定位的至少一个显示屏、和模拟运载工具的至少一个模拟设备。
所述用于渲染似然图像的方法可进一步包括:在确定是否存在朝向锚定点的路径之前且在对三维多边形网格的虚拟冲击(影响在所述多个渲染面中至少一个受冲击渲染面)之后,在运行时,以多个新的渲染面更换所述至少一个受冲击渲染面。
所述用于渲染似然图像的方法还可进一步包括:在渲染更新的三维多边形网格之前,在运行时,通过与更新的三维多边形网格的一部分关联的多个顶点确定该部分的质心;在运行时,考虑到模拟中施加的虚拟重力而确定三维多边形网格的所述部分从锚定点的视角来看是不稳定的;在运行时,在不稳定部分上识别出所述多个渲染面中的子集不稳定的渲染面;在运行时,将不稳定的渲染面从更新的三维多边形网格中去除。在此示例中,识别不稳定的渲染面可进一步包括:附加(append)新的渲染面以封闭更新的三维多边形网格。更新的三维多边形网格可具有相关联的虚拟拉伸强度和虚拟密度值,去除不稳定的渲染面可进一步仅在虚拟崩塌压力超过虚拟拉伸强度时进行,其中,虚拟崩塌压力通过不稳定部分的支点(fulcrum)区域与质心相比的虚拟密度值而计算出。确定所述部分是不稳定的,可通过定位更新的三维多边形网格上虚拟冲击周围的窄链路(narrow link)而进行。窄链路限定所述部分与更新的三维多边形网格的连接到锚定点的第二部分之间的支点区域,当在窄链路上方的结构不连接到锚定点而且质心不处于支点区域上方时,确定所述部分是不稳定的。定位更新的三维多边形网格中的窄链路,可通过以下方式进行:在虚拟冲击周围,识别多个顶点中的最低孤立顶点,直到窄链路被定位或者直到获得基于性能的阈值,始于最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定窄链路为所述部分与连接到锚定点的第二部分之间的最小支点区域。
所述用于渲染似然图像的方法可进一步包括:在集中处理单元处,独立于分散处理单元且按照非实时优先处理方式,去除所述一个渲染面而形成更新的三维多边形网格。
根据第二组实施例的本发明的第二方面涉及一种方法,用于在计算机模拟中渲染三维(3D)多边形网格的似然图像,包括:在使用多个顶点(提供多个渲染面)限定的三维多边形网格上,通过多个顶点中的至少三个确定锚定点;在运行时,通过与三维多边形网格的一部分关联的多个顶点确定该部分的质心;在运行时,考虑到模拟中施加的虚拟重力而确定三维多边形网格的所述部分从锚定点的视角来看是不稳定的。所述方法还可包括:在运行时,将不稳定渲染面的子集从不稳定部分上的多个渲染面去除而形成更新的三维多边形网格,使用视觉纹理渲染更新的三维多边形网格(包括多个渲染面的子集)以进行显示,所述子集通过计算机模拟的视场确定。
确定所述部分是不稳定的,可通过定位三维多边形网格上虚拟冲击(影响多个渲染面中的至少一个受冲击的渲染面)周围的窄链路而进行,窄链路限定所述部分与三维多边形网格的连接到锚定点的第二部分之间的支点区域,当在窄链路上方的结构不连接到锚定点而且质心不处于支点区域上方时,确定所述部分是不稳定的。所述方法还可包括:在三维多边形网格上的虚拟冲击影响到多个渲染面中的至少一个受冲击的渲染面之后,在运行时,以多个新的渲染面更换所述至少一个受冲击的渲染面。定位三维多边形网格中的窄链路,可通过以下方式进行:在虚拟冲击周围识别多个顶点中的最低孤立顶点,直到窄链路被定位或者直到到达基于性能的阈值,始于最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定窄链路为所述部分与连接到锚定点的第二部分之间的最小支点区域。
所述用于渲染似然图像的方法可进一步包括:在集中处理单元处,独立于分散处理单元且按照非实时优先处理方式,从三维多边形网格中去除所述一个渲染面。
根据第二组实施例的本发明的第三方面涉及一种计算机系统,用于在计算机模拟中渲染三维(3D)多边形网格的似然图像。所述计算机系统包括:存储器模块和处理器模块。存储器模块用于存储计算机模拟的多个三维多边形网格的相应表示,多个三维多边形网格至少通过计算机模拟视场确定。处理器模块用于:在使用多个顶点(提供多个渲染面)限定的多个三维多边形网格的三维多边形网格上,通过多个顶点中的至少三个确定锚定点;对于三维多边形网格的渲染面中的每一个,确定是否存在朝向锚定点的路径,并当不存在路径时从三维多边形网格中去除这一个渲染面而形成更新的三维多边形网格。处理器模块还用于:将更新的三维多边形网格的表示存储到存储器模块中。处理器模块包括图像生成模块,用于使用视觉纹理渲染更新的三维多边形网格以进行显示,包括多个渲染面的子集,所述子集通过计算机模拟的视场进行确定。
处理器模块可进一步用于:通过多个渲染面计算连接性图线而作为三维多边形网格的表示。在此示例中,当不存在朝向锚定点的路径时,处理器模块通过从连接性图线中去除所述一个渲染面而去除所述一个渲染面,从而形成表现出更新的三维多边形网格的更新的连接性图线。
处理器模块还可包括:分散处理单元,其与计算机生成环境的模拟运载工具相关联,其中所述视场通过模拟运载工具内的用户的位置限定。第一训练装置可与分散处理单元相关联,第一训练装置包括:考虑用户位置而定位的至少一个显示屏、和模拟运载工具的至少一个模拟设备。
处理器模块可以进一步:在确定是否存在朝向锚定点的路径之前且在对三维多边形网格的虚拟冲击(影响所述多个渲染面中至少一个受冲击渲染面)之后,在运行时,以多个新的渲染面更换所述至少一个受冲击渲染面。
处理器模块还可以:在渲染更新的三维多边形网格之前,在运行时,通过与更新的三维多边形网格的一部分相关联的多个顶点确定该部分的质心;在运行时,考虑到模拟中施加的虚拟重力而确定更新的三维多边形网格的所述部分从锚定点视角来看是不稳定的;在运行时,在不稳定部分上识别出所述多个渲染面中的不稳定渲染面的子集;在运行时,将不稳定渲染面从更新的三维多边形网格中去除。
处理器模块当识别不稳定渲染面时可进一步:附加(append)新的渲染面到更新的连接性图线以封闭更新的三维多边形网格。
更新的三维多边形网格可具有相关联的虚拟拉伸强度和虚拟密度值,处理器模块可进一步仅在虚拟崩塌压力超过虚拟拉伸强度时去除不稳定渲染面,其中,虚拟崩塌压力通过不稳定部分的支点(fulcrum)区域与质心相比的虚拟密度值而计算出。
处理器模块可通过以下方式确定所述部分是不稳定的:定位更新的三维多边形网格上的虚拟冲击周围的窄链路,窄链路限定所述部分与更新的三维多边形网格的连接到锚定点的第二部分之间的支点区域,当窄链路上方的结构不连接到锚定点而且质心不处于支点区域上方时,确定所述部分是不稳定的。
处理器模块可以通过以下方式定位三维多边形网格中的窄链路:在虚拟冲击周围,识别多个顶点中的最低孤立顶点,直到窄链路被定位或者直到到达基于性能的阈值,始于最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定窄链路为所述部分与连接到锚定点的第二部分之间的最小支点区域。
计算机系统的集中处理单元可进一步:独立于分散处理单元且按照非实时优先处理方式,去除所述一个渲染面而形成更新的三维多边形网格。
根据第二组实施例的本发明的第四方面涉及一种计算机系统,用于计算机模拟中渲染三维(3D)多边形网格的似然图像,包括:存储器模块和处理器模块。存储器模块用于存储计算机模拟的多个三维多边形网格的相应表示。处理器模块用于:在使用多个顶点(提供多个渲染面)限定的多个三维多边形网格的三维多边形网格上,通过多个顶点中的至少三个确定锚定点。处理器模块进一步用于:在运行时,通过与三维多边形网格的一部分关联的多个顶点确定该部分的质心;在运行时,考虑到模拟中施加的虚拟重力而确定三维多边形网格的所述部分从锚定点的视角来看是不稳定的;在运行时,在不稳定的部分上识别出所述多个渲染面中的不稳定的渲染面的子集。处理器模块进一步包括图像生成模块,用于使用视觉纹理渲染更新的三维多边形网格以进行显示,包括多个渲染面的子集,所述子集通过计算机模拟的视场进行确定。
处理器模块可通过以下方式确定所述部分是不稳定的:定位三维多边形网格上的虚拟冲击(影响多个渲染面中的至少一个受冲击的渲染面)周围的窄链路,窄链路限定所述部分与三维多边形网格的连接到锚定点的第二部分之间的支点区域,当窄链路上方的结构不连接到锚定点而且质心不处于支点区域上方时,确定所述部分是不稳定的。
处理器模块可进一步用于:在三维多边形网格上的虚拟冲击影响到多个渲染面中的至少一个受冲击的渲染面之后,在运行时,以多个新的渲染面更换所述至少一个受冲击的渲染面。定位三维多边形网格中的窄链路,可通过以下方式进行:在虚拟冲击周围,识别多个顶点中的最低孤立顶点,直到窄链路被定位或者直到到达基于性能的阈值,始于最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定窄链路为所述部分与连接到锚定点的第二部分之间的最小支点区域。
集中处理单元可进一步:独立于分散处理单元且按照非实时优先处理方式,从三维多边形网格中去除所述一个渲染面。
根据第三组实施例的本发明的第一方面涉及一种方法,用于在计算机模拟中更新损坏增强(damaged-enhanced)三维(3D)多边形网格,所述计算机模拟与存储模块相关联,所述存储模块至少能够供其第一分散模拟站、第二分散模拟站和集中处理单元访问。计算机模拟包括计算机生成环境。所述方法包括:在所述第一分散模拟站,在所述计算机模拟过程中,确定所述计算机生成环境的三维多边形网格上的虚拟冲击的坐标;在运行时,通过所述虚拟冲击而计算至少一个新形成的三维多边形网格;然后渲染所述至少一个新形成的三维多边形网格的至少一个损坏增强图像,用于从所述第一分散模拟站的第一视场显示。所述方法还包括:在所述第二分散模拟站,接收所述虚拟冲击的坐标。所述方法还包括:在所述集中处理单元,接收所述虚拟冲击的坐标;通过所述接收的坐标而计算所述至少一个新形成的三维多边形网格;通过所述至少一个新形成的三维多边形网格而持续(persistently)更新与所述模拟相关联的存储模块。在所述集中处理单元的计算独立于所述第一分散模拟站且按照非实时优先处理方式进行。
在所述第一分散模拟站在运行时通过所述虚拟冲击而计算所述至少一个新形成的三维多边形网格,可在不更新所述存储模块的情况下进行。
所述第一分散模拟站可与所述计算机生成环境的第一模拟运载工具相关联,所述第二分散模拟站可与所述计算机生成环境的第二模拟运载工具相关联。在此示例中,所述第一分散模拟站的所述第一视场通过在所述第一模拟运载工具内的用户的位置限定,所述第二分散模拟站的所述第二视场通过在所述第二模拟运载工具内的用户的位置限定。
所述用于更新损坏增强三维多边形网格的方法可进一步包括:当所述至少一个新形成的三维多边形网格进入所述第二分散模拟站的所述第二视场时,从所述计算机模拟的所述第二分散模拟站加载来自所述存储模块的所述至少一个新形成的三维多边形网格。
可替代地,所述用于更新损坏增强三维多边形网格的方法可进一步包括:在所述第二分散模拟站,在接收到所述虚拟冲击的坐标时,通过所述接收的坐标而计算所述至少一个新形成的三维多边形网格。在此示例中,在所述第二分散模拟站的计算在运行时独立于(例如并行于)所述第一分散模拟站进行。
在集中处理单元计算所述至少一个新形成的三维多边形网格,可使用比在分散处理单元使用的数学定义减影形状更复杂的第二数学定义减影形状进行。
所述用于更新损坏增强三维多边形网格的方法可进一步包括:当所述至少一个新形成的三维多边形网格再次进入所述第一视场时,在所述第一分散模拟站加载来自所述存储模块的所述至少一个新形成的三维多边形网格。
所述更新可通过以下步骤进行:将至少一个新文件存储在所述存储模块的文件系统中,以对应于所述至少一个新形成的三维多边形网格;以及将至少一个事件存储在所述存储模块的数据库中,以对应于所述计算所述至少一个新形成的三维多边形网格的完成。
所述存储模块可包括文件系统,在所述集中处理单元的计算可进一步包括:定位所述文件系统中对应于所述三维多边形网格的内容文件的最近版本;验证是否存在与所述内容文件相关联的至少一个事务标记文件,所述至少一个事务标记文件指示出所述内容文件当前是否经受(subject to)进行中的事务;当所述内容文件当前未经受进行中的事务时,所述方法于是包括:将所述内容文件复制到所述文件系统上的一新的内容文件中;通过所述至少一个新形成的三维多边形网格更新所述新的内容文件,且所述新的内容文件的名称与所述最近版本相比反映出较新版本;更新所述至少一个事务标记文件。
当所述内容文件当前经受进行中的事务时,所述方法可进一步包括:等待,直到所述至少一个事务标记文件指示出进行中的事务完成;创建新的开始事务标记文件,且所述新的开始事务标记文件的名称与所述进行中的事务之后的所述内容文件的名称相比反映出较新版本;通过所述至少一个新形成的三维多边形网格更新所述新的内容文件,所述新的内容文件的名称反映出与所述开始事务文件相同的版本;以及创建新的结束事务标记文件,所述结束事务标记文件的名称反映出与所述开始事务标记文件相同的版本。
所述存储模块可包括文件系统,所述方法可进一步包括:当在所述集中处理单元接收到所述虚拟冲击的所述坐标之后而且当从所述集中处理单元更新之前,在所述集中处理单元接收所述三维多边形网格上的第二虚拟冲击的坐标;定位所述文件系统中对应于所述三维多边形网格的内容文件的最近版本;创建第一开始事务标记文件,所述第一开始事务标记文件的名称反映出与所述最近版本相比的第一新版本;创建第一新内容文件,其具有通过所述虚拟冲击计算出的所述至少一个新形成的三维多边形网格,所述第一新内容文件的名称反映出所述第一新版本;创建第一结束事务标记文件,所述第一结束事务标记文件的名称反映出与所述第一开始事务标记文件相同的版本;创建第二开始事务标记文件,所述第二开始事务标记文件的名称反映出与所述第一新版本相比的第二新版本;创建第二新内容文件,其具有通过所述第二虚拟冲击计算的所述至少一个新形成的三维多边形网格,所述第二新内容文件的名称反映出所述第二新版本;以及创建第二结束事务标记文件,所述第二结束事务标记文件的名称反映出与所述第二开始事务标记文件相同的版本。
根据第三组实施例的本发明的第二方面涉及一种系统,用于在包括计算机生成环境的计算机模拟中更新损坏增强三维(3D)多边形网格。所述的计算机系统包括:存储模块,其与包括计算机生成环境的所述计算机模拟关联;第一分散模拟站;第二分散模拟站;集中处理单元。
第一分散模拟站,用于:在所述计算机模拟过程中确定所述计算机生成环境的三维多边形网格上的虚拟冲击的坐标;在运行时通过所述虚拟冲击而计算至少一个新形成的三维多边形网格;然后渲染所述至少一个新形成的三维多边形网格的至少一个损坏增强图像,用于从所述第一分散模拟站的视场显示。
第二分散模拟站,用于接收所述虚拟物的坐标;
集中处理单元,用于:接收所述虚拟物的坐标;通过所确定的坐标而计算所述至少一个新形成的三维多边形网格,其中,在所述集中处理单元的计算独立于所述第一分散模拟站且按照非实时优先处理方式(in non-real-time priority processing)进行;以及通过所述至少一个新形成的三维多边形网格而持续(persistently)更新与所述模拟相关联的存储模块。
所述第一分散模拟站可以在运行时通过所述虚拟冲击计算所述至少一个新形成的三维多边形网格,而不更新所述存储模块。
所述第一分散模拟站可与所述计算机生成环境的第一模拟运载工具相关联,所述第一分散模拟站的所述第一视场因而可通过在所述第一模拟运载工具内的用户的位置限定;所述第二分散模拟站可与所述计算机生成环境的第二模拟运载工具相关联,所述第二分散模拟站的所述第二视场因而可通过在所述第二模拟运载工具内的用户的位置限定。
所述第二分散模拟站可进一步:当所述至少一个新形成的三维多边形网格进入所述第二分散模拟站的所述第二视场时加载来自所述存储模块的所述至少一个新形成的三维多边形网格。
可替代地,所述第二分散模拟站可进一步:在接收到所述虚拟冲击的坐标时通过所述接收的坐标而计算所述至少一个新形成的三维多边形网格。在此示例中,在所述第二分散模拟站的计算在运行时独立于(例如并行于)所述第一分散模拟站进行。
在集中处理单元计算所述至少一个新形成的三维多边形网格,可使用比在分散处理单元使用的数学定义减影形状更复杂的第二数学定义减影形状进行。
所述第一分散模拟站可进一步:当所述至少一个新形成的三维多边形网格再次进入所述第一视场时加载来自所述存储模块的所述至少一个新形成的三维多边形网格。
所述集中处理单元可通过以下步骤进行更新:将至少一个新文件存储在所述存储模块的文件系统中,以对应于所述至少一个新形成的三维多边形网格;以及将至少一个事件存储在所述存储模块的数据库中,以对应于所述计算所述至少一个新形成的三维多边形网格的完成。
所述存储模块可包括文件系统,所述集中处理单元可通过进一步执行以下步骤而执行所述计算:进一步定位所述文件系统中对应于所述三维多边形网格的内容文件的最近版本;验证是否存在与所述内容文件相关联的至少一个事务标记文件,所述至少一个事务标记指示出所述内容文件当前是否经受进行中的事务;以及当所述内容文件当前未经受进行中的事务时,集中处理单元可进一步将所述内容文件复制到所述文件系统上的一个新的内容文件中;通过所述至少一个新形成的三维多边形网格更新所述新的内容文件,且所述新的内容文件的名称与所述最近版本相比反映出较新版本;更新所述至少一个事务标记文件。
当所述内容文件当前经受(subject to)进行中的事务时,所述集中处理单元可进一步用于:等待,直到所述至少一个事务标记文件指示出进行中的事务完成;创建新的开始事务标记文件,且所述新的开始事务标记文件的名称与所述进行中的事务之后的所述内容文件的名称相比反映出较新版本;通过所述至少一个新形成的三维多边形网格更新所述新的内容文件,所述新的内容文件的名称反映出与所述开始事务文件相同的版本;以及创建新的结束事务标记文件,所述结束事务标记文件的名称反映出与所述开始事务标记文件相同的版本。
所述存储模块可包括文件系统,所述集中处理单元可进一步:当接收到所述虚拟冲击的所述坐标之后且当更新之前,接收所述三维多边形网格上的第二虚拟冲击的坐标;定位所述文件系统中对应于所述三维多边形网格的内容文件的最近版本;创建第一开始事务标记文件,所述第一开始事务标记文件的名称反映出与所述最近版本相比的第一新版本;创建第一新内容文件,其具有从所述虚拟冲击计算的所述至少一个新形成的三维多边形网格,所述第一新内容文件的名称反映出所述第一新版本;创建第一结束事务标记文件,所述第一结束事务标记文件的名称反映出与所述第一开始事务标记文件相同的版本;创建第二开始事务标记文件,所述第二开始事务标记文件的名称反映出与所述第一新版本相比的第二新版本;创建第二新内容文件,其具有从所述第二虚拟冲击计算的所述至少一个新形成的三维多边形网格,所述第二新内容文件的名称反映出所述第二新版本;以及创建第二结束事务标记文件,所述第二结束事务标记文件的名称反映出与所述第二开始事务标记文件相同的版本。
附图说明
通过以下的结合附图的详细描述,本发明的进一步的特征和示例性优点将变得显见,其中:
图1是根据本发明教示的示例性计算机系统的逻辑展示;
图2是根据本发明第一组实施例的第一示例性渲染方法的流程图;
图3是根据本发明第二组实施例的第二示例性渲染方法的流程图;
图4是根据本发明第二组实施例的第三示例性渲染方法的流程图;
图5是根据本发明第三组实施例的示例性数据更新方法的流程图;
图6A、6B、6C、6D、6E在下文中一起被称为图6,是根据本发明第一组实施例的示例性渲染方法的示例性的视觉和逻辑展示;以及
图7A、7B、7C、7D、7E在下文中一起被称为图7,是根据本发明第二组实施例的示例性渲染方法的示例性的视觉展示。
具体实施方式
现在参见附图,其中图1显示出根据本发明教示的示例性计算机系统1200的逻辑展示。图1还显示出可用于本发明特定实施例中的光学网络1300、另外的计算机系统1200A…G、和集中计算机系统1500的逻辑展示。计算机系统1200包括处理器模块1230和存储器模块1220。显示装置设置有计算机系统(1100A)和/或连通于计算机系统(1100B),这两种解决方案均被称为1100。在图1的示例中,显示装置1100B可经由专用端口(例如经由逻辑链路1102)或者通过网络1300(例如经由逻辑链路1104)连通于计算机系统1200。显示装置1100可包括至少一个物理显示单元,还可包括一种或多种技术(例如阴极射线管(CRT)、液晶显示(LCD)屏、或投影仪、任意将图像投射到屏、镜和/或显示表面等的设备)的多个显示单元。存储模块可设置有计算机系统(1400A)和/或连通于计算机系统(1400B),这两种解决方案在描述中均被称为1400。存储装置模块1400A和/或1400B可表现出一种或多种逻辑或物理以及本地或远程的硬盘驱动器(HDD)(或其阵列)。存储装置模块1400可以进一步表现出本地或远程的数据库,所述数据库可供计算机系统1200通过标准化或专有的接口访问。计算机系统1200在特定实施例中可包括网络接口模块1210和设备模拟模块1250。处理器模块可进一步包括或者可显示在逻辑上包括:图像生成器模块1232和模拟计算模块1234。图像生成器模块1232还可包括一个或多个专用图形处理单元(未示出)。
网络接口模块1210(例如通过一个或多个其接口,如1212,1214,1216)可用于本发明的应用环境中以连通于一个或多个其它计算机系统1200A…G、集中计算机系统1500、显示装置1100B(例如在以太网上显示数据)和/或存储模块1400B(例如用于存储和/或加载计算机模拟模型)。经由网络接口模块1210的通讯可经由另外的网络节点(例如,一个或多个网络中枢、网络开关、网络路由器、防火墙等等)通过网络1300进行或者直接进行(例如节点对节点电缆)。所述一个或多个接口可使用不同协议和物理介质(例如在双绞电缆上的局域网(LAN)、无线LAN、在电缆、光纤、蜂窝网络等上的广域网(WAN)、城域网(MAN),等等)。
计算机系统1200可被用作模拟站(例如训练装置),用于包括计算机生成环境的计算机模拟。计算机系统1200可用作单独的模拟系统。计算机系统1200也可以与集中计算机系统1500一起使用以提供计算机模拟。例如,集中计算机系统1500可被称为模拟引擎,并可提供计算机模拟的整体模拟管理,而计算机系统1200可分散于集中计算机系统1500并可提供用户专用模拟管理。计算机模拟的模拟管理的示例包括:处理模拟宽泛事件、模拟事件离线处理、计算机生成环境预处理,等等。用户专用模拟管理的示例包括:考虑视场、用户位置的情况下生成图像(例如使用一个或多个图像生成模块1232)、使用模拟计算模块1234在运行时处理模拟事件(例如视场内的事件)、处理来自模拟设备的输入、通过模拟设备和/或反馈装置(设备振动、用户和/或整个系统的物理运动,等等)使用模拟计算模块1234和设备模拟模块1250提供反馈。
在示例性实施例(其中计算机模拟至少涉及计算机系统1200和集中计算机系统1500)中,计算机系统1200和集中计算机系统1500之间的通讯可按照不同方式处理,这取决于不同的架构选择。例如,系统1200和1500可在单个计算机系统(单计算机系统的虚拟机,单计算机系统上执行的单个计算机程序的独立线程)内使用分布处理(distributedprocessing)而在逻辑上区别。因而可在单个计算机内部保持通讯。不过,在大多数实施例中,系统1200和1500使用在至少两个计算机系统上(例如在具有其自身专用处理器的不同系统上)的分布处理而在逻辑上区别。因而通讯可典型地在系统间进行。
在示例性实施例中,计算机模拟涉及集中计算机系统1500和计算机系统1200(并可能涉及另外的计算机系统1200A…G),可在运行时使用模拟网络(例如被铺设在网络1300上)以交换信息(例如涉及事件的模拟信息)。例如,关联于计算机系统1200的运载工具运动和涉及计算机系统1200与计算机生成环境相互作用的事件,可通过模拟网络从计算机系统1200共享。类似地,模拟宽泛事件(simulation-wide event)(例如涉及对计算机生成环境的持续(persistent)修改、修改后的模拟天气,等等)可通过模拟网络从集中计算机系统1500共享。此外,存储模块1400(例如网络数据库系统)能够供计算机模拟中涉及的所有计算机系统访问,可用于存储对于渲染计算机生成环境而言必要的数据(例如计算机生成环境的每个三维多边形网格的数据,等等)。在一些实施例中,仅从集中计算机系统1500更新存储模块1400,计算机系统1200、12000A…G仅从存储模块1400加载数据。
在第一组示例性实施例中,本发明的目标在于:改进在计算机模拟过程中考虑动态事件且同时考虑到物质资源预期似然性/合理性和使用性时的方式。在计算机模拟中的动态事件的示例是:在计算机模拟的计算机生成环境内的给定地点处的爆炸、冲击(例如来自惰性抛射体)、或爆炸冲击(例如来自火箭或导弹)。这样的动态事件可对计算机模拟中表现的结构形成损坏。所述损坏对动态事件的启动用户而言应是可见的(例如在显示上渲染)。在一些实施例中,损坏在计算机模拟的集中模拟引擎中是持续的,也可以对分散于集中模拟引擎的其它计算机模拟方(如果存在的话)是可见的。在第一组示例性实施例中,本发明试图支持渲染在美学上有吸引力的图像,其(若非现实的)至少似然地/合理地表现出可通过动态事件导致的损坏。当然,本领域技术人员将易于理解,所渲染的在美学上有吸引力的图像是主观的,且取决于形成必要视觉纹理/质感(texture)而进行的美术工作的质量。本发明虽然支持适合渲染视觉质感,但并不意味着改进不佳的美术工作。
在第二组示例性实施例中,本发明的目标在于:改进在计算机模拟过程中在考虑到物质资源预期似然性/合理性和使用性时表现三维多边形网格的方式。例如,一个或多个三维多边形网格可呈现非现实的(unrealistic)形状(例如应崩塌的断开部件或者不平衡的形状,等等)。基于考虑锚定点(anchor point)(例如在其环境(例如模拟的基底)中的三维网格连接部)而构建的多边形网格的逻辑表现(例如连接性图线),去除(例如从用户视线中消失或崩塌)多边形网格的一些渲染(render)面。例如,断开部件可被识别为从多边形网格的锚定部分断开,而不平衡形状可基于质心和在不平衡形状与多边形网格其余部分之间的定位短链路(located short link)而识别。所述非消失和/或崩塌可在加载多边形网格时进行,从而例如确保所述模拟显示出开始时的可信的结构。所述的消失和/或崩塌也可结合计算机模拟中的动态事件进行(例如,如先前在第一组实施例中所述)。非现实形状可从模拟中消失或者可转变为残渣(例如,烟或其它对所述消失加以掩盖的效果、从所述形状到残渣的动画、坠落结构的动画、和/或所述形状瞬间转变为残渣(例如通过烟或其它效果掩盖),等等)。
在第三组实施例中,本发明的目标在于:改进动态事件在计算机模拟过程中在至少两个计算机模拟站与集中处理单元(例如中心模拟引擎单元)间共享的方式。多边形网格上的动态事件通过第一计算机模拟站处理为一个或多个新形成的三维多边形网格。相同多边形网格上的相同动态事件也由集中处理单元独立于第一计算机模拟站而处理(例如并行地和/或按照非实时处理方式)为新形成的三维多边形网格。通过集中处理单元进行的非实时处理(non-real time processing)可涉及与通过第一计算机处境系统进行的处理很相同的数学操作,不过也可以涉及至少一种更复杂的操作而形成愈加现实的新形成的三维多边形网格。集中处理单元然后持续更新所述新形成的三维多边形网格至存储模块1400中,其中所有相关分散模拟站能够访问存储模块1400。在一些实施例中,当第二动态事件发生在所述多边形网格和/或新形成的三维多边形网格(例如来自第二计算机模拟站)上时,集中处理单元可使用表现不同相关多边形网格的各个文件的版本管理,以确保正确完成操作(例如使用事务标记文件)。
本领域技术人员将易于理解:来自第一、第二、第三组实施例的全部或者部分特征可在一起实施。
例如,在一些实施例中,一旦动态事件被处理且损坏增强图像被渲染,则随后的多边形网格从集中单元或者模拟引擎持续存储,不同的模拟站(或训练装置)可然后似然地/合理地与随后的三维多边形网格相互作用。例如,损坏的围栏应被去除其一些或所有几何形状以允许坦克通过。
虽然目的在于使损坏增强图像至少在运行时被渲染(即,尽可能是无缝隙的或者从用户视角看是几乎瞬时的),不过在一些实施例中,可以在特定时间中使用另外的特别效果,直到损坏增强图像被渲染(例如动画爆炸和灰尘)。特别效果应设置有低延迟(例如在几百毫秒的量级)以使效果似然/合理。
在本发明的应用环境中,运行时的执行对应于在计算机模拟过程中执行的操作,可具有从用户视角的对计算机模拟感知特质(perceived quality)的冲击。在运行时执行的操作因而典型地需要满足特定的性能限制,所述性能限制可以根据例如最大时间、最大帧数、和/或处理循环数而表达。例如,在帧率为每秒60帧的模拟中,预期在5至10帧内进行的修改将对用户无缝显现。
在一些实施例中,可以撤销涉及一个或多个动态事件的损坏。
计算机模拟可以例如用于训练目的和/或用于演示来自历史数据(例如来自飞机、火车等的事件记录装置(例如黑匣))的场景。计算机模拟可基于场景(例如其中驱动计算机生成环境的模拟程序包括一种或多种事件、运动、声音,等等)。
计算机模拟可为运载工具计算机模拟(例如单个运载工具或同时多个运载工具),用于渲染图像的视场可通过模拟运载工具内用户的位置限定(例如,不同视场用于不同模拟运载工具)。本发明不限于模拟运载工具的类型,其可为陆上的(轿车、坦克等)、地下的、空中的(例如飞机、航天飞机等)、漂浮的(例如船),等等。视场或视点可通过模拟运载工具的受训者的位置(例如与模拟交互)和/或模拟运载工具的操作者的位置(例如,仅确定模拟程序或者也参与模拟)限定。
计算机生成环境包括至少一个三维(3D)多边形网格。典型地,多个三维多边形网格显现在计算机生成环境中。在计算机模拟中在多边形网格与模拟运载工具之间以及在多边形网格与动态事件之间预期发生相互作用,例如触发对其损坏。动态事件典型地从计算机模拟的用户启动。
图2例示出根据第一组实施例的用于在计算机模拟中渲染损坏增强图像的示例性方法2000。计算机模拟包括计算机生成环境。方法2000可以利用结构实体几何(CSG)操作,通过使其一个或多个部分从计算机生成环境中去除而从接近于拟修改冲击的另一修改三维多边形网格去除一体积(volume)。
在一些实施例中,方法2000可包括:在开始计算机模拟之前,识别形成非水密性(non-watertight)网格的一个或多个开放的多边形网格(例如使用处理器模块1230)。识别开放的多边形网格可以通过计算多边形网格的连接性图线或其它逻辑表示(logicalrepresentation)而进行。方法2000还可包括:对于每个识别出的开放的多边形网格,尝试封闭对应的多边形网格,并在不可行时将对应的多边形网格标记为不可损坏。
方法2000包括:在计算机模拟过程中,确定具有一有效半径的虚拟冲击在计算机生成环境中的坐标2010(例如使用处理器模块1230)。在涉及多于一个计算机系统的一些实施例中,虚拟冲击事件可在模拟网络上共享。
作为一个选项,方法2000可进一步包括:在确定坐标2010之后渲染至少一个临时图像以进行显示,包括在所确定的坐标之处或其近处的分心的视觉效果,至少直到所述至少一个损坏增强图像的渲染被执行(例如使用处理器模块1230)。在一些实施例中,分心的视觉效果可实际上与虚拟冲击的坐标断开联系,但仍提供分心的效果(例如在考虑到视场的情况下渲染二维图像)。
方法2000然后接着在考虑有效半径的情况下在所述坐标处识别2020受到虚拟冲击影响的多个第一渲染面(例如三角形)(例如使用处理器模块1230)。多个第一渲染面与计算机生成环境的至少一个三维多边形网格关联。有效半径可在计算机生成环境中固定,或者可通过被执行以触发虚拟冲击的操作(例如所使用炸弹/导弹的类型等等)和/或通过计算机生成环境的至少一个三维多边形网格(多边形的模拟材料,为混凝土、砂石等等)进行确定。
在识别2020多个第一渲染面之前,方法2000还可以包括:验证所述至少一个三维多边形网格没有被标记为不可损坏。当三维多边形网格被标记为不可损坏时,损坏增强渲染图像可被限制为前述的分心的效果。
此后,方法2000包括:将多个第一渲染面修剪2030为在考虑到有效半径情况下计算出的数学定义减影(subtraction)形状(例如使用处理器模块1230)。数学定义减影形状可为通过单个线性数学公式表达的球形或椭球形。所述球形或椭球形对于简化修剪2030操作而言可为优选的,修剪2030操作预期在运行时执行。不过,根据在计算机模拟中涉及的计算机系统1200的预期处理能力,可使用更复杂的数学定义减影形状(其可进一步包括随机性),例如用以获得更现实的效果。可选地,方法2000可进一步包括:在修剪2030之前确定所述至少一个三维多边形网格中的每个形成水密性网格。作为另一选项,方法2000可进一步包括:在识别2020被影响的多个第一渲染三角形之后,缓存所述多个第一渲染三角形,由此允许撤销(undo)修剪2030。修剪2030渲染面可通过对于拟去除渲染面指示出无效(null)(或最小)表面而进行。使用这种技术可通过限制新形成的三维多边形网格的计算复杂度而简化整个进程。
方法2000然后包括:通过被修剪的多个第一渲染面而计算2040多个第二渲染面(例如使用处理器模块1230),由此限定出至少一个新形成的三维多边形网格;使用视觉纹理渲染2050至少一个损坏增强图像以进行显示,包括多个第二渲染面的子集,所述子集通过计算机模拟的视场进行确定(例如使用图像生成模块1232)。
可选地,方法2000可在运行时通过分散处理单元(其与计算机生成环境的模拟运载工具相关联)在有限量的毫秒内进行。在此示例性实施例中,视场通过模拟运载工具内的用户的位置限定。仍在此示例性实施例中,方法2000可进一步包括:在集中处理单元,通过所确定的坐标计算所述至少一个新形成的三维多边形网格。在集中处理单元的计算可独立于分散处理单元进行(可选地并行进行)并按非实时优先处理(in non-real-timepriority processing)方式进行。集中处理单元也可持续(persistently)更新或存储所述至少一个新形成的三维多边形网格至存储模块1400中。
在集中处理单元计算所述至少一个新形成的三维多边形网格,可选地也可使用比在分散处理单元使用的数学定义减影形状更加复杂的第二数学定义减影形状进行。
计算机模拟可选地可涉及第二分散处理单元,其与计算机生成环境的第二模拟运载工具相关联,具有通过第二模拟运载工具内的第二用户位置限定的第二视场。方法2000可然后还进一步包括:在计算机模拟的第二分散处理单元,将通过集中处理单元计算出的所述至少一个新形成的三维多边形网格数据从存储模块1400加载(例如当三维多边形网格进入第二视场时)。
方法2000还可以进一步包括:在第二分散处理单元,接收虚拟冲击的坐标(例如从模拟网络);在运行时并行于所述(第一)分散处理单元而计算所述至少一个新形成的三维多边形网格。无论本地计算还是从存储模块1400加载,所述至少一个新形成的三维多边形网格通过第二分散处理单元渲染,其类似于所述(第一)分散处理单元。本领域技术人员应理解:随后的虚拟冲击可以从第二分散处理单元启动,第二分散处理单元可然后自己执行示例性方法2000。
方法2000可以进一步包括:在计算2040多个第二渲染面之后,检测所述至少一个新形成的三维多边形网格以进行循环(for loops)。
渲染2050多个第二渲染面还可以进一步包括:在多个第二渲染面的子集(对应于先前在至少所述多个第一渲染面中所表现的表面)上施加损坏纹理、从所述坐标向外褪色和超过有效半径。
图3例示出根据第二组实施例的用于在计算机模拟中渲染三维(3D)多边形网格的似然图像的示例性方法3000。计算机模拟预期会具有在其计算机生成环境内有效的虚拟重力。存储器模块1220可用于存储计算机模拟的多个三维多边形网格的相应表示。拟存储的多个三维多边形网格可通过至少计算机模拟的视场确定,例如使得所确定的多个三维多边形可用于在运行时处理。
三维多边形网格可使用多个顶点限定(例如在来自存储器模块1220的表示中),从而提供多个渲染面(例如三角形)。方法3000包括:通过三维多边形网格的多个顶点中的至少三个确定3010锚定点(例如使用处理器模块1230)。锚定点指示出在三维多边形网格与基底(ground)之间或在三维多边形网格与一个或多个同位/搭配(collocated)三维多边形网格之间的连接,其最终连接到基底。
对于三维多边形网格的每一个渲染面而言,方法3000接着确定3030是否存在朝向锚定点的路径,当不存在连接时从三维多边形网格中去除这一个渲染面而形成更新的三维多边形网格(例如使用处理器模块1230)。去除渲染面可以通过对拟去除渲染面指示出无效(null)(或最小)表面而进行。使用这种技术可通过限制新形成的三维多边形网格的计算复杂度而简化整个进程。
更新的三维多边形网格(包括多个渲染面的子集)然后使用视觉纹理被渲染,以进行显示3040(例如使用图像生成模块1232)。所述子集的渲染面通过计算机模拟的视场确定。
在一些实施例中,方法3000还可包括:在去除渲染面3030之前,确定(未示出)是否存在从渲染面到基底的直接连接。当存在直接基底连接时,渲染面被封闭(参见第一组实施例),又一个新形成的三维多边形网格被计算出并且进一步被渲染。
方法3000可包括:通过表现三维多边形网格的多个渲染面计算3020连接性图线(例如为三维多边形网格的表示)(例如使用处理器模块1230)。当连接性图线用作三维多边形网格的表示时,确定不存在朝向锚定点的路径涉及:从连接性图线中去除所述一个渲染面而形成表现更新的三维多边形网格的更新的连接性图线。
例如,专用处理单元可与计算机生成环境的模拟运载工具相关联,视场可通过模拟运载工具内的用户的位置限定。方法3000用于渲染似然图像,可在运行时通过分散处理单元在有限量的毫秒内进行(例如使用处理器模块1230)。
方法3000还可包括:在运行时,以多个新的渲染面更换连接性图线中的受冲击渲染面。所述更换在确定是否存在朝向锚定点的路径之前且在对三维多边形网格的虚拟冲击(影响在所述多个渲染面中的至少一个受冲击渲染面(参见第一组实施例))之后进行。
在渲染三维多边形网格之前,方法3000还可包括:在运行时,通过与三维多边形网格的一部分相关联的多个顶点确定该部分的质心;考虑到模拟中施加的虚拟重力而确定三维多边形网格的所述部分从锚定点的视角来看是不稳定的(或不平衡的)。然后,可在不稳定部分上识别出所述多个渲染面中的不稳定渲染面的子集,不稳定的渲染面可然后从连接性图线中去除而形成更新的三维多边形网格。
图4例示出根据第二组实施例的用于在计算机模拟中渲染三维(3D)多边形网格的似然图像的另一示例性方法4000。计算机模拟预期会具有在其计算机生成环境内有效的虚拟重力。存储器模块1220可用于存储计算机模拟的多个三维多边形网格的相应表示。拟存储的多个三维多边形网格可通过至少计算机模拟的视场确定,例如使得所确定的多个三维多边形可用于在运行时处理。
三维多边形网格可使用多个顶点限定(例如在来自存储器模块1220的表示中),从而提供多个渲染面(例如三角形)。方法4000包括:通过三维多边形网格的多个顶点中的至少三个确定4010锚定点(例如使用处理器模块1230)。锚定点指示出在三维多边形网格与基底(ground)之间或在三维多边形网格与一个或多个同位(collocated)三维多边形网格之间的连接,其最终连接到基底。
方法4000然后接着在运行时通过与三维多边形网格一部分相关联的多个顶点确定4020该部分的质心(例如使用处理器模块1230),并仍在运行时考虑到模拟中施加的虚拟重力而确定三维多边形网格的所述部分从锚定点的视角来看是不稳定的。不稳定部分上的多个渲染面中的不稳定渲染面的子集可然后被去除4040而形成更新的三维多边形网格。此后,例如使用图像生成模块1232,方法4000接着使用视觉纹理渲染4050更新的三维多边形网格,以进行显示,包括多个渲染面的子集,所述子集通过计算机模拟的视场而确定。
无论是在方法3000还是在方法4000的应用环境中,新的渲染面也可以被附加(例如附加到连接性图线)以封闭更新的三维多边形网格。
三维多边形网格可具有与其相关联的不同属性,例如虚拟拉伸强度和虚拟密度值。当去除不稳定渲染面4040时,虚拟拉伸强度和虚拟密度值可用于计算不稳定部分的支点(fulcrum)区域与质心相比的虚拟崩塌压力。所述去除可以仅在虚拟崩塌压力超过虚拟拉伸强度时发生。
确定所述部分是不稳定的4030,可选地可通过定位三维多边形网格上虚拟冲击周围的窄链路(窄链路)而进行。窄链路可限定所述部分与三维多边形网格的连接到锚定点的另一部分之间的支点区域。在此可确定:当窄链路上方的结构不连接到锚定点而且质心不处于支点区域上方时,所述部分是不稳定的4030。定位三维多边形网格中的窄链路,可通过以下方式进行:在虚拟冲击的周围,识别多个顶点中的最低孤立顶点,直到窄链路被定位或者直到获得基于性能的阈值(例如时间极限、帧数极限、处理循环数,等等),始于最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定窄链路为所述部分与连接到锚定点的另一部分之间的最小支点区域。
方法3000和/或方法4000从更新的三维多边形网格(例如从对应的连接性图线)去除相关的渲染面,也可在集中处理单元处独立于分散处理单元且按非实时优先处理方式进行,例如使用相同或更复杂的进程。相关数据可然后存储在存储模块1400上,使得分散处理单元能够加载相关数据(例如当更新的三维多边形网格进入或再次进入其相应视场时)
图5例示出根据第三组实施例的用于在计算机模拟中更新损坏增强图像的示例性方法5000。计算机模拟包括计算机生成环境。计算机模拟与能够供其至少第一分散模拟站、第二分散模拟站(例如在用户与模拟相互作用之处)和集中处理单元(例如模拟引擎)访问的存储模块1400相关联。方法5000包括:在第一分散模拟站,在计算机模拟过程中,确定5010计算机生成环境的三维(3D)多边形网格上的虚拟冲击的坐标,和在运行时通过虚拟冲击计算5020至少一个新形成的三维多边形网格,而不更新存储模块1400。然后,至少一个新形成的三维多边形网格的至少一个损坏增强图像被渲染5030,用于从第一分散模拟站的视场显示。方法5000还包括:在集中处理单元,从第一分散模拟站接收5040虚拟冲击的坐标;和在第二分散模拟站,接收虚拟冲击的坐标。集中处理单元然后通过确定的坐标而独立地且按照非实时优先处理方式计算5050新形成的三维多边形网格,并通过所述至少一个新形成的三维多边形网格而持续地(persistently)更新与所述模拟相关联的存储模块1400。
第一分散模拟站可与计算机生成环境的第一模拟运载工具相关联。第一分散模拟站的第一视场可于是通过在第一模拟运载工具内的用户的位置限定。类似地,第二分散模拟站可与计算机生成环境的第二模拟运载工具相关联。第二分散模拟站的第二视场可于是通过在第二模拟运载工具内的用户的位置限定。
当在第二分散模拟站接收到虚拟冲击坐标时,第二分散模拟站可通过接收的坐标而计算所述至少一个新形成的三维多边形网格,其中所述计算在运行时并行于且独立于第一分散模拟站进行。
当所述至少一个新形成的三维多边形网格进入第二分散模拟站的第二视场时,计算机模拟的第二分散模拟站可以可替代地加载来自存储模块1400的所述至少一个新形成的三维多边形网格。
在集中处理单元计算5050所述至少一个新形成的三维多边形网格,可另外使用与第一分散模拟站的计算5020相比更复杂的数学操作并行地进行。当所述至少一个新形成的三维多边形网格再次进入第一视场时,第一分散模拟站也可加载(或者再次加载)来自存储模块1400的所述至少一个新形成的三维多边形网格。
方法5000可进一步涉及:更新5060,其通过以下步骤进行:将至少一个新文件存储在存储模块1400的文件系统中,以对应于所述至少一个新形成的三维多边形网格;以及将至少一个事件存储在存储模块1400的数据库中,以对应于所述计算所述至少一个新形成的三维多边形网格的完成。
集中处理单元可包括存储模块1400以实现文件系统,在集中处理单元处的计算5050可进一步包括:定位所述文件系统中对应于所述三维多边形网格的内容文件的最近版本;验证是否存在与所述内容文件相关联的至少一个事务标记(transaction marker)文件,所述事务标记文件指示出所述内容文件当前是否经受(be subject to)进行中的(ongoing)事务;当所述内容文件当前未经受进行中的事务时,所述计算5050可以通过以下方式进行:将所述内容文件复制到所述文件系统上的一新的内容文件中;通过新形成的三维多边形网格更新所述新的内容文件;更新所述事务标记文件;所述新的内容文件的名称与所述最近版本相比反映出较新版本。当所述内容文件当前经受进行中的事务时,方法5000可进一步包括:等待,直到所述至少一个事务标记文件指示出进行中的事务完成;然后创建新的开始事务标记文件;通过所述新形成的三维多边形网格更新所述新的内容文件;所述新的开始事务标记文件的名称与所述进行中的事务之后的所述内容文件的名称相比可反映出较新版本;而所述新的内容文件的名称可反映出与所述开始事务文件相同的版本;方法5000然后接着创建新的结束事务标记文件,所述结束事务标记文件的名称反映出与所述开始事务标记文件相同的版本。
集中处理单元包括存储模块1400以实现文件系统,所述方法进一步包括:当从第一分散模拟站接收到5040所述虚拟冲击的所述坐标之后而且当从所述集中处理单元更新5060之前,在所述集中处理单元从第二分散模拟站接收所述三维多边形网格上的第二虚拟冲击的坐标;方法5000可然后进一步包括:定位所述文件系统中对应于所述三维多边形网格的内容文件的最近版本;创建第一开始事务标记文件,所述第一开始事务标记文件的名称反映出与所述最近版本相比的第一新版本;以及创建第一新内容文件,其具有通过虚拟冲击计算出的新形成的三维多边形网格,所述第一新内容文件的名称反映出所述第一新版本;然后创建第一结束事务标记文件,所述第一结束事务标记文件的名称反映出与所述第一开始事务标记文件相同的版本;在此示例中,方法5000然后接着:创建第二开始事务标记文件,所述第二开始事务标记文件的名称反映出与所述第一新版本相比的第二新版本;创建第二新内容文件,其具有通过所述第二虚拟冲击计算的新形成的三维多边形网格,所述第二新内容文件的名称反映出所述第二新版本;然后创建第二结束事务标记文件,所述第二结束事务标记文件的名称反映出与所述第二开始事务标记文件相同的版本;然后,在第二结束事务标记文件创建之后,集中处理单元将新形成的三维多边形网格传播5060到至少第一分散模拟站和第二分散模拟站。
示例性方法2000在一个实施例中可通过图6的示例被例示。图6A至6E显示出根据本发明第一组实施例的示例性渲染方法的视觉表示。在图6A中,示例性的三维多边形网格6000使用渲染面A至T图示,面U和V隐约地(implicitly)显现而相应地面对M和N。为了清楚起见,所示多边形网格6000未显示B/C和S/Q之后的面。在图6的示例中,渲染面是三角形的。采用连接性图线6100或者连接性树的形式的逻辑表示可通过示例性多边形网格6000构建,如图6B中所示。当然,本领域技术人员应认识到,典型的模拟将会涉及多个三维多边形网格,多边形网格6000被选择以例示出本发明的教示。
连接性图线6100可在运行时计算,而模拟仍然进行(例如当新多边形网格在模拟过程中进入视场中时),不过计算可有利地在预处理阶段与可能受到本发明影响的任何多边形网格的其它连接性图线的计算一起进行。预处理阶段也可用于生成三维多边形网格的中空几何形状以及探测漂浮部分。连接性图线可存储在存储模块1400中,存储模块1400可为本地的(例如与渲染图像的处理器模块1230搭配的1400A)或者远程的1400B。
在连接性图线的计算过程中,多边形网格6000可被分析以确定是否其形成完全封闭的多边形网格(也被称为水密性网格)。在图6的示例中,没有底板(例如连接到D、F、G、V、I、N、O的底区部)。虽然典型地使用无底板的多边形网格以避免对用于例示给定三维多边形网格所需的多个不可见的渲染面进行渲染(例如节省三角形),不过所述修剪2030和计算2050的用意是对于水密性网格进行。可增加一些几何形状以封闭多边形网格6000(例如增加渲染面(其不意味着是可见的)到现有多边形网格)。增加渲染面(如果需要)将在修剪2030和计算2050之前进行。虽然所述增加可在运行时进行,不过所述增加可能花费太多处理时间而不适合于对于至少似然/合理表现的损坏保持预期模拟视觉质量所允许的最大时间(或处理循环数)。因此,可能有利的是,当多边形网格6000被加载或者在加载多边形网格6000之前处于存储多边形网格6000的数据库中(例如在一种模拟模式中)时增加渲染面。
通过增加封闭几何形状,模拟中的大多数多边形网格(或三维形状)变为呈水密性。不过,可能存在例外情况,其中可进行各种进程以使其呈水密性。更特别地,一些网格具有附联(snap)到其上的二维部分,例如阳台斜坡(balcony ramp)、围栏、植物枝叶,等等。这些部分可被隔离并且通过虚拟冲击修剪。由于它们表现二维内容,因而不需要生成任何中空几何形状连接其修剪表面。
图6C显示出虚拟冲击6010,其在由渲染面G和H限定的面上具有坐标,其具有有效半径r1(2020)。虚拟损坏6010在本示例中是数学定义减影形状,其被限定为具有有效半径r1的球。连接性图线6100可用于识别受到冲击6010影响的渲染面(在图6的示例中为三角形)。在图6的示例中,三角形E、F、G、H、K、L、U、V受到冲击6010影响。为了清楚起见,U和V将在下文的论述中进一步论述,不过应理解,它们也类似地受到影响。在第一时间,受到影响的三角形可从连接性树中去除(例如,实际上去除,或者其表面可崩塌至无效或最小值)。在一些实施例中,被去除的渲染面可被保留(例如,原有的连接性图线或其一部分单独存储在存储器中)以能够撤销(undo)损坏6010。
受到影响的渲染面在此后针对由r1限定的球进行修剪2030。在修剪2030之后,计算2050新的渲染面而从多边形网格6000中限定两个新的多边形网格6020、6200,如图6D中所示。为了例示目的,图6E显示出多边形网格6200脱离于多边形网格6020。所述新的渲染面可附加到连接性图线。新的渲染面也可在连接性图线中以不同方式标记(例如时间戳和/或特别指示)(例如,能够对其更快速定位以随后施加特别的损坏掩饰/纹理、撤销所述进程,等等)。
参见图6的示例,修剪2030三角形和计算2050新的多边形网格6020、6200,可通过创建各线性区段进行,所述线性区段匹配于来自于由r1限定的球与多边形网格6000的相交部的圆弧。线性区段可然后连接以形成新的三角形,并可进行验证以定位封闭路径(环)。一旦新的三角形已按所述体积被修剪,则任何可能已生成的剩余三维孔通过以下方式封闭:通过由曲形切除部形成的所有封闭路径修剪所述体积自身而形成新的三角形。识别封闭路径可通过考虑由相邻三角形共享的边缘而进行。从初始三角形修剪路径开始,验证相邻物的存在,如果存在则必须必要地为具有公共相交点的路径。重复所述进程,直到初始三角形到达或者存在丧失的相邻物。这样具有的示例性优点是:允许通过未被设计为损坏的现存内容执行所述进程。
这可能有助于分辨封闭路径的延伸(winding)。这在所述冲击越过前面和后面的多边形网格(这在其影响物体的整个宽度或用于具有模型内部的建筑物时发生)时是需要的。封闭路径的延伸通过其相交的三角形相对于从冲击内部的固定点穿过路径中心的线路的延伸而限定。顺时针延伸路径修剪所有其外的部分,而逆时针延伸路径修剪所有其内的部分。所述线性区段的取向可为重要的,取决于三角形延伸情况(其可在创建时被保留)。剩余的是冲击内部,其必须被限制以隐藏建筑物非模型内部。
每个封闭路径嵌(tessellate)有另外的顶点,所述另外的顶点被加到通过封闭路径界定的区域中以使曲线平滑。所有这种几何形状可对所有损坏而分组,这是因为其纹理内容不取决于受冲击的几何形状。获得的三角形通过进程纹理2050(其可进一步独立于冲击类型)而绘制(map with)。为了嵌处理(tessellate)封闭路径,一旦网格生成,则其附联到被修剪的水密性网格以在需要时生成新的水密性网格(其可被进一步损坏)。
示例性方法3000在一个实施例中可关于图7的示例被例示。图6B和图7A至7E显示出根据本发明第二组实施例的示例性方法3000的示例性视觉表示。在图7A中,示例性的三维多边形网格7000使用渲染面A至T图示,面U和V隐约地(implicitly)显现而相应地面对M和N。为了清楚起见,所示多边形网格7000未显示B/C和S/Q之后的面。在图7的示例中,渲染面是三角形的。所示多边形网格7000经受(subject to)直观上下重力。当然,不同的模拟(或单个模拟内的模拟环境)可具有不同规则,包括可变的重力(例如在更相关于游戏的环境中)。在图7的示例中,锚定点可被确定3010为与B/C之后的另一多边形网格(未示出)的连接部,多边形网格7000由此悬置。
图6B的逻辑表示通过示例性多边形网格7000采用连接性图线6100或连接性树的形式,也在初始应用于示例性多边形网格7000。连接性图线可通过多个渲染面在运行时和/或在加载时计算(3020)。如前所述,本领域技术人员应认识到,典型的模拟将会涉及多个三维多边形网格,多边形网格7000被选择以例示出本发明的教示。
图7B显示出虚拟冲击7010,其在渲染面A上具有坐标,其具有有效半径r2(2020)。虚拟损坏7010在本示例中是数学定义减影形状,其被限定为具有有效半径r2的球。连接性图线6100可用于识别受到冲击7010影响的渲染面(在图7的示例中为三角形)。在图7C中,仅图示出直接受冲击7010影响的三角形(即,A,B,C,D,E,F,H,J,K,L和T)。
新的渲染面通过冲击7010计算出,并限定多边形网格7000中的三个新的多边形网格7020、7200、7300,如图7D中所示。为了例示目的,图7D显示出多边形网格7200、7300脱离于多边形网格7020。所述新的渲染面可附加到连接性图线而形成更新的连接性图线(未示出)。新的渲染面也可以在连接性图线中以不同方式标记(例如时间戳和/或特别指示)(例如,能够对其更快速定位以随后施加特别的损坏掩饰/纹理、撤销所述进程,等等)。在图7的示例中,多边形网格7000以类似于图6的示例的方式被去除。
在图7的示例中,遍历(traversal)更新的连接性图线将允许确定来自多边形网格7300的三角形不具有到达先前限定锚定点X的连接性路径。来自多边形网格7300的渲染面在此同时或随后从连接性图线中去除至多边形网格7200。从用户视角来看,结果形成的多边形网格7200应以似然/合理方式显现。如前所述,可触发特别效果以掩盖多边形网格7200和/或7300的去除。
处理器模块1230可表现为单处理器,其具有一个或多个处理器芯或者处理器阵列(每个处理器阵列包括一个或多个处理器芯)。存储器模块1220可包括各种类型的存储器(不同标准化或类型的随机访问存储器(RAM)模块、存储卡、只读存储器(ROM)模块、可编程ROM,等等)。网络接口模块1210表现出至少一个物理接口,可用于与其它网络节点通讯。可使网络接口模块1210通过一个或多个逻辑接口对计算机系统1200的其它模块可见。网络接口模块1210的物理网络接口和/或逻辑网络接口所使用的实际协议栈不影响本发明的教示。可用于本发明应用环境中的处理器模块1230、存储器模块1220、网络接口模块1210和存储装置模块1500的变例对于本领域技术人员而言应是易于显见的。同样地,即使在本发明示例的描述的全文中没有明确提到存储器模块1220和/或处理器模块1230,本领域技术人员应易于认识到:这样的模块与计算机系统1200的其它模块相结合使用以执行例程以及与本发明相关的创新步骤。
方法通常被认为是引起所希望结果的自恰的一系列步骤。这些步骤需要对物理量的物理操控。通常(即使并非必要地),这些量采用电或磁/电磁信号的形式,能够被存储、传送、组合、比较、和以其它方式操控。有时候便利的是(主要出于通用的原因),将这些信号称为比特、值、参数、物品、元素/元件、物体、符号、特征、项、数字,或类似物。不过应注意,所有这些项和类似项将与适合的物理量相关联,且仅为应用于这些量的便利标签。已提出对本发明的描述,目的在于例示,而用意不在于穷举或限制所公开的实施例。多种修改和变化对于本领域普通技术人员而言将是显见的。各实施例被选择以阐释本发明的原理及其实际应用,并能够使本领域普通技术人员理解本发明,以实施具有不同修改的不同实施例而可适合于其它设想应用。
Claims (19)
1.一种用于渲染3D多边形网格(7000)的似然图像的方法,所述渲染在包括交互式计算机生成环境的交互式计算机模拟中进行,所述方法包括:
在使用提供多个渲染面的多个顶点而限定的所述3D多边形网格(7000)上,从所述多个顶点中的至少三个顶点确定(3010)所述3D多边形网格(7000)上的锚定点,其中所述锚定点限定所述3D多边形网格(7000)与所述交互式计算机生成环境的模拟基底之间的连接;
针对所述3D多边形网格(7000)的所述多个渲染面中的每个渲染面,确定(3030)在所述3D多边形网格(7000)上是否存在朝向所述3D多边形网格上的所述锚定点的路径,当不存在所述路径时,通过指示针对该渲染面的无效或最小表面值,从所述3D多边形网格(7000)中去除该渲染面而形成更新的3D多边形网格(7000);以及
通过处理器模块(1230)的图像生成器(1232),使用视觉纹理来渲染(3040)包括所述多个渲染面的子集的所述更新的3D多边形网格(7020)以进行显示,所述子集从所述交互式计算机模拟的视场被确定。
2.根据权利要求1所述的用于渲染3D多边形网格(7000)的似然图像的方法,进一步包括:
从所述多个渲染面计算(3020)表现所述3D多边形网格(7000)的连接性图线,其中,当不存在朝向所述3D多边形网格(7000)上的所述锚定点的所述路径时,去除该渲染面是通过从所述连接性图线中去除该渲染面从而形成表现出所述更新的3D多边形网格(7020)的更新的连接性图线而进行的。
3.根据权利要求1或2所述的用于渲染3D多边形网格(7000)的似然图像的方法,通过分散处理单元在有限量的毫秒内进行,所述分散处理单元包括所述图像生成器(1232),其中,分散处理单元与所述交互式计算机生成环境的模拟运载工具相关联,其中,所述视场由所述模拟运载工具内的用户的位置限定。
4.根据权利要求3所述的用于渲染3D多边形网格(7000)的似然图像的方法,其中,与所述模拟运载工具相关联的所述分散处理单元是训练装置的一部分,所述训练装置包括:考虑所述用户位置而定位的至少一个显示屏(1100)、和所述模拟运载工具的至少一个模拟设备(1250)。
5.根据权利要求3所述的用于渲染3D多边形网格(7000)的似然图像的方法,进一步包括:
在确定是否存在朝向所述3D多边形网格上的所述锚定点的所述路径之前、且在对所述3D多边形网格的虚拟冲击影响在所述多个渲染面中至少一个受冲击渲染面之后,以多个新的渲染面更换所述至少一个受冲击渲染面。
6.根据权利要求3所述的用于渲染3D多边形网格(7000)的似然图像的方法,进一步包括:
在集中处理单元处,独立于所述分散处理单元且按照非实时优先处理方式,去除该渲染面而形成所述更新的3D多边形网格(7020)。
7.根据权利要求1、2、4、5、6中任一项所述的用于渲染3D多边形网格(7000)的似然图像的方法,进一步包括:
从与所述3D多边形网格(7000)的一部分相关联的所述多个顶点确定(4020)所述部分的质心;
考虑所述模拟中施加的虚拟重力而确定(4030)所述3D多边形网格(7000)的所述部分从所述3D多边形网格(7000)上的所述锚定点的视角来看是不稳定的;
将不稳定渲染面的子集从所述不稳定部分上的所述多个渲染面去除(4040)而形成更新的3D多边形网格,同时从所述多个渲染面保留稳定渲染面的子集不变而形成所述更新的3D多边形网格,其中去除(4040)通过指示针对所述不稳定渲染面的无效或最小表面值而进行;以及
通过处理器模块(1230)的图像生成器(1232),使用视觉纹理来渲染包括所述多个渲染面的子集的所述更新的3D多边形网格以进行显示,所述子集从所述交互式计算机模拟的视场被确定。
8.根据权利要求7所述的用于渲染3D多边形网格(7000)的似然图像的方法,其中,确定(4030)所述部分是不稳定的通过以下步骤进行:
定位所述3D多边形网格上的虚拟冲击周围的窄链路,所述虚拟冲击影响所述多个渲染面中的至少一个受冲击渲染面,所述窄链路限定所述部分与所述3D多边形网格的连接到所述3D多边形网格上的所述锚定点的第二部分之间的支点区域;
当在所述窄链路上方的结构不连接到所述3D多边形网格上的所述锚定点并且所述质心不处于所述支点区域上方时,确定所述部分是不稳定的。
9.根据权利要求8所述的用于渲染3D多边形网格(7000)的 似然图像的方法,进一步包括:
在所述3D多边形网格上的虚拟冲击影响所述多个渲染面中的至少一个受冲击渲染面之后,以多个新的渲染面更换所述至少一个受冲击渲染面,其中,定位所述3D多边形网格中的所述窄链路通过以下方式进行:
在所述虚拟冲击周围识别所述多个顶点中的最低孤立顶点;
直到所述窄链路被定位或者直到到达基于性能的阈值,始于所述最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定所述窄链路为所述部分与连接到所述3D多边形网格上的所述锚定点的所述第二部分之间的最小支点区域。
10.一种用于渲染3D多边形网格的似然图像的计算机系统,所述渲染在交互式计算机模拟中进行,所述计算机系统包括:
存储器模块(1220),用于存储所述交互式计算机模拟的多个3D多边形网格的相应表示,所述多个3D多边形网格至少从所述交互式计算机模拟的视场被确定;
处理器模块(1230),用于:
在使用提供多个渲染面的多个顶点而限定的所述多个3D多边形网格的3D多边形网格上,从所述多个顶点中的至少三个顶点确定所述3D多边形网格(7000)上的锚定点,其中所述锚定点限定所述3D多边形网格(7000)与所述交互式计算机生成环境的模拟基底之间的连接;
针对所述3D多边形网格(7000)的所述多个渲染面中的每个渲染面,确定在所述3D多边形网格(7000)上是否存在朝向所述3D多边形网格(7000)上的所述锚定点的路径,当不存在所述路径时,通过指示针对该渲染面的无效或最小表面值,从所述3D多边形网格(7000)中去除该渲染面而形成更新的3D多边形网格(7020);以及
将所述更新的3D多边形网格(7020)的表示存储到所述存储器模块(1220)中;
所述处理器模块(1230)包括图像生成器(1232),用于:
使用视觉纹理来渲染包括所述多个渲染面的子集的所述更新的3D多边形网格(7020)以进行显示,所述子集从所述交互式计算机模拟的所述视场被确定。
11.根据权利要求10所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)进一步用于:从所述多个渲染面计算连接性图线作为所述3D多边形网格(7000)的表示,其中,当不存在朝向所述3D多边形网格(7000)上的所述锚定点的所述路径时,所述处理器模块(1230)通过从所述连接性图线中去除该渲染面而去除该渲染面,从而形成表现所述更新的3D多边形网格(7020)的更新的连接性图线。
12.根据权利要求11所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)包括:分散处理单元,所述分散处理单元与所述交互式计算机生成环境的模拟运载工具相关联,其中所述视场由所述模拟运载工具内的用户的位置限定。
13.根据权利要求12所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述计算机系统进一步包括:第一训练装置,其与所述分散处理单元相关联,所述第一训练装置包括:考虑所述用户位置而定位的至少一个显示屏、和所述模拟运载工具的至少一个模拟设备。
14.根据权利要求11至13中任一项所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)进一步用于:在确定是否存在朝向所述3D多边形网格(7000)上的所述锚定点的所述路径之前、且在对所述3D多边形网格(7000)的虚拟冲击影响所述多个渲染面中的至少一个受冲击渲染面之后,以多个新的渲染面更换所述至少一个受冲击渲染面。
15.根据权利要求14所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)进一步用于,在渲染所述更新的3D多边形网格(7020)之前:
从与所述更新的3D多边形网格(7020)的一部分相关联的多个顶点确定所述部分的质心;
考虑所述模拟中施加的虚拟重力而确定所述更新的3D多边形网格(7020)的所述部分从所述3D多边形网格(7020)上的所述锚定点的视角来看是不稳定的;
在所述不稳定部分上识别所述多个渲染面中的不稳定渲染面的子集;
将所述不稳定渲染面从所述更新的3D多边形网格(7020)中去除。
16.根据权利要求15所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)在识别所述不稳定渲染面时,进一步附加新的渲染面到所述更新的连接性图线以封闭所述更新的3D多边形网格(7020)。
17.根据权利要求15或16所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述更新的3D多边形网格(7020)具有:相关联的虚拟拉伸强度和虚拟密度值,其中,所述处理器模块(1230)进一步用于:仅在虚拟崩塌压力超过所述虚拟拉伸强度时去除所述不稳定渲染面,所述虚拟崩塌压力由所述不稳定部分的支点区域与所述质心相比的所述虚拟密度值而计算出。
18.根据权利要求15或16所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)通过以下方式确定所述部分是不稳定的:
定位所述更新的3D多边形网格(7020)上的所述虚拟冲击周围的窄链路,其中,所述窄链路限定所述部分与所述更新的3D多边形网格(7020)的连接到所述3D多边形网格(7000)上的所述锚定点的第二部分之间的支点区域;
当所述窄链路上方的结构不连接到所述3D多边形网格(7000)上的所述锚定点且所述质心不处于所述支点区域上方时,确定所述部分是不稳定的。
19.根据权利要求18所述的用于渲染3D多边形网格的似然图像的计算机系统,其中,所述处理器模块(1230)通过以下方式定位所述3D多边形网格(7000)中的所述窄链路:
在所述虚拟冲击周围,识别所述多个顶点中的最低孤立顶点;
直到所述窄链路被定位或者直到到达基于性能的阈值,始于所述最低孤立顶点处的水平面并考虑其最近的相邻顶点,确定所述窄链路为所述部分与连接到所述3D多边形网格(7000)上的所述锚定点的所述第二部分之间的最小支点区域。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CA2014/000717 WO2016049729A1 (en) | 2014-09-30 | 2014-09-30 | Rendering plausible images of 3d polygon meshes |
US14/501,141 US9911241B2 (en) | 2014-09-30 | 2014-09-30 | Rendering plausible images of 3D polygon meshes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107004299A CN107004299A (zh) | 2017-08-01 |
CN107004299B true CN107004299B (zh) | 2021-02-02 |
Family
ID=55585030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480083705.2A Active CN107004299B (zh) | 2014-09-30 | 2014-09-30 | 渲染三维多边形网格的似然图像 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9911241B2 (zh) |
EP (1) | EP3201880B1 (zh) |
CN (1) | CN107004299B (zh) |
CA (1) | CA2963154C (zh) |
WO (1) | WO2016049729A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016209671B4 (de) * | 2016-06-02 | 2022-01-05 | Adidas Ag | Vorrichtung zum Designen eines Musters für einen tragbaren Gegenstand |
US11244502B2 (en) * | 2017-11-29 | 2022-02-08 | Adobe Inc. | Generating 3D structures using genetic programming to satisfy functional and geometric constraints |
US11403810B2 (en) * | 2018-11-02 | 2022-08-02 | Facebook Technologies, Llc. | Display engine for post-rendering processing |
CN109925716B (zh) * | 2019-04-12 | 2020-04-21 | 网易(杭州)网络有限公司 | 地形切割的顶点重建方法、装置、处理器及终端 |
JP2022553771A (ja) * | 2019-10-28 | 2022-12-26 | マジック リープ, インコーポレイテッド | 仮想オブジェクト提示のための縁検出および平滑化 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576469A (zh) * | 2009-09-25 | 2012-07-11 | 兰得马克制图公司 | 在三维的地下环境中绘制图形对象 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5886702A (en) * | 1996-10-16 | 1999-03-23 | Real-Time Geometry Corporation | System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities |
US6254394B1 (en) | 1997-12-10 | 2001-07-03 | Cubic Defense Systems, Inc. | Area weapons effect simulation system and method |
FR2781907B1 (fr) * | 1998-08-03 | 2000-09-29 | France Telecom | Procede de codage d'un maillage source tenant compte des discontinuites, et applications correspondantes |
US6271856B1 (en) * | 1998-11-19 | 2001-08-07 | Paraform, Inc. | Creating and modifying parameterizations of surfaces |
US6195625B1 (en) * | 1999-02-26 | 2001-02-27 | Engineering Dynamics Corporation | Method for simulating collisions |
AU2003209885A1 (en) | 2002-09-20 | 2004-04-08 | Mks Inc. | Version control system for software development |
EP1683103A2 (en) | 2003-10-14 | 2006-07-26 | Kimberley Hanke | System for manipulating three-dimensional images |
EP1957929A2 (en) * | 2005-11-28 | 2008-08-20 | L3 Communications Corp | Distributed physics based training system and methods |
US7999830B1 (en) * | 2006-04-07 | 2011-08-16 | Dell Products L.P. | Rendering changed portions of composited images |
US7613738B2 (en) | 2007-01-16 | 2009-11-03 | Microsoft Corporation | FAT directory structure for use in transaction safe file system |
JP4986642B2 (ja) * | 2007-01-31 | 2012-07-25 | キヤノン株式会社 | 解析装置及びその制御方法 |
US8405661B2 (en) | 2007-02-23 | 2013-03-26 | International Business Machines Corporation | Method for modeling and animating object trajectories in three-dimensional space |
JP2009042811A (ja) * | 2007-08-06 | 2009-02-26 | Univ Of Tokyo | 3次元形状展開装置、3次元形状展開方法、および3次元形状展開用プログラム |
US8856088B2 (en) | 2008-04-01 | 2014-10-07 | Microsoft Corporation | Application-managed file versioning |
US8368705B2 (en) * | 2008-07-16 | 2013-02-05 | Google Inc. | Web-based graphics rendering system |
WO2010043969A1 (en) * | 2008-10-14 | 2010-04-22 | Cct International, Inc. | System and method for hybrid solid and surface modeling for computer-aided design environments |
US8681145B2 (en) | 2009-03-20 | 2014-03-25 | Disney Enterprises, Inc. | Attribute transfer between computer models including identifying isomorphic regions in polygonal meshes |
CN102111529B (zh) * | 2009-12-25 | 2012-08-29 | 北大方正集团有限公司 | 一种对渐变图元对象进行陷印处理的方法及装置 |
WO2011132205A2 (en) | 2010-04-21 | 2011-10-27 | Core Projects & Technologies Ltd. | Process for creating earthquake disaster simulation in virtual reality environment |
WO2012037129A2 (en) * | 2010-09-13 | 2012-03-22 | Barry Lynn Jenkins | System and method of delivering and controlling streaming interactive media comprising predetermined packets of geometric, texture, lighting and other data which are rendered on a reciving device |
US9195965B2 (en) | 2011-05-06 | 2015-11-24 | David H. Sitrick | Systems and methods providing collaborating among a plurality of users each at a respective computing appliance, and providing storage in respective data layers of respective user data, provided responsive to a respective user input, and utilizing event processing of event content stored in the data layers |
US20130016099A1 (en) * | 2011-07-13 | 2013-01-17 | 2XL Games, Inc. | Digital Rendering Method for Environmental Simulation |
-
2014
- 2014-09-30 WO PCT/CA2014/000717 patent/WO2016049729A1/en active Application Filing
- 2014-09-30 US US14/501,141 patent/US9911241B2/en active Active
- 2014-09-30 EP EP14903184.1A patent/EP3201880B1/en active Active
- 2014-09-30 CA CA2963154A patent/CA2963154C/en active Active
- 2014-09-30 CN CN201480083705.2A patent/CN107004299B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576469A (zh) * | 2009-09-25 | 2012-07-11 | 兰得马克制图公司 | 在三维的地下环境中绘制图形对象 |
Non-Patent Citations (1)
Title |
---|
"Robust real-time deformation of incompressible surface meshes";R. Diziol .etc;《Proceedings of the 2011 ACM SIGGRAPH/Eurographics Symposium on Computer Animation》;20110805;第237-246页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016049729A1 (en) | 2016-04-07 |
EP3201880A1 (en) | 2017-08-09 |
US20160093111A1 (en) | 2016-03-31 |
US9911241B2 (en) | 2018-03-06 |
EP3201880A4 (en) | 2018-03-07 |
CN107004299A (zh) | 2017-08-01 |
EP3201880B1 (en) | 2021-11-10 |
CA2963154A1 (en) | 2016-04-07 |
CA2963154C (en) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107004299B (zh) | 渲染三维多边形网格的似然图像 | |
CN107004304B (zh) | 在计算机模拟中渲染损坏增强图像 | |
US20080231628A1 (en) | Utilizing Ray Tracing for Enhanced Artificial Intelligence Path-Finding | |
CN107735815B (zh) | 简化具有冗余背部的小网格组件 | |
US20080231627A1 (en) | Using Ray Tracing to Enhance Artificial Intelligence Character Behavior | |
US11335058B2 (en) | Spatial partitioning for graphics rendering | |
US9123160B1 (en) | Concurrent mesh generation in a computer simulation | |
CN106056660A (zh) | 一种移动终端模拟粒子系统的方法 | |
CN103679792B (zh) | 一种三维模型的渲染方法和系统 | |
CN107111896B (zh) | 更新损坏增强三维多边形网格 | |
US9754423B2 (en) | System and method for rendering virtual contaminants | |
US9754408B2 (en) | System and method for modeling virtual contaminants | |
CN109116990A (zh) | 一种移动控制的方法、装置、设备及计算机可读存储介质 | |
Hempe et al. | Efficient real-time generation and rendering of interactive grass and shrubs for large sceneries | |
CN117982891A (zh) | 虚拟场景中的路径生成方法、装置、电子设备及存储介质 | |
Penick | VFire: Virtual fire in realistic environments. A framework for wildfire visualization in immersive environments |
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 |