专利名称:用于计算机辅助设计环境的混合实体和表面建模的系统和方法
技术领域:
本发明概括地涉及计算机辅助设计(CAD)领域,并且更具体地涉及对环境和对象建模的方法。
背景技术:
在过去几十年中,在模型获得和计算机辅助设计(CAD)方面取得了显著的进展。 这些技术使得能够处理包含有复杂CAD环境的复杂几何模型的大量数据集。这些大量数据集一般要求大的存储容量以存储数据集。处理这样的大量模型对软件和系统开发商提出了挑战。这对于高交互式3D应用,比如需要提供互动性、低延迟性和实时处理的视觉模拟和虚拟环境尤其适用。在CAD项目的后期设计阶段中存在的一个明显问题是,要求在交互模式中立即查看数据的收集。有待下载的数据量通常很大并且通常被转变成三角形网格,该三角形网格被优化用于处理图形处理单元(GPU)。这一技术将产生描绘这些对象所需的信息,但是会丢失原始拓扑设计特征和各种性能。由于三角形是图形流水线的单纯形,以前的系统和方法集中于三角化网格建模。 这一方法去除了原始CAD设计的性能。例如,原始的CAD设计中的对象比其三角化网格模型的对应物更具可编辑性和可分析性。因此,存在对CAD设计建模的需要,目的是减少高可编辑性和可分析性结构所需的存储容量,同时也能够快速和有效地描绘环境。
发明内容
一个实施例提供了一种包含带处理器的电子仪器的计算机辅助设计(CAD)系统。 所述处理器包括第一模块,其配置为在虚拟环境中使用两类对象来表现计算机辅助设计对象。两类对象中的第一类包括对用于渲染的对象的形状进行限定的多个截面。每个限定用于渲染的对象的形状的截面被可配置地限定为是复合表面、复合多边形、多边形或者三角形或四边形阵列中的一种。多个截面中的一个单个截面可以为复合表面、复合多边形、多边形或者三角形或四边形阵列中的任何一种。第一类对象包括用于限定多个截面的共同特征的信息和用于相互连接多个截面中的至少两个相邻截面的信息。两类对象中的第二类对象存储引用虚拟环境中的公共对象的信息以及用于公共对象的至少一个截面的一个或更多转换。第二模块被配置为以三维渲染计算机辅助设计对象。一个实施例提供了一种在电子仪器上渲染三维形状的方法。这一方法包括选择计算机辅助设计对象。计算机辅助设计对象包括两类对象。两类对象中的第一类对象包括限定用于渲染的对象的形状的多个截面。每个限定用于渲染的对象的形状的截面被可配置地限定为是复合表面、复合多边形、多边形或者三角形或四边形阵列中的一种。多个截面中的一个单个截面可以为复合表面、复合多边形、多边形或者三角形或四边形阵列中的任何一种。第一类对象包括用于限定多个截面的共同特征的信息和用于相互连接多个截面中的至少两个相邻截面的信息。第二类对象包括引用虚拟环境中的公共对象的信息以及用于公共对象的至少一个截面的一个或更多转换。这一方法还包括在虚拟环境中描绘两类对象中的一类对象的至少一个截面。另一个实施例提供了一种包括带处理器的电子仪器的计算机辅助设计系统。所述处理器包括用于应用两类对象在虚拟环境中对计算机辅助设计对象进行渲染的装置。第一类对象包括对用于渲染的对象的形状进行限定的多个截面进行建模的装置,每个对用于渲染的对象的形状进行限定的截面被可配置地限定为是复合表面、复合多边形、多边形或者三角形或四边形阵列中的一种。多个截面中的一个单个截面可以为复合表面、复合多边形、 多边形或者三角形或四边形阵列中的任何一种。第一类对象还包括用于存储限定多个截面的共同特征的信息的装置。第一类对象还包括用于存储相互连接多个截面中的至少两个相邻截面的信息的装置。第二类对象包括存储引用虚拟环境中的公共对象的信息的装置。第二类对象还包括用于在公共对象的至少一个截面上实施至少一个转换的装置。所述处理器还包括用于以三维渲染计算机辅助设计对象的装置。为了概括本发明及其较现有技术的优势的目的,本发明的特定目标和优势已在上文中描述并将在下文被进一步描述。当然可以理解,没有必要根据本发明的任何特定实施例实现所有这些目的或优势。因此,例如,本领域技术人员会认同,可以以取得或优化此处所教导的一个优势或者一组优势的方式来具现化或实施本发明,而不必取得像此处可能教导或建议的其它目的或优势。所有这些实施例旨在包含在此处公开的本发明的保护范围之内。对于本领域技术人员来讲,从下面参考所附附图的优选实施例的详细说明中,本发明的这些和其它实施例会显而易见,而本发明并不局限于所公开的任何特定的优选实施例。
图1是示出了在载入时超模型的内存应用峰值与实体建模的内存应用峰值的比较的图表。图2A是使用传统CAD工具的设计的模型。图2B示出了如标准后设计浏览器中所见的图2A中的模型。图2C示出了在超模型构造中图2A的模型。图3是示出了代表3D对象的结构的实施例的框图。图4包括图4A-4C,是示出了用于渲染图3中结构所代表的3D对象的方法的实施例的流程图。图5是示出了绘图元件程序的实施例的流程图。图6是示出了渲染超网格对象的实施例的流程图。图7是示出了渲染超再用对象的实施例的流程图。
具体实施例下面的详细说明指的是本发明的某一特定实施例。但是本发明可以多种不同的方式实施。很显然,这里所述的方面能够以宽泛的多种形式实施,而且这里公开的任何特定的结构、功能或者其两者仅具有代表性。基于此处的教导,本领域技术人员应能理解,这里所公开的某一个方面可以独立于任何其它的方面实施,并且这些方面种的两个或者更多个可
6以多种方式结合。例如,可以使用任何数量的此处所提的方面实现一种装置或实践一种方法。另外,还可以使用其它结构、功能或者除一个或更多个此处所提的方面之外的结构和功能来实现这种装置或实践这种方法。纖计算机辅助设计(CAD)用于对象的设计和制图中。它既是基于视觉的也是基于符号的交流方法。实体建模是使用比如圆柱体、球体等实体对象表现形式的组合来成型3D 对象的建模方法。表面建模是使用表面形状的表现形式来成型3D对象的建模方法。实体建模器(modeler)通常指的是基于参数特征的建模器。这些建模器既可以是构造实体几何 (CSG)建模器,也可以是边界表示法(B-REP)建模器,其允许使用者参考对象的特征而不是对象的底图。特征是涉及高阶CAD实体的术语。例如,给定一个带孔的3D壁,所述孔被认为是壁内的一个特征,用以反映为了创建它所用的制造程序,而不是指借助数学术语圆柱体的孔。基于参数特征的建模器追踪对象的状态以维持关于建造模型的信息,并使用限制几何实体之间联系的表述。这允许使用者进行任何状态的变形并基于这些变化再次生成模型的边界表现形式。表面建模指的是使用几何实体和单形以描绘对象的表面,而不需要关于特征或者可构造性程序的信息。一些方面,这里提供了作为实体建模和表面建模之间的混合方案的方法和系统。 所述方法和系统指的是反映对象的结构和对对象的渲染。这里,混合方案指的是“超模型”。 超模型结合了实体建模的建模特征和规则以及表面建模提供的性能。这里,解释了超模型的性能以及超模型的动态结构和动态渲染。另外,解释了与超模型(hyper model) 一起使用的间隔细节层次(DLOD)方案。在某些实施例中,反映虚拟环境的超模型结构通过这里描述的程序渲染。这些结构可以存储在计算机系统的存储器内。该程序可以通过处理器执行,该处理器具有访问计算机系统的存储内存的路径。然后,该处理器可以渲染该虚拟环境并将其展示给使用者。例如,模型数据可以转换成适于以比如OpenGL的标准图表API渲染的格式。接着该渲染工具对虚拟环境进行渲染并使用图形硬件将其发送到显示器。传统结构使用三角网格(triangulation)存储与模型有关的几何数据。三角网格数据使得硬件提速,这是因为在任何模型中,所有多边形都将会被转化为三角形以供图形卡渲染。尽管三角网格数据提高了渲染的速度,它也增加了存储每个三角形所需的内存量。 超模型提供了存储数据结构的有效存储方法,同时也提供了灵活性和快速的渲染速度。超模型是实体建模和表面建模之间的混合解决方案。超模型由一个或者更多的超组件对象构成。这些超组件对象提供了实体模型的性能,并具有表面模型和细分模型的效能。超组件对象具有许多典型的实体建模器设计的特征,但是不需要生成轨迹(creation track)ο实体的生成轨迹是存储实体对象的主要方法之一。典型地,生成轨迹包括操作序列,以及拉伸、旋转、扫掠和布尔操作的组合。如果所看到的最终对象是最后阶段的实体对象,则存储这一指令序列和相关参数是耗费内存的。而且,最终对象的计算需要大量的加工,甚至需要使用最先进的技术。实体创建的最终结果具有一系列有利于更加详细了解CAD 对象和对其加工的性能。这些性能是使实体建模成为CAD产业中用于建模和加工的常用工具的原因。
这些性能中的两个是可编辑性和准确性。可编辑性包括能够从生成轨迹的任何阶段中改变最终形状的性能。准确性产生于对生成序列而不是最终顶点的存储,已知该最终顶点是不准确的浮动值。由于最终结果通常被转换为产品,准确性对于CAD对象是有利的。超模型通过允许在需要编辑时对对象进行编辑而保存两者的性能。例如,墙上的窗户孔可以与墙分开编辑。墙和孔在超模型中被认为是分离的实体,其通过超渲染器组合。 由于对象的连通性被保存在组件和元件水平上,在超模型中保持了准确性。连通性的值以相关的方式(参数方式)存储。超组件对象存储足够的信息以渲染与原始图画类似的对象形状。与基于实体建模的对象和基于表面建模的对象相比,其需要使用很少内存,从这个意义上来讲,超组件对象是有效的。例如,相对于实体建模,超模型内存的使用是以使用为两者设置的同一模型的相同环境和系统为基准的。图1示出了载入同一模型形状时,两种方法的内存使用峰值的比较。两个连续的条形中的每一个代表所用的一个模型。y_轴代表的是以兆字节(MB)计量的内存使用峰值。深色的柱形代表实体建模,浅色的条形代表使用超模型。在这个例子中, 下载同一对象时,超模型最多使用实体建模器所需的内存的一半。而实体模型保存生成程序的所有状态和轨迹,这一过程耗费内存并达到其生成的峰值。基于实体建模的对象含有很多关于对象的特征和构造程序以及历史记录的数据。 基于表面建模的对象含有很多三角网格和多边形,其已知为需要大量的内存用于存储对象,但是使用当代硬件的性能时能获得高性能。超组件对象去除了实体建模表现形式的历史记录和复杂性两方面。同时,超组件对象也去除了表面建模的稠密、高级多边形计算。超模型允许以比如简化的形状和半-B-REP外观的不同形状和模式来表现单个对象。半-B-REP外观来源于超模型结构和基本的超组件对象结构。通过渲染工具降低对象的分辨率水平并减少所需的细节来简化形状,以提高性能。超模型中的任一对象可被缩小至单个多边形的表现形式,其代表限定对象的中轴。超模型也提供给使用者类似于传统CAD设计的、但具有优化的视觉形式的界面。因此,超模型提供改变对象的细节的能力,其超过了将模型作为三角形集合被存储时所获得的能力。而且,超模型具有比传统CAD对象更少的内存占用。模型性能CAD设计具有许多特征。CAD设计的特征产生于建造不同形状的模型中所用的绘制方法。例如,如图2A所示,使用用于轮廓形状的单个轮廓线设计建筑物的地面。这一轮廓描述了将在建造阶段制造的水泥板。如图2C所示,使用此处所描述的设计方法和系统保存地板的形状。这使使用者能够从视觉上辨别水泥板。此处所描述的方法和系统也具有将该多边形切割成较小形状的性能。例如,水泥板可以分割成较小的形状。这些较小的形状可以示出能够作为水泥板总体构造的一部分而被制造的单独的形状。将结构划分为较小的形状可能是必需的,因为在大多数情况下,整个地板的建造不可能作为单个步骤。当使用如图2B所示的三角网格数据建模时,失去了将多边形分成较小形状的性能。这是因为原始轮廓难以辨认。另外,此处所述的方法和系统将诸如孔的特征保存在数据水平上,因此可以通过改变该特征的位置形象地做出修改和注释。此处所述的方法和系统与传统CAD设计的相似性允许系统不仅作为模型浏览器使用,也可以作为交互式导览仪使用。
图2A是使用传统CAD工具设计的地板的模型。所有对象作为B-REPS和凹面对象成型。凹面多边形被定义为带有一个或更多的大于180°的内角的多边形。相反,凸面多边形被定义为每个内角都小于180°并且每条在两个顶点之间的线段都保持在多边形的内部或者边界上的多边形。在超模型中,凹面多边形作为单个的“超多边形”成型。超模型的超多边形允许表现凹面和凸面多边形两者以及它们之间的任意一个组合,包括诸如孔的特征。超多边形也能够表现非平面多边形。超多边形描述高阶多边形,其结合了所有简单多边形的形状,比如三角形和复杂多边形。复杂多边形包括凹面多边形、非平面多边形和带有诸如孔的特征的多边形。超模型也能够成型复杂表面,包括非平面表面和包含诸如孔的其他对象的特征。由此,超模型可以表现对象的截面,以将其作为复杂表面、复杂多边形、多边形或者三角形或四边形渲染。典型地,表现为多边形的截面以多边形阵列的方式表现。另外, 每一截面能够成为复杂表面、复杂多边形、多边形或三角形或四边形阵列中的任意一种。在图2B中,在标准的后设计浏览器中可见相同的模型,在该浏览器中所有对象已被细分为三角形。图2A中的诸如具有例如孔这样实体特征的对象和凹面多边形这样的细节在图2B中找不到。在图2C中,可见作为超模型结构的同一模型。在这一模型中,保留了孔和大的多边形。超模型保留CAD模型的重要特征,同时减少存储模型所需的内存空间。在一些实施例中,超模型包括实体对象的所有建模性能和细分表面的所有特征。超模型在一定程度上是基于特征的。在超模型中所表现的特征是建立在所表现对象的基础上的,并且这样的特征是否会从超模型的表现形式中受益。这一决定在从CSG或 B-REP数据中生成超模型时作出。也能查看超模型的许多细节层次。细节层次包括组件边界框、元件边界框、元件简化形式(中轴)和组件简化形式(基础形状)。组件边界框是由最大和最小坐标限定的高阶轴对准边界框(AABB),或者是步进式边界框(MBB),其在对象上限定最小拟合框。元件边界框也是AABB或MBB,其限定组件中所含对象的边界框。元件简化形式用于描述对象的低阶细节,其能够像对象的中轴一样简单。组件的简化形状是被结合在对象中的元件的简化的形状的总和。这些细节层级由DLOD方案控制。DLOD将限定在场景中查看对象所需的细节层次,其取决于对象距离视点有多远。另外,超模型识别设计环境中的相似对象,并将它们作为彼此的复制品而表现。相似的对象作为单个对象存储。然后使用一组仿射变换来转换该对象以复制每一相似对象。 因此,与在内存中存储每个对象的全部结构相反,单个存储的对象能够表现环境中的许多对象。可以使用诸如按比例缩放、旋转和转换这样的变形。超模型和对应的超渲染工具被设计为提供存储、渲染和操作虚拟对象的混合解决方案,同时允许对象既可转换成实体模型也可转换为表面模型。互用性上文所描述的结构允许从传统CAD设计中所用的标准的构造实体几何(CSG)数据中生成超模型。CSG数据被读取和映射至超模型的合适对象。该对象被映射至组件,该组件的元件在环境和结构上是不同的。依据原始设计和输入的数据,进口服务器将处理这些数据并将对象转换为超元件。如果输入的对象仅是三角形设计,则进行一对一的映射,因为三角形是不包括其它特征的单形对象。然后将该对象构造为超模型。超模型包括将CSG对象转换为超模型表现形式而产生的所有实体,但是不包括如前面所描述的CSG对象的所有特征。然后,超生成器合并对象元件并生成中轴且标记表面,这些表面包括具有比如孔这样特征的表现对象的一部分或一侧的表面,以及非平面的表面。接着,超级生成器将同一类型和具有同样特征的元件组合在一起,以节约内存。这些特征包括xyz-坐标共享、形状共享和特征形状共享。在超模型生成后,超生成器器对输入起作用。如果同一组件的元件共享顶点坐标,这些坐标可以被组合并且被对象引用。如果同一组件的两个元件具有像重生孔这样的相似特征,则该特征可被存储并由带有仿射变换信息的两个元件引用。由于对于两个对象,形状数据是一次性而不是分两次转移到图形内存,这一选择降低了内存使用并有助于加速对象的渲染。映射程序也是可逆的。超模型对象可被转换回到CSG数据。CSG数据可以作为每个元件的特征被连接以允许这样的可逆性。通过限定对象的原始模型文件和超模型中的 CAD单元ID而获得这一连接。在某些实施例中,也允许由传统CAD设计中使用的B-REP数据生成超模型。这一性能能够以本质上类似于CSG数据的互用性能的方式实现。在某些实施例中,超模型也允许三角网格数据一对一映射至超模型中的对象,因为三角多边形被作为简单多边形处理。在这些实施例中,超模型的表面被三角网格化。本领域熟练技术人员会理解,上文中没有被明确引用的实体建模和表面建模中使用的其它的数据表现形式也能够以本质上与生成上文描述的互用性能类似的方式与超模型接口。动态结构超模型使用动态结构存储对象。对象具有小的内存占用并且可以动态查看。可以通过其渲染形状、其近似形状、其中轴和/或其边界框查看对象。取决于其形状和性能,每个对象可具有表现该对象的低分辨率函数列表。例如,如果一个对象是一个管,其被赋予一个圆柱形形状和一条线的简化形状。一条线段的简化形状也是该实施例中对象的中轴。该简化形状通过渲染程序以渲染时间计算。对象是部分地基于其特征和轮廓的。通过减少轮廓的细节层级,渲染器产生形状的简化形式。可以通过省略原始轮廓上的一些顶点来实现这一细节的减少。在对可能具有很多对象的帧进行渲染的过程中,每个对象决定了其将基于查看模式、先前帧频和/或阻塞而绘制的表现形式。对于每一帧,渲染工具读取查看模式、先前帧频和/或产生于第一路径渲染回路的阻塞树。在某些实施例中,可选择地建立阻塞树。阻塞树是通过首先指定离视点最近的一组对象作为根对象和该场景的主要遮挡而建立的。然后树的“孩子”是通过距离根节点的距离函数和由渲染回路的第一路径中生成的像素数目获得的。在这一情况下像素数目是有用的,因为在3D场景中,当对象远离视点时,对象会显得小,其将产生比当其靠近时更低的像素数目。这一距离函数将场景划分成区域,且每个区域分配有树中的一个层级。每个查看模式要求不同的渲染状态并导致在渲染流水线上不同的载入层级。由使用者所选择的查看模式示出了渲染选项和类型,其包括完全阴影化、线框、阴影线框、隐藏线、简化形式和图解。这些查看模式要求不同的材料颜色和采光选项,其从总体上限定渲染状态。所绘制的对象的总体数量以所期望的帧频为基础。选择所绘制的对象的数量,以使得实际帧频近似接近于所期望的帧频。期望的帧频可以预先限定。阻塞树用于确定哪些对象不需要被渲染。在没有阻塞树的实施例中,渲染工具可以移除环境中不靠近视点的小的对象。所述视点是环境中的虚拟位置,从该位置使用者可查看环境中的对象。因此对象如从视点透视所看见的那样被渲染。超模型结构包括三个层次的等级。模型层级为根层级,其中,根据目前的要素和渲染工具的性能作出所有的渲染决定。在图4中更详细地演示了示例性的渲染工具。模型层级可包括计算机辅助设计对象,其可用于渲染虚拟环境中的形状。第二层级是组件层级。超模型包括一个或多个组件。这些组件可包括称为组件对象的对象。计算机辅助设计对象可包括组件对象。超模型根据组件相对于摄影机的相对位置、查看模式和待渲染的帧的截锥来设置组件中的组件渲染优先权。开始渲染时,可以从渲染工具中检索到这些选项和状态。 利用摄影机位置来设置场景光线并启动DL0D。截锥也设置DLOD界限。DLOD被衡量为像素数目、离开视点的距离和模型总体外观重要值的函数。对于总体模型外观参数的重要值确保了虚拟环境中从鸟的视野里可见到的对象的部分不会被隐藏。例如,如果虚拟环境中一个对象在鸟的视野里是可见的,但是从视点看是被阻塞的,使用总体模型外观参数的重要值来保存低的细节层级。这样允许可以从鸟的视野里以低的细节层级可见,即使从视点是不可见的。DLOD用于限定超模型的细节层级并确定以何种质量渲染超模型。例如,DLOD可用于设置组件边界框的细节层级。在另一个例子中,DLOD可用于设置组件简化形式的细节层级。比较这两个例子,带有组件边界框细节层级的对象可渲染比带有组件简化形式细节层级的对象更高的品质的对象。DLOD用于决定渲染对象所采用的形式。这方面的一个例子是渲染远离视点的管子。由于其远离视点,管子在景象中会显示为一条线。因此,绘制一条线就足以显示该模型的细节,这条线在此情况下等同于中轴。这个例子也对应于元件简化形式细节层级。在含有阻塞树的实施例中,截锥被用于设置含有对象的树的区域,该对象将被检测用于渲染。当前截锥外部的所有对象不被渲染。基于查看模式,选择所需的材料类型和每种材料的特征。组件层级是与使用者交互的最低层级。第三层级是对象层级。每个组件包括一个或更多对象。对象包含图表数据。在此处,这些对象也可以指元件或元件对象。依据在模型层级计算的要素,组件设置渲染的优先权和对每个对象使用的渲染类型。然后如图4所示,依据由组件设置的类型和所要求的质量,对象对自己进行渲染。对象层级如上文所讨论的,超模型以对象的层次结构为基础。超模型包括组件哈希(hash) 图,其中,当使用者与组件互动时,每个组件与其ID—起放置,作为组件检索的钥匙。每个组件具有超对象阵列。超对象是组件的元件的概要层级。两类超对象为超网格对象和超再用对象。超网格对象可以表现CSG对象。超再用对象表现一次成型然后在系统中被再次使用的特定对象。这些对象通过单元对象表现,该单元对象包括元件的几何数据和拓扑结构。 如果期望基于所存储的单元对象得到新形状,将一组仿射变换应用于所存储的单元形状和所单元化的几何数据,以创建形状。因此,超再用对象可以存储单元对象的ID,该ID表明单元对象、包含比例缩放、旋转和转化要素的转换矩阵以及元件位置。通过访问并转换单元对象并将以及定位对象来完成超再用对象的渲染。由于只有指向单元对象的指针存储在每个超再用对象中,可通过一个所存储的单元对象来表现多个对象,减少了存储所需的内存。例如,如果场景具有许多圆柱形,可存储单个的单元对象,且可为每个圆柱形创建超再用对象,该超再用对象表明了怎样渲染单元对象,以生成单独的圆柱形。图3是示出了用于表现3D对象的结构的实施例的框图。超模型管理器100规划超模型104存储在超模型哈希图102中。超模型104表现计算机辅助设计对象。超模型哈希图102的哈希函数可以是期望的任何函数,因为在多数情况下,数值的检索被认为是基本的。对于超模型104,普通的哈希函数是有用的,因为一般来说模型中的组件数量是事先已知的。超模型哈希图102为超模型104提供了存储和可访问性。超模型管理器100与应用于超模型的其它部分链接。该管理器传送由对超组件对象110的应用所进行的所有查询。超模型104是用于存储3D对象的动态结构。超模型104允许3D对象通过其被渲染的形状、近似形状或中轴和边界框而被查看到。在图3中更详细地描述了超模型10 的结构。超模型104的层级包括三个等级 模型层级、组件层级和对象层级。超模型l(Ma包括超模型边界框模块106和超组件对象 110的超组件哈希图108。超模型边界框模块106包括限定超模型10 范围的信息。超组件哈希图108允许存储和访问超组件对象110。超模型104包括一个或更多超组件对象110。超组件对象IlOa包括与色彩模块 112、可见性模块114、超组件边界框模块116和透明度模块118中的组件有关的信息。例如,可见性模块114可包括一组布尔对象值,其可被用于确定超组件对象110是否可见。例如,如果超组件对象110被挡住,则阻塞树能够在更新可见性模块114中的可见性信息。例如,超组件边界框模块116可包括用于限定超组件对象IlOa外部边界的信息。例如,透明度模块118可包括在零和一范围之间的浮动值,其中一是完全透明,而零是完全不透明。每个组件还包括存储超对象的超对象阵列120,每个超组件对象110包括一个或更多超对象阵列120。超对象阵列120可包括两类对象超网格对象122和超再用对象150。这些对象通常也可被称作元件对象。超网格对象122是存储在超对象阵列120中的超对象的一个例子。超网格对象122 包括超顶点对象阵列124、标准对象阵列126、取样类型模块128、超网格中轴模块130、超网格边界框模块132和超表面阵列134。超表面阵列134存储一个或更多超表面136。超顶点是用于限定含有空间坐标的顶点、唯一标识符以及与该顶点相邻的表面列表(ids)的对象。超表面136描绘表现对象的一部分或一侧的表面。取样类型模块128限定超网格对象 122的最小的简化形状,其可以是由整数值限定的边界框或中轴。取样类型模块1 可存储与上文所述的细节层级相关的信息。超表面136包括顶点IDs阵列138,标准ID模块140、表面类型模块142和表面孔阵列144。顶点IDs阵列138识别超表面136的顶点。标准ID模块140识别超表面136的法线。表面孔阵列144包括一个或更多超表面146。示例性的表面类型模块142包括多边形、复杂多边形(其可能包含孔)、表面(其可能包含孔)、三角形、四边形、四边形带和三角形带。超表面146包含在相关表面中,因为它们被认为是该表面的特征。但是本领域技术人员可理解,有一点是可能的表面孔阵列144指向未包含在相关表面中的超表面。因此,超网格对象122可表现作为复杂表面、复杂多边形、复杂多边形、多边形或者三角形或四边形阵列而渲染的对象的截面。一般地,表现为多边形的截面以多边形阵列的形式表现。而且,每个截面可以是复杂表面、复杂多边形、多边形或者三角形或四边形阵列中的任意一种。本领域技术人员会理解,在渲染对象时,只有包含复杂多边形和复杂表面的截面使用表面孔阵列144和超表面146。超再用对象150是存储在超对象阵列120中的超对象的另一个例子。超再用对象 150包括超再用中轴模块152、超再用边界框模块154、四元数模块156、转换模块158、缩放模块160和单元实体ID模块162。超再用对象150通过其设计改进了渲染速度,因为在渲染时,只有一个常用对象被转换为图表内存,且从对常用对象上的仿射变换生成包含再使用的所有对象。常用对象可包括常用形状。常用形状的至少一个截面在虚拟环境中可被转换一次或更多次,然后作为类似于常用形状的新形状被渲染。再使用也节约了内存,因为再用对象仅保存常用对象, 而不是存储再用对象的每次使用的对象。再用对象的一个例子可以是单元圆柱形,其可以用于通过转换渲染景象中的所有管子和柱状物。图3中,再用对象为单元实体ID。单元实体ID模块162包括引用渲染中被使用不止一次的对象的信息。在某些实施例中,单元实体ID模块162包括超网格对象122。在某些实施例中,单元实体ID模块162包括超网格对象122的一部分。转换模块158包括与单元实体ID的转换相关的信息。例如,其可以包括与仿射变换的转换相关的信息。四元数模块156包括与超再用对象150的旋转和方向有关的信息。 缩放模块包括与按比例缩放单元实体ID有关的信息。例如,其可以包括与仿射变换的缩放有关的信息。因此,可使用转换模块158、四元数模块156和缩放模块160进行仿射变换以渲染来自于单元实体ID模块160的对象。这一过程如图7所示。图 3 的超模型管理器 100 由包括模块 106、112-118、128-132、140-142 和 152-162 的不同模块组成。如可被本领域普通技术人员理解的,每个模块106、112-118、128-132、 140-142和152-162包括不同的子程序、程序、定义性声明和宏。典型地,每个模块106、 112-118、128-132、140-142和152-162分别被编辑且连接到单个可执行程序中。因此,下面对每个模块106、112-118、128-132、140-142和152-162的说明用于方便地描述超模型管理器100的功能性。因此,由每个模块106、112-118、128-132、140-142和152-162所执行的程序可被任意地再分配到一个其它的模块中,可以在单个模块中组合在一起,或者在可共享的动态链接库中可得到。而且,每个模块106、112-118、U8-132、140-142和152-162可在硬件中实施。动态渲染由于超模型的元件可包括实体对象和表面对象的组合,提供了适合的动态渲染方案以渲染对象。因此,图3中的超模型104可以配置为可动态更新的。一些对象在其被送到渲染流水线之前需要三角网格化。当单个帧被渲染时,渲染工具对这些非平面和/或凸面的多边形进行实时三角网格化。由于不是所有对象在帧中都可见,并不是对每个帧的所有对象都进行三角网格化。渲染工具可包括固定或可变尺寸的缓冲器,该缓冲器用于存储三角网格化的面和顶点, 生成这些面和顶点用于渲染实体对象的表面。例如,当多边形包括诸如孔这样的特征时,使用缓冲器。实时三角网格化与接触测试和DLOD相结合,以使所生成的三角形数量最少化, 用以保持高的帧频和低的内存使用。
而且,在图4中更详细说明了超模型渲染工具的一个例子,其可组合像透明度和材料这样的常用性能,以加快预渲染进程。可在组件层级上完成这种组合。该组合加速了渲染进程,因为不需要在图形卡上设置诸如透明度要素、材料性能和色彩这样的重复性能需要。包含图4A-4C的图4是演示用于渲染虚拟空间的景象中的3D对象的程序200的实施例的流程图,该3D对象由图3中的结构表现,供使用者在诸如计算机显示器这样的屏幕上查看。在程序初始化时,两个主题被初始化3D渲染工具主题和3D动画绘制器主题。这些主题被用于渲染程序中。在步骤252中,初始化3D渲染工具主题。接着,在步骤254中初始化材料并设置常用材料特征。常用材料特征包括对象的漫射色彩、环境色彩和高光色彩。这些特征的值取决于分配给对象的颜色。在步骤256中设置3D环境中所使用的光线。 在步骤258中启动细化超多边形的辅助对象。并且,在步骤沈0中,从内存中读取从背景色彩到场景选项的范围内的设定值,并基于用户设定的应用设定值而设置。然后,3D渲染工具主题在步骤沈6中“暂停”,等待请求以渲染超模型的一帧。在一些实施例中,由于3D渲染工具主题被3D动画绘制器主题阻塞而不能继续执行,从而发生“暂停”。在步骤沈2中初始化3D动画绘制器。在一些实施例中,3D动画主题和3D渲染工具主题基本上同时被初始化。在其它实施例中,一个主题在另一个主题之前初始化。3D动画绘制器处理对新近渲染的模型帧的所有输入请求。请求帧的应用实例为由应用提供的导航工具和提供的所有互动更新选项。而且,在步骤沈4中,3D动画绘制器主题阻塞了 3D渲染工具主题,使其不能继续执行。接着,在步骤268中确定是否存在被请求渲染的帧。如果没有帧被请求,系统回到步骤264,在该处,3D渲染工具继续执行被3D动画绘制器主题所阻塞,直到有帧被请求进行渲染。如果帧被请求,程序继续执行步骤270,在该步骤中,帧缓冲完成。在下一个步骤272中,更新视觉变化。例如,在步骤272中,在基于用户设置的场景内对模型进行渲染之前,可以更新用于待渲染的场景的背景色彩、光线色彩和/或剪切平面。 程序继续执行步骤202,在该处,调用超模型管理器以对该帧的场景内的模型进行渲染。从步骤202开始,对帧内的模型进行渲染,在该步骤中提取截锥。截锥描绘了屏幕上可见的3D区域。在下一步204中,从超模型的哈希图中选择模型。在下一个步骤206 中,确定所选择的模型是否位于该截锥内。如果在步骤206中确定了所选择的模型不在截锥内,程序200继续执行步骤234。如果在步骤206中确定了所选择的模型在截锥内,则程序继续执行步骤208。在步骤208中,选择模型组件。在下一个步骤210中,确定该组件对用户是否是可见的。在一些实施例中,可以通过对图3的可见性模块114中的数据执行布尔运算来确定可见性。如果确定了所选择的组件对于用户是不可见的,程序200继续执行步骤220。如果确定了所选择的组件对于用户是可见的,则程序200继续执行步骤212。在下一个步骤212中,确定组件是否是不透明的。在一些实施例中,通过将存储在图3的透明度模块118中的浮动值与临界值进行比较,可以确定对象是否是不透明的。如果确定了组件是不透明的,程序200继续执行步骤214。如果确定了所选择的组件是透明的,程序200继续执行步骤220。在接下的步骤214中,确定所选择的组件是否在截锥内。在一些实施例中,可以通过比较存储在图3的超组件边界框模块116中的对象的边界是否在截锥内部来确定对象是否在截锥内。如果确定了所选择的组件在截锥内,程序继续执行步骤216。如果确定了所选择的组件不在截锥内,程序继续执行步骤220。在步骤216中,间隔细节层次(DLOD)是基于如上文所述的在虚拟3D环境中对象离观察者的“距离”和由用户设定的该对象的阻塞方程而计算的。DLOD用于计算在渲染对象中使用的细节(例如,三角形的数量)的数量。继续执行步骤218,组件被绘制。程序继续执行步骤220,在该步骤中确定所选择的组件是否为图3中超组件哈希图108的最后一个组件。如果确定了所选择的组件不是最后一个组件,程序200返回到步骤208,在该步骤中选择另一个组件。如果确定了所选择的组件是最后一个组件,程序200 继续执行步骤222。在步骤222中,选择超组件对象哈希图中的下一个透明组件。这一步可使用步骤212来选择透明对象。继续执行步骤224,确定该透明组件被渲染时对用户是否是可见的。在一些实施例中,能够通过基本上类似于步骤210的方式确定可见性。如果确定了所选择的透明组件不会被看见,程序200继续执行步骤232。如果确定了所选择的透明组件会被看见,程序200 继续执行步骤225。在步骤225中,确定该透明组件是否在截锥内。在一些实施例中,能够通过基本上类似于步骤214的方式确定组件是否在截锥内。如果确定了所选择的透明组件不在截锥内,程序200继续执行步骤232。如果确定了所选择的透明组件在截锥内,程序200 继续执行步骤226。在步骤226中,为所选择的透明组件设定透明度要素,其从透明度模块中检索获得。透明度要素用于计算对象的RGBA色彩的α值,其被用于将象元色彩与围绕它的对象象元融合在一起。在一些实施例中,可以由图3的透明度模块118中所存储的浮动值确定该透明度要素。继续执行步骤228,如上文所述,OLOD作为像素数目、间隔标准和对于模型总体外观的重要度的函数用于组件的计算。然后程序200继续执行步骤232。在步骤232中,确定所选择的透明组件是否是图3的超组件哈希图108中的最后一个透明组件。如果确定了所选择的透明组件不是最后一个透明组件,程序200返回到步骤222,在该步骤中选择另一个透明组件。如果确定了所选择的组件是最后一个透明组件, 程序200继续执行步骤234。在步骤234中,确定该模型是否是哈希图中的最后一个模型。如果在步骤234中确定该模型不是最后一个模型,程序200返回到步骤204并选择另一个模型。如果在步骤234 中确定模型是最后一个模型,程序继续执行步骤236。在步骤236中,对在步骤218和230 中所绘制的组件进行渲染。继续执行步骤238,更新用于渲染程序的帧率(FPQ。而且,在步骤MO中,基于对象的配置更新阻塞树,并确定步骤210、212和224。在下一个步骤Μ2 中,基于步骤216和2 更新DLOD要素。在步骤M4中,已经渲染了超模型帧并可以将其存储或传输到显示装置上。然后程序返回步骤264,在该步骤中,3D动画绘制器主题阻挡3D 渲染工具主题,直到出现下一个帧渲染请求。图5是演示绘制组件对象(也称为组件)的程序300的流程图。在一些实施例中, 程序300对应于程序200的步骤218和230。在步骤302中,基于所存储的组件的设定值设定组件的色彩和材料。继续执行步骤304,确定是否通过对针对该组件的DLOD计算结果进行检索来取样该组件,并确定是否根据取样类型以简化形式绘制该组件。在一些实施例中,通过图3中的取样类型模块1 来确定取样类型。如果确定了组件未被取样,程序300继续执行步骤306。在步骤306中选择组件的下一个元件。继续执行步骤308,绘制超对象。 并且在步骤310中确定所选择的元件是否是该组件的最后一个元件。在一个实施例中,如果其是最后一个元件,则程序300返回到程序200的下一个步骤。如果确定了所选择的元件不是最后一个元件,程序300返回到步骤306。可替代地,如果在步骤304中确定了组件被取样,程序300继续执行步骤312。所取样的对象的绘制允许超模型通过使用更少的顶点绘制对象,以占用更少的内存和更少的处理时间。在绘制不同的对象(包括具有低DLOD的对象和被阻塞的对象)时,取样可能是有用的。在步骤312中选择组件的下一个元件。继续执行步骤314,以简化形式绘出该元件。依照阻塞和距离的值,以简化形式渲染对象,渲染可以包括使用中轴、减小的分辨率、 边界框或者将对象分类为隐藏(如果不可见)。并且在步骤316中确定所选择的元件是否是该组件的最后一个元件。在一个实施例中,如果其是最后一个元件,程序300返回到程序 200中的下一个步骤。如果确定了了所选择的元件不是最后一个元件,程序300返回到步骤 312。如步骤314中所示的简化形式渲染类似于图6和7中更详细地所描述的对超对象的渲染。简化形式取决于早先(例如在图4C的步骤M2中)为特定对象所设定的DLOD标准。DLOD可用于设定详细标准,其反过来确定取样类型。在步骤314中,工具将放弃对象的特征和部件,或者绘制其最大的简化形式,由取样类型限定。图6是示出了渲染超网格对象(其是超对象的一种)的实施例的流程图。在一些实施例中,程序400对应于程序300的步骤308。在步骤402中,选择超对象的下一个面。 在一些实施例中,步骤402使用来自于图3的超表面阵列134的超表面136。继续执行步骤404,确定该表面是否属于超多边形类,该超多边形类属于包括复杂多边形和表面的非简单型多边形组。在一些实施例中,图3的表面类型模块142可用于确定表面是否属于超多边形类。如果确定了了表面是超多边形类,程序400继续执行步骤406。在步骤406中,确定所选择的表面是否是可见的。由于超多边形被定义为包含其它特征的复杂特征,使用可见性来确定超多边形。可见性的确定对于性能的提高是有利的。如果确定了表面是不可见的,程序400继续执行步骤420。如果确定了所选择的表面是可见的,程序400继续执行步骤408。在步骤408中,从超模型结构中检索表面轮廓。继续执行步骤410,从超模型结构中检索表面的孔。在一些实施例中,可以在表面孔阵列144中搜索图3的超表面146,然后对其进行检索。而且,在步骤414中,从超模型结构中检索标准表面。在一些实施例中,使用图3中的标准IDsl40,这一点是可以做到的。在下一个步骤414中,表面被细分并渲染。 然后程序继续执行步骤420。在可替代的方式中,如果确定了表面不是超多边形(即表面是简单多边形类),程序400继续执行步骤416。在步骤416中,在一些实施例中,使用图3中的标准IDsl40检索表面的法线,并继续执行步骤418,表面被渲染。然后程序继续执行步骤420。在步骤420中,确定所选择的表面是否不是超对象的最后一个表面。如果其不是最后一个表面,程序返回到步骤402。如果该表面是最后一个表面,在一些实施例中,程序 400返回到程序300的步骤310。图7是示出了渲染作为超对象的另一类型的超再用对象的实施例的流程图。在一些实施例中,程序500对应于程序300的步骤308。在步骤502中,设定超对象的四元数。 这样就设定了对象的旋转和方向。而且,在步骤504中,设定转换。继续执行步骤506,设定缩放。接着,在步骤508中,检索超对象的单元实体并且在步骤510中渲染该单元实体。渲染包括使用缩放、四元数、旋转和转换而在单元实体上实施仿射变换。在一个实施例中,程序500接下来返回到程序300的步骤310。在一些实施例中,程序500中的每一步使用来自图3中的超再用对象150的一个对应数据模块,例如,步骤502使用存储在四元数模块156 中的数据,步骤504使用存储在转换模块158中的数据,步骤506使用存储在缩放模块160 中的数据,以及步骤508使用存储在单元实体ID模块162中的数据。超樽型的细节层级超模型也可至少部分地基于DLOD方案,以确保只有可见对象被处理。在一些实施例中,可以在图4B的步骤216,图4C的步骤228中或者两者中实施这一方案。DLOD方案可设定如上文所述的细节层级。在一些实施例中,然后细节层级可被用于确定组件是否在图 5中的步骤304中被取样。在一些实施例中,DLOD用于在图5中的步骤314中绘制简化形式。DLOD方案使用向后整合学习方法。该方法确定先前帧中哪个对象被渲染及其被渲染的方法。该方法包括存储帧频、每个对象被绘制的次数、每个对象离视点的查看距离以及每个对象被绘制的模式。然后该方法使用平均方程来平均这些要素,以确定渲染工具是否应该绘制该对象。该方法涉及追踪使用者行为的学习程序。如果使用者在以先前帧中以特定方向转动对象,该方法确定使用者可能会继续以同样方向转动对象,因此将使用者转动的方向上所看到的对象设定为具有较高的待渲染优先权。DLOD方法也可利用阻塞树做出决策。本领域技术人员会同意,与此处所公开的实施例相结合所描述的各种示例性逻辑块、模块、线路和算法步骤可以作为电子硬件、计算机软件或者两者的组合而实施。为了清楚地演示硬件和软件的这种可交换性,已经大体根据其功能在上文中描述了各种示例性组件、块、模块、线路和步骤。该功能是否作为硬件或者软件实施取决于具体应用和施加于总体系统的设计限制。本领域技术人员可以用不同的方式实施每个具体应用的功能,但是该实施决定不应被解释为造成对本发明保护范围的背离。与此处所公开的实施例相结合所描述的各种示例性的逻辑块、模块和线路可以与一般用途的处理器、数字信号处理器(DSP)、特定应用的集成电路(ASIC)、域可编程门阵列 (FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑电路、离散硬件组件或为了运行此处所述功能而设计的其任意的组合一起实施或运行。所述一般用途的处理器可以是微处理器,但是可选择地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或更多微处理器或任何其它这样的配置。与此处所公开的实施例相结合所描述的方法或算法的步骤可直接以硬件,以由处理器执行的软件模块或以两者的结合具现化。软件模块可存在于RAM内存、闪存、ROM内存、 EPROM内存、EEPROM内存、寄存器、硬盘、可移动硬盘、CD-ROM或本领域已知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,使得处理器能够从存储介质读取信息或将信息写入该存储介质。可选择地,存储介质可与处理器合为一体。处理器和存储介质可存在于ASIC中。ASIC可存在于用户终端中。可选择地,处理器和存储介质也可作为离散组件存在于用户终端中。尽管上文的详细描述已经示出、说明和指出了当应用于各种实施例中的本发明的创新性特征,可以理解,本领域技术人员在不背离本发明范围的情况下可以作出各种省略、 替换和对形式和所示例的装置或程序的细节的改变。如将被理解地,本发明可以以不全部提供此处所陈述的特征和优势的形式具现化,因为某些特征可以与其它特征分离地使用和实施。本发明的范围由所附权利要求书而不是由上文的说明限定。与权利要求书具有等同含义和范围的所有变化将被包括在其范围内。对相关申请的交叉引用本申请依据35U. S. C. § 109 (e),要求2008年10月14日提交的序列号为 61/196157以及2009年4月3日提交的序列号为61/166669的美国临时申请的优先权。对这些申请的公开内容均通过对其整体引用的方式并入于此。
权利要求
1.一种计算机辅助设计(CAD)系统,包括 包括处理器的电子装置,所述处理器包括第一模块,配置为在虚拟环境中使用两类对象表现计算机辅助设计对象 所述两类对象中的第一类对象,其包括多个截面,其限定用于渲染的对象的形状,每一限定用于渲染的对象的形状的截面被可配置地限定为复杂表面、复杂多边形、多边形或者三角形或四边形阵列中的一种; 用于限定所述多个截面的共同特性的信息;和用于相互连接所述多个截面中的至少两个相邻截面的信息;其中,所述多个截面中的单个截面能够是所述复杂表面、所述复杂多边形、多边形或者所述三角形或四边形阵列中的任何一种;和所述两类对象中的第二类对象,其存储引用所述虚拟环境中的公共对象的信息和对所述公共对象的至少一个截面的一个或更多转换;以及,第二模块,配置为以三维渲染所述计算机辅助设计对象。
2.如权利要求1所述的系统,还包括第三模块,配置为从设计对象中生成所述两类对象中的一类,所述设计对象包括构造实体几何、边界表现形式、或几何实体与用于表现表面的单形的集合中的一种。
3.如权利要求2所述的系统,还包括第四模块,其被配置为将所述构造实体几何、所述边界表现形式、或所述几何实体与用于表现表面的单形的集合中的任意一种的特征转换为所述两类对象中的一类的特征;以及, 动态地更新所述两类对象中的所述一类的特征。
4.如权利要求1所述的系统,还包括第五模块,配置为编辑所述第一类对象的特征。
5.如权利要求1所述的系统,其中,所述公共对象包括所述第一类对象。
6.如权利要求1所述的系统,其中,每一所述计算机辅助设计对象包括 用于识别所述虚拟环境中的所述计算机辅助设计对象的边界的信息;用于识别所述计算机辅助设计对象的部分从一个视点是否可见的可见性信息; 用于识别所述计算机辅助设计对象的部分是否不透明的透明度信息;和用于描述所述两类对象中的一类的元件对象,所述元件对象包括中轴信息、表现所述虚拟环境中所述元件对象的边界的信息,以及足以为所述第二模块渲染所述元件对象的数据。
7.如权利要求6所述的系统,其中所述计算机辅助设计对象还包括组件对象,所述组件对象包括 元件对象,用于表现所述虚拟环境中的所述组件对象边界的信息,所述可见性信息和所述透明度信息;并且所述第二模块被配置为在决定是否渲染所述组件对象时使用所述可见性信息;以及, 在渲染所述组件对象时使用所述透明度信息。
8.如权利要求7所述的系统,其中,所述第二模块聚集了用于基于公共特征进行渲染的组件对象。
9.如权利要求1所述的系统,其中,所述计算机辅助设计对象被配置为动态地更新,且所述第二模块被配置为动态地渲染所述计算机辅助设计对象。
10.如权利要求1所述的系统,其中,所述第二模块被配置为以所述虚拟环境中的简化形式渲染所述计算机辅助设计对象之一的至少一部分。
11.如权利要求10所述的系统,其中,基于离开视点的距离和所述计算机辅助设计对象的像素数目来选择所述简化形式。
12.一种在电子装置上渲染三维形状的方法,包括选择计算机辅助设计对象,其中,所述计算机辅助设计对象包括两类对象 所述两类对象中的第一类对象,其包括多个截面,限定用于渲染的对象的形状,每一限定用于渲染的对象的形状的截面被可配置地限定为复杂表面、复杂多边形、多边形或者三角形或四边形阵列中的一种; 用于限定所述多个截面的共同特性的信息;和用于相互连接所述多个截面中的至少两个相邻截面的信息;其中,所述多个截面中的单个截面能够是所述复杂表面、所述复杂多边形、所述多边形或者所述三角形或四边形阵列中的任何一种;和所述两类对象中的第二类对象,其存储引用所述虚拟环境中的公共对象的信息和对所述公共对象的至少一个截面的一个或更多转换;以及, 绘制所述计算机辅助设计对象之一的至少一部分。
13.如权利要求12中所述的方法,还包括从设计对象中生成所述两类对象中的一类, 其中,所述设计对象包括构造实体几何、边界表现形式、或几何实体与用于表现表面的单形的集合中的一种。
14.如权利要求13所述的方法,还包括将所述构造实体几何、所述边界表现形式、或所述几何实体与用于表现形式表面的单形的集合中的任意一种的特征转换为所述两类对象中的一类的特征;以及, 更新所述两类对象中的一类的特征。
15.如权利要求12所述的方法,还包括编辑所述第一类对象的特征。
16.如权利要求12所述的方法,其中,所述公共对象包括所述第一类对象。
17.如权利要求12所述的方法,其中,每一所述计算机辅助设计对象包括 用于识别所述虚拟环境中所述计算机辅助设计对象的边界的信息;和用于描述所述两类对象中的一类的元件对象,所述元件对象包括中轴信息、表现所述虚拟环境中所述元件对象的边界的信息、以及足以为所述第二模块渲染所述元件对象的数据。
18.如权利要求17所述的方法,其中所述计算机辅助设计对象还包括组件对象,其包括所述元件对象、表现所述虚拟环境中所述组件对象的边界的信息、用于识别所述计算机辅助设计对象的部分从一个视点是否可见的可见性信息和用于识别所述计算机辅助设计对象的部分是否不透明的透明度信息; 以及,所述第二模块被配置为在决定是否渲染所述组件对象时使用所述可见性信息;和在渲染所述组件对象时使用所述透明度信息。
19.如权利要求18所述的方法,还包括聚集用于基于公共特征进行所述绘制的组件对象。
20.如权利要求12所述的方法,还包括 动态地更新所述计算机辅助设计对象;和动态地绘制所述计算机辅助设计对象。
21.如权利要求12所述的方法,其中,所述绘制包括在所述虚拟环境中以简化形式表示出所述计算机辅助设计对象之一的至少一部分。
22.如权利要求21所述的方法,其中,所述简化形式基于离开视点的距离和所述计算机辅助设计对象的像素数目。
23.一种计算机辅助设计(CAD)系统,包括 包括处理器的电子装置,所述处理器包括用于在虚拟环境中使用两类对象表现计算机辅助设计对象的装置 所述两类对象中的第一类对象,其包括用于成型对用于渲染的对象的形状进行限定的多个截面的装置,每一个对用于渲染的对象的形状进行限定的截面被可配置地限定为复杂表面、复杂多边形、多边形或者三角形或四边形阵列中的一种;用于存储限定所述多个截面的共同特性的信息的装置;和用于存储相互连接所述多个截面中的至少两个相邻截面的信息的装置; 其中,所述多个截面中的单个截面能够是所述复杂表面、所述复杂多边形、多边形或者所述三角形或四边形阵列中的任何一种;和所述两类对象中的第二类对象,其包括 用于存储引用所述虚拟环境中公共对象的信息的装置;和用于对所述公共对象的至少一个截面执行至少一次转换的装置;以及, 用于以三维渲染所述计算机辅助设计对象的装置。
全文摘要
公开了对计算机辅助设计(CAD)环境和对象进行建模的系统和方法。此处所提供的系统和方法包括实体建模和表面建模之间的混合方案。所述方法和系统涉及表现对象和渲染对象的结构。所述混合解决方案结合了实体建模的建模特征和规则以及表面建模所提供的性能。这提供了有效的内存使用和有利的运行时间性能。
文档编号G06F17/50GK102203781SQ200980140892
公开日2011年9月28日 申请日期2009年10月13日 优先权日2008年10月14日
发明者拉杨·H·杰瑞杰, 拉米·R·桑提娜, 祖海尔·哈达得 申请人:Cct国际股份有限公司