混合隐藏线处理器和方法
【专利摘要】一种用于提供针对多个多边形的混合隐藏线处理的方法,所述多边形表示曲面细分的图像数据,其中每个多边形包括多条边。该方法包括:生成(506)背面板和正面板,其中,背面板包括位于曲面细分的图像数据的轮廓的背面侧上的多边形,正面板包括位于曲面细分的图像数据的轮廓的正面侧上的多边形;追踪(514)边并且识别被追踪的边的子集中的每条被追踪的边的至少一个可见性改变像素;针对每个可见性改变像素,确定(522)被追踪的边是否来自与对应于可见性改变像素的多边形相同的板;针对被确定为来自与对应于可见性改变像素的多边形相同的板的每个被追踪的边,显示(532)被追踪的边。
【专利说明】混合隐藏线处理器和方法
[0001]本发明涉及根据独立权利要求的、用于提供针对多个多边形的混合隐藏线处理(hybrid hidden-line processing)的方法、产品数据管理数据处理系统以及计算机可读介质。
【背景技术】
[0002]本公开内容总体上涉及用于管理产品和其它物品的数据的计算机辅助设计、可视化及制造系统、产品生命周期管理(“PLM”)系统以及类似系统(统称为“产品数据管理”系统或者PDM系统)。传统的计算机图形显示系统使用各种类型的处理来生成三维物体的二维图像。
【发明内容】
[0003]各种公开的实施方式包括系统、方法以及计算机可读介质。公开了一种用于提供针对表示曲面细分的图像数据(tessellated image data)的多个多边形的混合隐藏线处理的方法,其中每个多边形包括多条边。该方法包括生成背面板和正面板,其中,背面板包括位于曲面细分的图像数据的轮廓的背面侧上的多边形,正面板包括位于曲面细分的图像数据的轮廓的正面侧上的多边形。该方法包括追踪边并且识别被追踪的边的子集中的每条被追踪的边的至少一个可见性改变像素。该方法包括:针对每个可见性改变像素,确定被追踪的边是否来自与对应于可见性改变像素的多边形相同的板。该方法包括:针对被确定为来自对应于可见性改变像素的多边形相同的板的每个被追踪的边,显示该被追踪的边。
[0004]以上非常宽泛地概述了本公开内容的特征和技术优点,以使得本领域的普通技术人员能够较好地理解下述【具体实施方式】。在下文中,将描述构成权利要求的主题的本公开内容的其它特征及优点。本领域的普通技术人员将会理解:他们可以容易地以所公开的构思和【具体实施方式】为基础来修改或设计用于实现与本公开内容相同目的的其它系统。本领域的普通技术人员还将会认识到:这样的等同结构不会脱离本公开内容的最宽泛形式的精神和范围。
[0005]在描述下面的“【具体实施方式】”之前,对本专利文献全文中使用的某些词或短语的定义进行说明将是有利的:术语“包括”和“包含”及其派生词表示包括但不限于此;术语“或”是包括性的,表示“和/或”;短语“与…相关联”和“与其相关联”及其派生词可以表示包括、被包括在…内、与…互连、包含、包含在…内、连接到或与…连接、耦接到或与…耦接、可与…通信、与…配合、交错、并置、接近、缚接到或与…缚接、具有、具有…的性能等;术语“控制器”表示用于控制至少一个操作的任何装置、系统或其部件,而不管该装置是以硬件、固件、软件还是以它们中的至少两个的组合实施的。应当注意,与任何特定的控制器相关联的功能无论是本地的还是远程的,均可以是集中式的或分布式的。在本专利文献全文中,提供了对某些词和短语的定义,但本【技术领域】的普通技术人员将会理解:在许多(即便不是大部分)情况下,这样的定义应用在这样定义的词和短语的当前以及将来的使用中。尽管一些术语可以包括各种各样的实施方式,但是所附权利要求可以将这些术语特别地限制于【具体实施方式】。
【专利附图】
【附图说明】
[0006]为了更透彻地理解本公开内容及其优点,现在参照结合附图的以下描述,在附图中,相同的附图标记表示相同的物体,并且在附图中:
[0007]图1示出了根据本公开内容的、可以实现混合隐藏线处理器的数据处理系统的框图;
[0008]图2A至图2G示出了可以由根据本公开内容的图1的数据处理系统处理的各种图像的示例;
[0009]图3示出了根据本公开内容的图1的数据处理系统的一部分;
[0010]图4示出了根据本公开内容的图3的混合隐藏线处理器和存储器的细节;以及
[0011]图5是示出了根据本公开内容的用于提供混合隐藏线处理的方法的流程图。
【具体实施方式】
[0012]在本专利文献中,下述图1?图5及用于描述本公开内容的原理的各种实施方式仅是为了说明,而不应当被认为以任何方式来限制本公开内容的范围。本领域的普通技术人员将会理解,本公开内容的原理可以以任何合适设置的设备来实施。将参照示例性的非限制性实施方式来描述本申请的各种创新性教示。
[0013]生成三维物体的二维图像时常见的问题涉及识别并且消除隐藏线(即用户可能不想显示的线,这是因为这些线由于视角原因和/或由于被场景中的其它物体所遮挡而将呈现为隐藏的)。通常,用于识别隐藏线的方法是图像空间算法或者物体空间算法。然而,这些技术中的每一个都存在缺点。
[0014]图像空间处理包括使用深度缓冲器或者Z缓冲器,其将屏幕划分成像素并基于像素执行可见性处理。如果在像素位置处存在不止一个物体,则在生成显示时,将会使用与最接近观看者的物体的部分相关的数据,从而隐藏图像在该像素处远离观看者的任何部分。使用图像空间处理导致相对快速的图像生成。然而,与该处理相关联的精度低于很多应用所期望的精度。
[0015]与图像空间处理相比,诸如使用小平面(facetted)或图像数据的精确数学表示的物体空间处理提供更高的精度。然而,对于创建相对大的组件(例如整个汽车、轮船等)的绘图的用户而言,物体空间技术可能需要太多的时间来显示图像以及太大的存储占用量。通常,特定技术提供的精度越高,则图像生成越慢,并且与该技术相关联的存储占用量越大。
[0016]因此,例如,Z缓冲器可以在视图上限定固定的分辨率(例如X方向上1000个像素并且I方向上1000个像素)。可以对待显示图像进行曲面细分,即通过生成表示物体的多边形的连接网或小平面来提供物体的任何曲面的平面近似。将多边形和边扫描到Z缓冲器中。扫描后的像素中的每个像素的“获胜者(winner)”对应于隐藏线图像。随着模型的尺寸增加,Z缓冲器算法具有线性特性(S卩,它是η阶系统)。Z缓冲器由于其阶数而总的来说为最快类型的隐藏线处理器。另外,随着多边形的数目增加,多边形的存储需求是固定的,并且随着边的数目增加,边的存储需求是线性的。
[0017]然而,Z缓冲器技术的精度受限于视图上设置的像素的数目(例如,在较大的组件上,1000个像素相对较小)。这表现为在生成图像上的过冲(overshoots)和下冲(undershoots)?此外,所有的坐标都被四舍五入为整数以映射到Z缓冲器像素。该四舍五入可能导致Z缓冲器坐标的退化以及相关联的可见性缺陷。另外,难以从Z缓冲器提取边,并且需要折线或曲线输出来绘制作品(creat1n)和注释。
[0018]使用物体空间技术的小平面隐藏线处理器(facetted hidden-line processor)通常需要将所有的小平面的边线段与模型中所有的其它小平面的边线段相交。这会产生一系列的边碎片(edge pieces),每个边碎片具有一个可见性。然后,通过拓扑学、光线投射或者其它几何测试来确定每个边碎片的可见性。物体空间算法尝试将相交候选和ray fire候选的数目限制到尽可能小的数目。
[0019]物体空间、小平面隐藏线处理器相对于精确隐藏线处理器的优点包括只需要进行小平面的边线段之间的相交而不需要进行精确曲线之间的相交。线段是两条线,因而其相交相对较快。此外,可见性改变点的精度受限于曲面细分公差(例如,1.0e-03或者1.0e-04个模型单位),这与从Z缓冲器获得相比,导致更准确的图像。最后,边易于放置在绘图中(即,边是隐藏线处理器直接输出的)。
[0020]然而,任何物体空间算法的阶数为η2。因而,尽管能够相对容易地获得小平面算法的每次相交,但是该算法的阶数最终会占主导,使得该技术远慢于Z缓冲器算法。另外,虽然所有技术都尝试对相交候选的数目η进行限制,但是技术的阶数保持为η2。此外,当边被放置在绘图中时这些边呈现小平面。同样,当小平面的数目增加时,小平面的存储需求是线性的,并且当边的数目增加时,边的存储需求是线性的。
[0021]也使用物体空间技术的精确隐藏线处理器通常需要将所有的精确边与模型中的所有其它精确边相交。这会产生一系列的边碎片,每个边碎片具有一个可见性。然后,通过拓扑学、光线投射或者其它几何测试来确定每个边碎片的可见性。精确物体空间算法尝试将相交候选和ray fire候选的数目限制到尽可能小的数目。
[0022]精确物体空间隐藏线处理器的优点包括提供针对可见性改变点的精度,该精度受限于建模公差(例如,1.0e-05或者1.0e-06个模型单位),与从Z缓冲器或者与物体空间小平面技术获得的精度相比,这导致更准确的图像。另外,边和其精确曲线易于放置在绘图中(即,它们是隐藏线处理器直接输出的)。最后,由于使用精确曲线来生成绘图,因此与实际生活类似地,边呈现为光滑的且精确的。
[0023]然而,两条精确边之间的相交是两条一般曲线之间的相交,所以较之两条直线之间的相交相对较慢。另外,精确物体空间算法的阶数为η2。结果,由于每个相交都相当耗时,以及由于最终会占主导的算法的阶数为η2,因此精确算法比Z缓冲器算法或小平面算法要慢得多。另外,虽然所有的技术都尝试对相交候选的数目η进行限制,但是技术的阶数仍然为η2。此外,表面的存储需求相对于表面的数目是线性的,但是在需要的存储量中,每个表面可能相对昂贵。最后,当边的数目增加时,边的存储需求是线性的。
[0024]为了克服传统的隐藏线处理算法的限制,近来开发了一种隐藏线处理器,该隐藏线处理器以小平面算法的方式使线段边相交,但是与使所有的边相交不同,只使得特定的边相交。通过使用Z缓冲器来识别待相交的边。因此,提供了接近小平面算法级别的精度,同时提供了接近Z缓冲器算法级别的速度。这项被称为快速隐藏线处理器的技术基于小平面模型。然而,使用软件Z缓冲器来存储多边形。该技术提供线性性能(即阶数η)。
[0025]对于快速隐藏线处理,多边形扫描转换包括:在多边形的边是外部边的一部分的情况下,对像素加注释。获胜的边和多边形信息被存储在Z缓冲器中。通过软件Z缓冲器对边的可见性进行追踪。该处理具有线性性能(即阶数n)。Z缓冲器追踪通过查看当前边变成消隐的位置处的像素,来对可能会隐藏被追踪的边的任何外部边进行识别。这使得快速隐藏线处理器能够以线性性能识别所有的边相交,而不是如同由传统的物体空间小平面隐藏线处理器所需求的那样以η2性能识别。在确定像素的可见性之后,使用在像素处的获胜的边来进一步将可见性改变点细化成曲面细分的精度(例如,边线段、边线段相交)。
[0026]快速隐藏线处理器的优点包括在线性时间内识别待相交的边(S卩,基于边的数目,时间是恒定的)。这与需要η2性能来识别所有相交(S卩,每条边与其它的每条边的相交)的大多数物体空间隐藏线处理器不同。另外,由于该技术的级数以及使用软件Z缓冲器作为其核心处理器的事实,该技术是相对快速执行的技术。当多边形的数目增加时,多边形的存储需求是恒定的,并且进行的相交是在小平面的边线段之间,即两条线之间的相交。此外,通过Z缓冲器检测可见性改变点的位置,并且只进行可见性改变处的相交。最后,可见性改变点的精度受限于曲面细分公差(例如,1.0e-03或1.0e-04个模型单位),这与从Z缓冲器得到的结果相比更加精确,并且边易于放置在绘图上(即,它们是隐藏线处理器直接输出的)。
[0027]然而,利用快速隐藏线处理器进行的相交清理具有与边和轮廓相关的限制。由于不准确的Z深度多边形扫描转换以及胜过多边形的外部边的多边形的内部,边经常不能赢得它们应该赢得的像素。此外,由于这种技术根据标准小平面处理技术追随多边形的边界,因此利用这种技术生成的轮廓通常不准确。
[0028]图1示出了根据本公开内容的、可以实现混合隐藏线处理器的数据处理系统100的框图。对于一些实施方式,数据处理系统100可以被实现为具体由软件配置的PDM系统,或者可以被实现为进行如本文中所描述的处理。对于具体的实施方式,数据处理系统100可以实现为如本文中所描述的多个互连的并且通信的系统中的每个系统。图1中示出的数据处理系统100包括耦接至两级高速缓存/桥104的处理器102,该两级高速缓存/桥104耦接至本地系统总线106。本地系统总线106可以是例如外围部件互连(PCI)体系结构总线。在描绘的示例中,主存储器108和图形适配器110也耦接至本地系统总线。图形适配器110可以耦接至显示器111。
[0029]其它外围设备(例如局域网(LAN) /广域网(WAN) /无线(例如W1-Fi)适配器112)也可以耦接至本地系统总线106。扩展总线接口 114可以将本地系统总线106耦接至输入/输出(I/O)总线116。I/O总线116可以耦接至键盘/鼠标适配器118、盘控制器120以及I/O适配器122。盘控制器120可以耦接至存储装置126,存储装置126可以是任何适合的机器可用的或机器可读的存储介质,该存储介质包括但不限于(i )非易失性硬编码型的介质,例如只读存储器(ROM)或者电可擦除可编程只读存储器(EEPROM); (ii)磁带存储设备;(iii)用户可记录型介质,例如软盘、硬盘驱动器、只读光盘存储器(⑶-ROM)或数字多功能盘(DVD)以及(iv)其它已知光的、电的或磁的存储设备。
[0030]在示出的示例中,I/O总线116还可以耦接至音频适配器124,音频适配器124可以耦接至扬声器(图1中未示出)以播放声音。键盘/鼠标适配器118可以耦接至指示设备(图1中未示出),例如鼠标、轨迹球、追踪指示器等。
[0031]本领域的普通技术人员将会理解,图1中描绘的硬件可以根据具体实现而改变。例如,也可以附加地或者代替所描绘的硬件而使用其它外围设备,如光盘驱动器等。仅出于说明的目的而提供所描绘的示例,而并非对本公开内容的体系结构的限制。
[0032]数据处理系统100包括采用图形用户界面的操作系统。该操作系统允许在图形用户界面中同时呈现多个显不窗口,每个显不窗口为不同的应用提供界面,或者为同一应用的不同实例提供界面。用户可以经由指示设备来操纵图形用户界面中的光标。
[0033]如果经过适当的修改,可以采用各种商业操作系统之一,例如位于美国华盛顿州的雷德蒙德市的微软公司(Microsoft Corporat1n)的产品,S卩微软Windows (注册商标)版本。可以根据所描述的本公开内容来修改或者创建该操作系统。
[0034]LAN/WAN/无线适配器112可以耦接至网络130 (其不是数据处理系统100的一部分),网络130可以是任何公用或私用的数据处理系统网络或者网络的组合(包括因特网)。数据处理系统100可以通过网络130与服务器系统140通信(服务器140也不是数据处理系统100的一部分)。对于一些实施方式,服务器系统140可以被实现为单独的数据处理系统。
[0035]根据本公开内容的一个实施方式,数据处理系统100可以提供混合隐藏线处理以生成待发送至显示器111的图像。如同在下文中结合图3至图5更详细地描述的那样,可以通过基于Z缓冲器技术识别相对小的数目的待相交(例如在小平面技术中进行的相交)的边来处理图像。从而,提供与Z缓冲器算法的速度类似的速度,并提供与小平面算法的精度类似的精度。另外,对于一些实施方式,可以将精确边而不是小平面的边相交,从而导致精度类似于精确算法的精度而速度类似于Z缓冲器算法的速度。
[0036]使用下文中描述的混合隐藏线处理,由于多边形扫描转换并且由于多边形的外部边胜过多边形的内部,边赢得它们应当赢得的像素。另外,不是基于多边形的边而是根据顶点法线来生成轮廓。从而,轮廓可以穿过多边形的中部,并且比沿着多边形的边界而生成的轮廓更准确。
[0037]图2A至图2G示出了可以由根据本公开内容的数据处理系统100处理的各种图像的示例。这些示例简单地示出了在本公开内容中使用的各种项目。图2A示出了用于在二维显示器(例如图1的显示器111)上显示三维图像的处理。二维显示器可以对应于由X轴和y轴限定的平面。示出的示例包括锥体202和方块204。实线表示可以显示的线,而虚线表示不可以出现在锥体202和方块204的二维显示中的隐藏线。从而,如图所示,从观看者直视由X轴和I轴限定的平面的角度来看,方块204部分地遮挡了锥体202的、方块204在锥体202前方的一部分。作为这些类型的线的示例,标出了一条可见线208和一条隐藏线210。
[0038]例如,当处理锥体202的三维图像以在二维屏幕上显示时,可以对锥体202进行曲面细分以生成曲面细分的锥体220,如图2B所示。这样,为了开始处理图像以进行显示,可以通过大量的多边形或小平面来近似锥体202的曲面。为了简单起见,图2B中示出的曲面细分的锥体220不包括锥体220的背面的隐藏线。然而,在曲面细分的锥体220中示出了被图2A的方块204隐藏的线。同样,为了简单起见,没有以曲面细分的形式示出方块204。
[0039]在本示例中,标出了锥体220的一个轮廓222。该轮廓222与正面多边形和背面多边形共有的边相对应。因此,轮廓222不是物体(即锥体202)真实的边;然而,从x-y透视图来看,轮廓222将对于锥体202的观看者表现为可见线。如同在下文中将详细描述的那样,应该理解的是,很多图像的真实的精确轮廓将会穿过多边形(已知为轮廓多边形),而不是恰好沿着正面多边形与背面多边形之间的边。
[0040]在图2B示出的示例中还标出了一个外部边224。该边224为可见边,如实线所示。隐藏的轮廓线段226和隐藏的外部边228分别以虚线示出。还标出了内部边230。应该理解的是,虽然将内部边示为实线,但是不可以显示内部边,这是因为它们对应于构成曲面细分的物体的多边形的边,因而并不对应于该物体的实际的或可见的边。
[0041]图2C示出了曲面细分的锥体220的一部分以及遮挡了锥体220的一部分的曲面细分的方块240的一部分。为了简单起见,在本图中省略了内部边。如同在下文中将详细描述的那样,在多边形扫描转换期间,对外部边进行识别。例如,对方块240的外部边242进行了识别。在多边形扫描转换之后,通过Z缓冲器追踪每条外部边以搜索可见性改变像素。从而,对于示出的示例,可以追踪锥体220的边244,直到该边224在可见性改变像素246处变为消隐为止。然后,混合隐藏线处理器可以回想起先前识别的外部边242在可见性改变像素246处存在。然后,混合隐藏线处理器执行被追踪的边244与外部边242的相交,以识别可见性改变点248。从而,如图2C所示以及如同在下文中将详细描述的那样,可见性改变像素246包括边可以变成消隐的位置处的像素(板保护可能导致边实际上没有被隐藏),并且可见性改变点248为边未变成消隐的位置处的点。可见性改变像素246不如可见性改变点248精确;然而,应该理解的是,示出的实施方式显示了像素246与点248的分辨率之间的可能放大的差异。
[0042]图2D示出了三维锥体250。为了示出当前实现的隐藏线处理技术中潜在的问题,示出了与锥体250的一部分相交的平面252。平面252与锥体250的相交产生了锥体250的圆形的横截面254。以下可以使用与位于轮廓前侧上的面的小片相对应的正面板256以及与位于轮廓后侧上的面的小片相对应的背面板258,来提供板保护。图2E示出了曲面细分的横截面260,曲面细分的横截面260表示由多边形曲面细分近似的图2D的圆形横截面254。
[0043]图2E示出了用于改进混合隐藏线处理器中的Z缓冲器追踪的精度的技术。在本示例中,一个多边形的外部边上的点268与相邻多边形的内部边上的点270具有相同的X和y Z缓冲器坐标。从而,如果使用标准处理,则与点268相比,点270将会赢得该像素,这是因为点270具有比点268更大的z值。然而,由于点268在外部边上,因此点268将会赢得像素。因此,如同在下文中将详细描述的那样,混合隐藏线处理器提供板保护,以确保外部边上的点268显示在内部边上的点270上。
[0044]图2F与图2G示出了还可以如何为双曲表面(例如表面278与280)提供附加的板保护。对于示出的示例,表面278具有外部边282,并且表面278和280 二者均具有轮廓284和板折线(plate-break line) 286。对于双曲表面,轮廓284不能完全地限定正面板与背面板之间的边界。这样,可以针对这些表面278和280识别轮廓尖端点288,并且使用轮廓尖端点288来生成进一步限定板之间的边界的附加的板折线286。
[0045]图3示出了根据本公开内容的数据处理系统100的一部分300。应该理解的是,数据处理系统100是可以实现图3中示出的部件的一种类型的系统的示例,并且在不脱离本公开内容的范围的情况下,可以在任何其它合适地布置的图像生成系统中实现这些部件。
[0046]对于示出的实施方式,部分300包括曲面细分单元302、存储器304、混合隐藏线处理器306以及显示器308。对于一些实施方式,可以使用通用处理器(例如图1中的处理器102)来实现曲面细分单元302和/或混合隐藏线处理器306。可以耦接至存储器304的曲面细分单元302能够接收表示要显示的三维物体的图像数据。对于一些实施方式,曲面细分单元302可能能够经由路径310检索来自存储器304的图像数据。对于一些实施方式,曲面细分单元302可以接收来自数据处理系统100的其它部件(图3中未示出)的图像数据。
[0047]曲面细分单元302能够对精确图像数据进行曲面细分,以生成曲面细分的图像数据。曲面细分的图像数据包括能够识别构成待显示的物体的曲面细分的版本的多个多边形或者小平面的数据。例如,对于一些实施方式,曲面细分的图像数据可以包括构成曲面细分的图像的多个三角形或其它多边形的顶点的每个顶点的坐标。
[0048]对于一些实施方式,曲面细分单元302能够经由路径312向混合隐藏线处理器306提供曲面细分的图像数据。然而,对于其它实施方式,曲面细分单元302能够经由路径310将曲面细分的图像数据存储在存储器304中,并且能够经由路径312提供就绪信号,来提醒混合隐藏线处理器306在存储器304中存在曲面细分的图像数据。
[0049]耦接至曲面细分单元302和存储器304的混合隐藏线处理器306能够接收来自曲面细分单元302的曲面细分的图像数据或就绪信号。对于曲面细分的图像数据存储在存储器304中的实施方式,混合隐藏线处理器306能够基于就绪信号从存储器304检索曲面细分的图像数据。然而,应该理解的是,本文中使用的“接收”曲面细分的图像数据包括被动地接收数据以及主动地检索数据。
[0050]在接收到曲面细分的图像数据之后,混合隐藏线处理器306能够识别由曲面细分的图像数据表示的多边形的边,并且能够选择边的子集以基于Z缓冲器算法进行相交。如同将在下文中结合图4和图5详细描述的那样,混合隐藏线处理器306能够沿着多边形的边识别可见性改变像素,并且能够将那些边与也在可见性改变像素处的任何外部边相交,以确定外部边上的可见性改变点。混合隐藏线处理器306还能够基于顶点法线来生成准确的轮廓,能够进行关于Z缓冲器的准确Z深度多边形扫描转换,并且能够提供对于外部边和轮廓的板保护。在进行该隐藏线处理时,混合隐藏线处理器306能够基于曲面细分的图像数据相对快速并且相对准确地生成显示数据。
[0051]耦接至混合隐藏线处理器306的显示器308能够经由路径316接收来自混合隐藏线处理器306的显示数据,并且能够向数据处理系统100的用户显示基于该显示数据的处理后的图像。在另一实施方式中,混合隐藏线处理器可以向绘图仪发送图像数据,以创建硬拷贝纸质绘图。
[0052]图4示出了根据本公开内容的混合隐藏线处理器306和存储器304的细节。对于一些实施方式,可以使用通用处理器(例如图1中的处理器102)来实现混合隐藏线处理器306。对于示出的实施方式,混合隐藏线处理器306包括轮廓生成器402、板生成器404、多边形扫描转换器406、Z缓冲器分割器408、可见性追踪器410、板保护器412、边相交器414以及可选的精确边跟踪器416。另外,存储器304包括多边形420、边422、板424、Z缓冲器426以及可选的精确边428。
[0053]虽然为了简单起见,将将混合隐藏线处理器306的部件402、404、406、408、410、412,414以及416示出或描述为分立的部件,但是应该理解,在不脱离本公开内容的范围的情况下,可以将其中的任意两个或更多个部件一起实现为单个部件。另外,在一些实施方式中,部件402、404、406、408、410、412、414以及416中的任何一个部件可以被实现为两个或更多个部件。另外,下列描述假设在曲面细分的图像数据中呈现的多边形为三角形。然而,应该理解,在不脱离本公开内容的范围的情况下,曲面细分的图像数据可以表示其它类型的多边形。
[0054]轮廓生成器402能够基于由曲面细分的图像数据表示的多边形420的顶点的顶点法线准确地生成轮廓。在多边形法线与视向量的点积为零处产生轮廓点。如果点在背面多边形上,则点积为负,而如果点在正面多边形上,则点积为正。这样,轮廓生成器402能够针对每个多边形420在多边形三个顶点中的每个顶点处执行轮廓函数(即,法线与视向量的点积),以生成轮廓。
[0055]轮廓生成器402能够基于轮廓函数确定多边形是正面多边形还是背面多边形。如果轮廓生成器402确定针对三角形三个顶点中的每个顶点的轮廓函数均为负,则轮廓生成器402将该多边形识别为背面多边形。因而,针对该多边形不存在轮廓。轮廓生成器402还能够在存储器304的多边形420部中将该多边形标记为背面多边形。
[0056]类似地,如果轮廓生成器402确定针对三角形三个顶点中的每个顶点的轮廓函数均为正,则轮廓生成器402将该多边形识别为正面多边形。因而,针对该多边形不存在轮廓。轮廓生成器402还能够在存储器304的多边形420部中将该多边形标记为正面多边形。
[0057]然而,如果轮廓生成器402确定三角形的轮廓函数是混合的,即,针对三角形三个顶点之一的至少一个轮廓函数为负且针对三角形三个顶点之一的至少一个轮廓函数为正,则轮廓生成器402将该多边形识别为轮廓多边形。在这种情况下,轮廓生成器402能够沿着每条多边形边进行线性插值以识别真正的轮廓点。然而,由于针对顶点中的两个顶点的轮廓函数将会具有相同的符号,因此在连接这两个顶点的边上不存在轮廓点。因此,轮廓生成器402可以沿着该三角形的另外两条边进行线性插值。该处理识别出该三角形中的两个轮廓点。然后,轮廓生成器402能够通过连接这两个轮廓点来形成轮廓线段。当轮廓生成器402完成轮廓线段形成之后,轮廓生成器402能够将根据不同的三角形形成的轮廓线段耦接在一起以生成轮廓边,并且将轮廓边存储在存储器304的边422部中。
[0058]对于一些实施方式,轮廓生成器402能够生成精确轮廓边。例如,对于特定类型的面,轮廓的精确类型是已知的(例如,球体的轮廓为圆)。对于这些类型的面,轮廓生成器402可能能够将正确类型的精确曲线拟合到曲面细分的轮廓。对于其它表面类型,轮廓生成器402可能能够通过曲面细分的轮廓点来拟合三次B样条,以生成精确轮廓曲线。
[0059]对于双曲表面(例如图2F与图2G的表面278和280),轮廓生成器402还能够识别这些表面的任何轮廓尖端点,并且能够基于这些轮廓尖端点生成板折线。
[0060]板生成器404能够生成正面板和背面板,例如图2D中示出的正面板256和背面板258。对于一些实施方式,板生成器404能够基于轮廓生成器402在存储器304的多边形420部中对正面多边形的识别来生成正面板,并且能够基于轮廓生成器402在存储器304的多边形420部中对背面多边形的识别来生成背面板。从而,对于一些实施方式,板生成器404能够通过将每个正面多边形添加到存储器304的板424部中存储的正面板来生成正面板,并且能够通过将每个背面多边形添加到存储器304的板424部中存储的背面板来生成背面板。对于其它实施方式,板生成器404能够通过将每个正面多边形添加到存储器304的板424部中存储的板来生成正面板,并且能够通过不将每个背面多边形添加到板424中存储的板来生成背面板。从而,对于这些实施方式,不存在来自存储器304的板424部的多边形表示该多边形来自背面板。对于双曲表面(例如图2F与图2G中示出的表面278和280),板生成器404还能够基于由轮廓生成器402生成的板折线来生成板。
[0061]多边形扫描转换器406能够将由曲面细分的图像数据表示的多边形或多变形420扫描转换到Z缓冲器426中。对于一些实施方式,多边形扫描转换器406能够提供质心扫描转换,以在Z缓冲器可见性映射中生成连续函数。在扫描转换期间,多边形扫描转换器406还能够识别正被扫描转换的多边形420的外部边。对于一些实施方式,多边形扫描转换器406能够通过将作为外部边或轮廓边的一部分的像素标记为属于外部边,来将外部边标识存储在Z缓冲器426中。
[0062]Z缓冲器分割器408能够将多边形420的分界存储在Z缓冲器426的板424中。因此,Z缓冲器分割器408能够基于由板生成器404生成的板424将Z缓冲器426分割成单独的区域或板,该单独的区域或板对应于轮廓的同侧上的面的小片。
[0063]如果追踪的边表现为变成消隐的,则可见性追踪器410能够通过Z缓冲器426来追踪每条边并且识别可见性改变像素,例如图2C中示出的可见性改变像素246。对于一些实施方式,可见性追踪器410可以通过Z缓冲器426对边进行步进来确定被追踪的边在何处表现为变成消隐的。在步进处理期间,可见性追踪器410将被追踪的边表现为变成消隐的位置处的像素识别成可见性改变像素。
[0064]然后,板保护器412能够进行板保护。对于一些实施方式,板保护器412可以通过确定被追踪的边是否在来自相同的板的像素后面来进行板保护。如果板保护器412确定被追踪的边在来自相同的板的像素后面,则该被追踪的边没有被隐藏。从而,如果边和多边形来自相同的板,则无论Z值如何多边形都不隐藏该边。
[0065]如果边实际上被隐藏,即,板保护器412基于板保护没有确定该边应该可见,则边相交器414能够检查存储器304的Z缓冲器426部以确定可见性改变像素是否包含在多边形扫描转换期间先前标识的外部边。如果可见性改变像素包含外部边,则边相交器414能够从存储器422的边部分提取外部边,并且将由可见性追踪器410追踪的边与识别为与可见性改变像素对应的外部边进行边相交。对于一些实施方式,边相交器414能够将精确边相交。例如,边相交器414能够将非均匀有理B样条(NURBS)曲线与NURBS曲线相交而不是简单地将线段与线段相交。
[0066]对于混合隐藏线处理器306包括精确边跟踪器416的一些实施方式,精确边跟踪器416能够用存储在存储器304的精确边428部中的精确边信息代替小平面的边的信息。从而,精确边跟踪器416能够用精确边代替每个多边形的各小平面的边,以提供更准确的显示数据。混合隐藏线处理器306能够基于上述处理生成显示器308的显示数据。
[0067]对于一些实施方式,与用精确边428简单代替小平面的边相比,可以更直接地实现从小平面到精确图像的转换。对于这些实施方式,精确边跟踪器416能够基于小平面轮廓在精确表面的投影将小平面轮廓转换成精确轮廓,为了实现此目的,可以将小平面轮廓的端点投影到其关联的精确边428上。可以将小平面轮廓的内部点投影到下面的精确表面上。
[0068]另外,精确边跟踪器416能够根据下面的精确表面的类型来将精确曲线拟合到投影点。例如,对于平面来说不存在轮廓。对于柱体和锥体来说,沿着轮廓没有使用内部点。相反,使用了被投影到精确边上的轮廓的两个端点,并且在这两个端点之间生成了线。对于球体来说,通过投影的曲面细分的轮廓点生成圆弧。对于其它表面类型来说,可以通过投影的曲面细分的轮廓点来生成三次B样条曲线。在每个类型的曲线拟合期间,曲线的端点被保持在该端点所连接的精确边上。
[0069]此外,对于这些实施方式,可以将可见性改变点从小平面转换成精确。对于这些实施方式中的一些实施方式,这种转换使用牛顿一拉夫森步进算法(Newton Raphsonstepping algorithm)来求解两条精确曲线上的可见性改变点的位置。针对第一个可见性改变点,它被明确地移到精确边的起始处。针对每个内部可见性改变点,将当前可见性改变点投影到当前边上,以获得起始细化值。将匹配的可见性改变点投影到投影坐标空间中的匹配边上以获得t值。执行牛顿一拉夫森步进函数以细化2D中的可见性改变点。该细化的可见性改变点被用作可见性改变点。沿着边缓冲可见性改变点的列表。
[0070]图5是示出根据本公开内容的用于提供混合隐藏线处理的方法500的流程图,该方法可以由本文中公开的一个或更多个PDM数据处理系统执行。方法500开始于混合隐藏线处理器306接收曲面细分的图像数据(步骤502)。对于一些实施方式,混合隐藏线处理器接收来自曲面细分单元302的曲面细分的图像数据。对于其它实施方式,混合隐藏线处理器306可以从存储器304检索曲面细分的图像数据。例如,混合隐藏线处理器306可以从存储器304的多边形420部检索曲面细分的图像数据。以下描述假设多边形420为三角形。然而,可以理解的是,在不脱离本公开内容的范围的情况下,曲面细分的图像数据可以表示其它类型的多边形。
[0071]轮廓生成器402标记多边形420,同时基于多边形420的顶点的顶点法线生成轮廓(步骤504)。例如,轮廓生成器402可以在每个多边形420的三个多边形顶点中的每个顶点处执行轮廓函数,即法线与视向量的点积。如果针对三角形的三个顶点中的每个顶点轮廓函数均为负,则轮廓生成器402将该多边形识别为背面多边形,并且将该多边形本身标记在存储器304的多边形420部中。如果针对三角形的三个顶点中的每个顶点轮廓函数均为正,则轮廓生成器402将该多边形识别为正面多边形,并且将该多边形本身标记在存储器304的多边形420部中。对于背面多边形和正面多边形二者都不存在轮廓。
[0072]然而,如果轮廓生成器402确定三角形的轮廓函数是混合的,则轮廓生成器402沿着每条多边形边进行线性插值,以识别两个真正的轮廓点并且通过连接这两个轮廓点来形成轮廓线段。由于顶点中的两个顶点的轮廓函数将会具有相同的符号,因此在连接这两个点的边上不存在轮廓点。因而,轮廓生成器402可以沿着其它两条边进行线性插值,以识别真正的轮廓点。然后,轮廓生成器402将轮廓线段耦接在一起以生成轮廓边,并且将该轮廓边存储在存储器304的边422部中。
[0073]对于一些实施方式,轮廓生成器402通过针对已知类型的面将正确类型的精确曲线拟合到曲面细分的轮廓,以及针对未知类型的面通过曲面细分的轮廓点来拟合三次B样条,来生成精确轮廓边。对于双曲表面(例如图2F与图2G的表面278和280),轮廓生成器402可以识别表面的任何轮廓尖端点并且基于该轮廓尖端点生成板折线。
[0074]板生成器404生成板,板包括在轮廓的同侧上的面的小片(步骤506)。对于一些实施方式,板生成器404能够通过将由轮廓生成器402标记的每个正面多边形420添加到正面板来生成正面板,并且能够通过将由轮廓生成器402标记的每个背面多边形420添加到背面板来生成背面板。对于双曲表面(例如图2F与图2G的表面278和280),板生成器404可以基于由轮廓生成器402生成的板折线来生成板。
[0075]多边形扫描转换器406将由曲面细分的图像数据表示的多边形或多边形420扫描转换到Z缓冲器426中(步骤508)。对于一些实施方式,多边形扫描转换器406进行质心扫描转换,以在Z缓冲器可见性映射中生成连续函数。在扫描转换期间,多边形扫描转换器406识别多边形420的外部边和轮廓边,并且将作为这些边的一部分的像素标识为属于存储器304的Z缓冲器426部中的外部边(步骤510)。
[0076]Z缓冲器分割器408基于由板生成器404生成的板424将Z缓冲器426分割成单独的区域或者板(步骤512)。可见性追踪器410开始通过Z缓冲器426追踪边的可见性(步骤514)。如果可见性追踪器410完成对边的追踪而被追踪的边没有表现为变成消隐的(步骤516),则可见性追踪器410选择下一条待追踪的边(步骤518)并且开始新的可见性追踪(步骤514)。
[0077]然而,如果可见性追踪器410确定被追踪的边表现为变成消隐的(步骤516),则可见性追踪器410识别可见性改变像素,即,被追踪的边表现为变成消隐的位置处的像素(步骤520)。板保护器412进行板保护,以通过验证被追踪的边实际上是否是隐藏的来确保轮廓和边在多边形上是优选的。板保护器412通过确定被追踪的边是否在来自相同的板的像素后面(即,被追踪的边和可见性改变像素二者都来自正面板或者二者都来自背面板)来进行该验证(步骤522)。
[0078]如果板保护器412确定被追踪的边在来自相同的板的像素后面(步骤522),则板保护器412确定被追踪的边实际上不是被隐藏的,并且应该被显示。因而,如果边和多边形来自相同的板,则该多边形不隐藏该边。然后,可见性追踪器410继续追踪边而不将边隐藏到先前识别的可见性改变像素后面(步骤514)。然而,如果板保护器412确定被追踪的边在来自不同的板的像素后面(步骤522),则边相交器414对可见性改变像素是不是外部边的一部分做出确定(步骤524)。如果边相交器414确定如同在步骤510中由多边形扫描转换器406所标识的那样,可见性改变像素不是外部边的一部分(步骤524),则可见性追踪器410简单地将该边标识为在该像素位置处是隐藏的,然后继续追踪边(步骤514)。
[0079]然而,如果边相交器414确定如同在步骤510中由多边形扫描转换器406所标识的那样,可能性改变像素是外部边的一部分(步骤524),则边相交器414将被追踪的边与可见性改变像素是其一部分的外部边进行相交,以识别可见性改变点(步骤526)。对于一些实施方式,边相交器414能够使小平面的边(即线段)相交。对于其它实施方式,边相交器414能够使精确边(例如NURBS曲线)相交。
[0080]对于混合隐藏线处理器306包括精确边跟踪器416的实施方式,如果需要的话,精确边跟踪器416可以用存储在存储器304的精确边428部中的精确边信息代替多边形的边的信息(可选步骤528)。
[0081]如果还剩余其它边要追踪(步骤530),则选择下一条边(步骤518),并且可见性追踪器410开始追踪下一条边(步骤514)。然而,当没有剩余边要追踪时(步骤530),混合隐藏线处理器306基于上述处理技术生成显示器308的显示数据,并且显示器308基于显示数据显示经处理的图像(步骤532)。将可以理解的是,混合隐藏线处理器306可以在追踪边的同时生成显示器308的显示数据,而不是等到追踪了所有的边为止才生成显示数据。
[0082]以这种方式,提供了更准确且更快速的隐藏线处理技术。例如,板保护的实现确保了边(包括轮廓边)不被多边形的内部所隐藏。没有被隐藏的边可以用于进行次要误差清理。根据顶点法线生成准确轮廓,并且与基于多边形的边生成的不准确轮廓相比,准确轮廓可以实际上穿过多边形的中部。另外,与Z缓冲器步进相比,当实现质心扫描转换时,提供了更准确的多边形扫描转换。最后,针对提供精确细化的实施方式,可以根据小平面轮廓和已知的精确表面类型来生成精确轮廓,并且可以用精确边相交来代替线段相交,以提供更准确的结果。
[0083]本领域的普通技术人员应该理解,除非特别指出或对操作的顺序有要求,上述处理中的某些步骤可以被省略、组合、同时或顺序执行,或者按不同的顺序执行。可以在本公开内容的范围内对上述不同的示例性实施方式的处理和要素进行组合。
[0084]本领域的普通技术人员将会认识到,为了简单和清楚起见,适于与本公开内容一起使用的所有数据处理系统的完整结构和操作将不在此处进行描绘或描述。而是,只对这么多数据处理系统为本公开内容是特有的或为本公开内容的理解是必要的内容进行描绘和描述。数据处理系统100的其它结构和操作可以遵循本领域已知的各种当前的实施和实践中的任一种。
[0085]重要的是,尽管本公开内容包括了在全功能系统情况下的描述,但是本领域的普通技术人员将会理解的是,本公开内容的机制的至少一部分能够以以任何形式包含在机器可用、计算机可用或计算机可读介质中的指令的形式进行分布;还要注意的是,本公开内容均进行同样的应用,而不管用于实际执行该分布的指令或信号承载介质或存储介质的特定类型如何。机器可用/可读或计算机可用/可读介质包括:非易失性硬编码型介质,如只读存储器(ROM)或电可擦除可编程只读存储器(EEPROM);以及用户可记录型介质,如软盘、硬盘驱动器和只读光盘存储器(⑶-ROM)或数字多功能磁盘(DVD)。
[0086]所使用的附图标记、词汇的列表
[0087]100 数据处理系统
[0088]102 处理器
[0089]104 高速缓存/桥
[0090]106 本地系统总线
[0091]108 主存储器
[0092]110 图形适配器
[0093]111 显示器
[0094]112 局域网/广域网/无线适配器
[0095]114 扩展总线接口
[0096]116 输入/输出总线;
[0097]118 键盘/鼠标适配器
[0098]120 盘控制器
[0099]122 I/O 适配器
[0100]124 音频适配器
[0101]130 网络
[0102]140 服务器系统
[0103]202锥体
[0104]204方块
[0105]208可见线
[0106]210隐藏线
[0107]220曲面细分的锥体
[0108]222轮廓
[0109]224可见的外部边
[0110]226隐藏的轮廓线段
[0111]228隐藏的外部边
[0112]230内部边
[0113]240曲面细分的方块
[0114]242外部边
[0115]244边、被追踪的边
[0116]246可见性改变像素
[0117]248可见性改变点
[0118]250三维锥体
[0119]252平面
[0120]254圆形横截面
[0121]256正面板
[0122]258背面板
[0123]260曲面细分的横截面
[0124]268点、外部边的点
[0125]270点、内部边的点
[0126]278表面
[0127]280表面
[0128]282外部边
[0129]284轮廓
[0130]286板折线
[0131]288轮廓尖端点
[0132]300数据处理系统100的一部分
[0133]302曲面细分单元
[0134]304存储器
[0135]306隐藏线处理器、混合隐藏线处理器
[0136]308显示器
[0137]310路径
[0138]312路径
[0139]314
[0140]316路径
[0141]402轮廓生成器
[0142]404板生成器
[0143]406多边形扫描转换器
[0144]408Z缓冲器分割器
[0145]410可见性追踪器
[0146]412板保护器
[0147]414边相交器
[0148]416精确边跟踪器
[0149]420多边形部分
[0150]422边部分
[0151]424板部分
[0152]426Z 缓冲器
[0153]428精确边部分
[0154]500方法
[0155]502接收曲面细分的图像数据
[0156]504标记多边形并且生成轮廓
[0157]506生成板
[0158]508进行多边形扫描转换
[0159]510标识外部边上的像素
[0160]512基于板对Z缓冲器进行分割
[0161]514追踪边的可见性
[0162]516被追踪的边的表现为变成消隐的?
[0163]518选择下一条边
[0164]520识别可见性改变像素
[0165]522可见性改变像素来自与被追踪的边相同的板?
[0166]524可见性改变像素是外部边的一部分?
[0167]526将被追踪的边与外部边进行相交,以识别可见性改变点
[0168]528使用精确边来转换成精确模型
[0169]530另外的边?
[0170]532显示经处理的图像
[0171]ASIC专用集成电路
[0172]CAD计算机辅助设计
[0173]I/O输入/输出
[0174]LAN局域网
[0175]PCI外围部件互连
[0176]PDM产品数据管理
[0177]PLM产品生命周期管理
[0178]WAN广域网
【权利要求】
1.一种由产品数据管理数据处理系统(100)执行的、用于提供针对表示曲面细分的图像数据的多个多边形(420)的混合隐藏线处理的方法,每个多边形(420)包括多条边(422),所述方法包括: 由轮廓生成器(402)识别(504)背面板和正面板,其中,所述背面板包括位于所述曲面细分的图像数据的轮廓的背面侧上的多边形(420),所述正面板包括位于所述曲面细分的图像数据的轮廓的正面侧上的多边形; 在存储器(304)中标记(506)识别出的面板的多边形(402)本身; 执行(508) Z深度多边形(402)扫描转换,识别所述多边形(420)的外部边和轮廓边,以及将转换后的且识别出的数据存储到Z缓冲器(426)中; 对所述Z缓冲器(426)中的作为外部边的一部分的像素进行标识(510); 追踪(514)所述边; 识别(520)被追踪的边的子集中的每条被追踪的边的至少一个可见性改变像素; 针对每个可见性改变像素,确定(522)所述被追踪的边是否来自与对应于所述可见性改变像素的多边形相同的板;以及 针对被确定为(524)来自与对应于所述可见性改变像素的多边形相同的板的每条被追踪的边,显示(532)该被追踪的边。
2.根据权利要求1所述的方法,其中,所述边的至少一个子集中的每个子集包括外部边和内部边之一,所述方法还包括: 针对被追踪的边的子集中的、被确定为(524)与对应于所述可见性改变像素的多边形相比来自不同的板的每条被追踪的边,识别对应于所述可见性改变像素的外部边;以及针对每条识别出的外部边,使被追踪的边与该外部边相交(526),以识别可见性改变点。
3.根据权利要求2所述的方法,其中,使被追踪的边与该外部边相交(526)包括:使第一线段与第二线段相交。
4.根据权利要求2所述的方法,其中,使被追踪的边与该外部边相交(526)包括:使第一曲线与第二曲线相交。
5.根据权利要求1至4之一所述的方法,其中,所述多边形包括三角形,并且在所述三角形的顶点的每个顶点处执行轮廓函数,其中,所述轮廓函数是在所述三角形的三个顶点的每个顶点处的法线与视向量的点积。
6.根据权利要求5所述的方法,其中, 如果针对三角形的三个顶点中的每个顶点的轮廓函数均为负,则将所述多边形(402 )识别为背面多边形,并且确定针对所述多边形不存在轮廓; 如果针对三角形的三个顶点中的每个顶点的轮廓函数均为正,则将所述多边形识别为正面多边形,并且确定针对所述多边形不存在轮廓;以及 如果针对所述多边形的至少一个轮廓函数为负并且针对所述多边形的至少一个轮廓函数为正,则将所述多边形识别为轮廓多边形,沿着所述轮廓多边形(402)的边进行线性插值以识别两个轮廓点,并且通过连接所述两个轮廓点来形成轮廓线段。
7.根据权利要求6所述的方法,其中,进行所述线性插值包括:沿着所述轮廓多边形的第一边和所述轮廓多边形的第二边进行所述线性插值,以及其中,所述轮廓多边形的第三边由针对其的所述轮廓函数具有相同符号的两个顶点限定。
8.根据权利要求6所述的方法,其中,所述生成轮廓还包括:将针对所述轮廓多边形中的每个轮廓多边形的轮廓线段耦接在一起以生成轮廓边。
9.根据权利要求8所述的方法,其中,所述生成轮廓还包括:通过下述至少之一来细化所述轮廓边:(i)针对已知类型的面,将精确曲线拟合到所述轮廓边,以及(ii)针对未知类型的面,通过每个轮廓线段的轮廓点来拟合三次B样条。
10.一种数据处理系统,包括: 存储器,其被配置成存储表示曲面细分的图像数据的多边形、所述多边形的外部边以及正面板,所述正面板包括位于所述曲面细分的图像数据的轮廓的正面侧上的多边形; 耦接至所述存储器的混合隐藏线处理器,其中,所述处理器被配置成通过基于所述多边形的顶点法线生成轮廓并提供对于所述外部边和所述轮廓的板保护,来生成基于所述曲面细分的图像数据的显示数据;以及 耦接至所述处理器的显示器,其中,所述显示器被配置成显示基于所述显示数据的经处理的图像。
11.根据权利要求10所述的数据处理系统,其中,所述处理器包括: 板生成器,其被配置成生成所述正面板,以及生成包括位于所述轮廓的背面侧上的多边形的背面板; 可见性追踪器,其被配置成追踪所述边并且识别所述被追踪的边的子集中的每条被追踪的边的至少一个可见性改变像素;以及 板保护器,其被配置成通过以下方式来提供所述板保护:针对每个可见性改变像素,确定所述被追踪的边是否来自与对应于所述可见性改变像素的多边形相同的板,以及针对被确定为来自与对应于所述可见性改变像素的多边形相同的板的每条被追踪的边,使得该被追踪的边被显示。
12.根据权利要求11所述的数据处理系统,其中,所述处理器还包括边相交器,所述边相交器被配置成:(i)针对所述被追踪的边的子集中的、被确定为与对应于所述可见性改变像素的多边形相比来自不同的板的每条被追踪的边,识别对应于所述可见性改变像素的外部边,以及(ii)针对每条识别出的外部边,使所述被追踪的边与该外部边相交,以识别可见性改变点。
13.根据权利要求11所述的数据处理系统,其中,所述多边形包括三角形,以及其中,所述处理器还包括轮廓生成器,所述轮廓生成器被配置成针对每个多边形,通过以下步骤来生成所述轮廓: 在所述多边形的顶点中的每个顶点处执行轮廓函数; 如果针对三角形三个顶点中的每个顶点的轮廓函数均为负,则将所述多边形识别为背面多边形,并且确定针对所述多边形不存在轮廓; 如果针对三角形三个顶点中的每个顶点的轮廓函数均为正,则将所述多边形识别为正面多边形,并且确定针对所述多边形不存在轮廓;以及 如果针对所述多边形的至少一个轮廓函数为负并且针对所述多边形的至少一个轮廓函数为正,则将所述多边形识别为轮廓多边形,沿着所述轮廓多边形的边进行线性插值以识别两个轮廓点,并且通过连接所述两个轮廓点来形成轮廓线段。
14.根据权利要求13所述的数据处理系统,其中,所述轮廓生成器被进一步配置成识别所述轮廓多边形的第一边,并且沿着所述轮廓多边形的第二边和所述轮廓多边形的第三边进行所述线性插值,所述第一边由针对其的所述轮廓函数具有相同符号的两个顶点限定。
15.根据权利要求13所述的数据处理系统,其中,所述存储器被进一步配置成存储Z缓冲器,以及其中,所述处理器还包括多边形扫描转换器,所述多边形扫描转换器被配置成将所述多边形的质心扫描转换提供到所述Z缓冲器中。
16.根据权利要求15所述的数据处理系统,其中,所述处理器还包括Z缓冲器分割器,所述Z缓冲器分割器被配置成基于由所述板生成器生成的所述正面板和所述背面板将所述Z缓冲器中的多边形分割成板。
17.—种编码有可执行指令的非暂态计算机可读介质,所述可执行指令在被执行时,使得一个或更多个数据处理系统执行如下步骤: 生成正面板和背面板,其中,所述正面板包括位于轮廓的正面侧上的多边形,所述背面板包括位于所述轮廓的背面侧上的多边形,每个多边形包括多条边; 追踪所述边; 识别所述被追踪的边的子集中的每条被追踪的边的至少一个可见性改变像素; 针对每个可见性改变像素,确定所述被追踪的边是否来自与对应于所述可见性改变像素的多边形相同的板;以及 针对被确定为来自与对应于所述可见性改变像素的多边形相同的板的每条被追踪的边,生成用于显示的该被追踪的边。
18.根据权利要求17所述的计算机可读介质,其中,所述边的至少一个子集中的每个子集包括外部边和内部边之一,以及其中,所述计算机可读介质还编码有如下可执行指令:该可执行指令在被执行时,使得一个或更多个数据处理系统执行如下步骤: 针对所述被追踪的边的子集中的、被确定为与对应于所述可见性改变像素的多边形相比来自不同的板的被追踪的边,识别对应于所述可见性改变像素的外部边;以及 针对每条识别出的外部边,使所述被追踪的边与该外部边相交,以识别可见性改变点。
19.根据权利要求17所述的计算机可读介质,其中,所述多边形包括三角形,以及其中,所述计算机可读介质还编码有如下可执行指令:该可执行指令在被执行时,使得一个或更多个数据处理系统针对每个多边形执行如下步骤: 在所述多边形的顶点中的每个顶点处执行轮廓函数, 如果针对三角形三个顶点中的每个顶点的轮廓函数均为负,则将所述多边形识别为背面多边形,并且确定针对所述多边形不存在轮廓; 如果针对三角形三个顶点中的每个顶点的轮廓函数均为正,则将所述多边形识别为正面多边形,并且确定针对所述多边形不存在轮廓;以及 如果针对所述多边形的至少一个轮廓函数为负并且针对所述多边形的至少一个轮廓函数为正,则将所述多边形识别为轮廓多边形,沿着所述轮廓多边形的边进行线性插值以识别两个轮廓点,并且通过连接所述两个轮廓点来形成轮廓线段;以及将针对每个轮廓多边形的轮廓线段耦接在一起以生成轮廓边。
20.根据权利要求19所述的计算机可读介质,其中,所述多边形包括三角形,以及其中,所述计算机可读介质还编码有如下可执行指令:该可执行指令在被执行时,使得一个或更多个数据处理系统通过下述中至少之一来细化所述轮廓边:(i)针对已知类型的面,将精确曲线拟合到所述轮廓边,以及(ii)针对未知类型的面,通过每个轮廓线段的所述轮廓点来拟合三次B样条。
【文档编号】G06T15/40GK104488000SQ201280048164
【公开日】2015年4月1日 申请日期:2012年9月21日 优先权日:2011年9月29日
【发明者】加里·拉蒙·马钱特, 沙伊列什·拉特纳卡·卡迈尔卡尔 申请人:西门子产品生命周期管理软件公司