细分方法技术

技术编号:14270820 阅读:39 留言:0更新日期:2016-12-23 15:37
描述了使用顶点细分因数的细分方法。对于四边形补片,该方法涉及比较四边形补片的每个顶点的顶点细分因数与阈值,以及如果没有一个顶点细分因数超过阈值,则四边形被细分成两个或四个三角形。如果四个顶点细分因数中的至少一个超过阈值,则使用递归或迭代方法,其考虑四边形补片的每个顶点并确定如何根据选定顶点的顶点细分因数的值或根据选定顶点和邻顶点的顶点细分因数的值来进一步细分补片。对于三角形补片描述类似的方法。

【技术实现步骤摘要】
背景细分是在计算机图形中用于将表示在场景中的对象的一组表面分割成一般是三角形的多个更小和更简单的片(被称为基元)的技术,其更容易渲染。因而产生的细分的表面通常是对原始表面的近似,但这个近似的准确度可通过增加所产生的基元的数量来增加,这又通常导致基元更小。细分/再分的量通常由细节级别(LOD)确定。因此一般使用增加数量的基元,其中需要更高的细节级别,例如因为对象更接近观看者和/或对象具有更复杂的形状。然而,更大数量的三角形的使用增加了渲染场景所需的处理努力。一般对补片执行再分成三角形基元,补片在形状上是正方形或三角形的(即四边形或三角形)并可弯曲以与它们代表的对象的表面保持一致(并因此可被称为“表面补片”)和/或使位移映射被应用。然而,再分不对弯曲补片执行而替代地在补片的域中被执行(例如,好像补片是平面的,而不是由多项式方程定义),补片可从(u,v)参数方面被定义并被称为“参量空间”。这意味着细分过程独立于在最终表面中存在的任何曲率。细分可提前被执行(例如以计算在不同的细节级别处和/或来自不同的视角的场景的多个不同的视图)或可在运行中被执行(例如以提供连续或视图相关的细节级别)。使用一些现有的细分方法,用户可经历不希望有的视觉伪像,其中虽然所请求的细节级别平稳地改变,因而产生的细分以间断的方式改变并可被称为“爆裂”。下面所述的实施方式仅作为例子被提供,且并不是解决用于执行细分的已知方法和装置的任何或所有缺点的实现的限制。概述这个概述被提供来以简化的形式介绍一系列概念,其在下面在详细描述中被进一步描述。这个概述并不打算识别所主张的主题的关键特征或必要特征,也不打算用作在确定所主张的主题的范围时的帮助。描述了使用顶点细分因数的细分方法。对于四边形补片,该方法涉及比较四边形补片的每个顶点的顶点细分因数与阈值,且没有一个超过阈值,四边形被再分成两个或四个三角形(例如根据补片是顶级补片还是通过再分顶级补片而形成的子四边形)。如果四个顶点细分因数中的至少一个超过阈值(其可以等于一),则使用递归或迭代方法,其考虑四边形补片的每个顶点并确定如何根据选定顶点的顶点细分因数的值或根据选定顶点和邻顶点的顶点细分因数的值来进一步细分补片。对三角形补片描述类似的方法。第一方面提供在计算机图形系统中执行细分的方法,该方法包括:a)接收包括定义四边形补片的四个顶点的输入,每个顶点包括域空间坐标和顶点细分因数;b)比较顶点细分因数与阈值;c)响应于确定所有四个顶点细分因数不超过阈值,将补片分成两个或四个三角形;以及d)响应于确定四个顶点细分因数中的至少一个超过阈值:产生补片的中心顶点并计算新添加的中心顶点的顶点细分因数和混合因数;进而选择四个所接收的顶点中的每个,且对于每个选定顶点:基于选定顶点来定义顶点;响应于确定选定顶点的顶点细分因数超过阈值或两个邻顶点的顶点细分因数超过阈值,添加两个新顶点以再分在选定顶点和邻顶点之间的每条边,计算新顶点的顶点细分因数和混合因数并提供定义子四边形并包括所定义的顶点、中心顶点和两个新顶点的四个顶点作为(a)的进一步的输入;以及响应于确定选定顶点的顶点细分因数不超过阈值以及正好一个邻顶点的顶点细分因数超过阈值,添加新顶点以再分在选定顶点和具有超过阈值的顶点细分因数的邻顶点之间的边,并通过将所定义的顶点连接到由所定义的顶点、新添加的顶点、中心顶点和另一邻顶点定义的子四边形中的对角地相对的顶点来将该子四边形分成两个三角形。第二方面提供包括硬件逻辑的硬件细分单元,硬件逻辑被配置为:a)接收包括定义四边形补片的四个顶点的输入,每个顶点包括域空间坐标和顶点细分因数;b)比较顶点细分因数与阈值;c)响应于确定所有四个顶点细分因数不超过阈值,将补片分成两个或四个三角形;以及d)响应于确定四个顶点细分因数中的至少一个超过阈值:产生补片的中心顶点并计算新添加的中心顶点的顶点细分因数和混合因数;进而选择四个所接收的顶点中的每个,且对于每个选定顶点:基于选定顶点来定义顶点;响应于确定选定顶点的顶点细分因数超过阈值或两个邻顶点的顶点细分因数超过阈值,添加两个新顶点以再分在选定顶点和邻顶点之间的每条边,计算新顶点的顶点细分因数和混合因数并提供定义子四边形并包括所定义的顶点、中心顶点和两个新顶点的四个顶点作为(a)的进一步的输入;以及响应于确定选定顶点的顶点细分因数不超过阈值以及正好一个邻顶点的顶点细分因数超过阈值,添加新顶点以再分在选定顶点和具有超过阈值的顶点细分因数的邻顶点之间的边,并通过将所定义的顶点连接到由所定义的顶点、新添加的顶点、中心顶点和另一邻顶点定义的子四边形中的对角地相对的顶点来将该子四边形分成两个三角形。另外的方面提供存储在其上的在被执行时使至少一个处理器执行如本文所述的方法的计算机可执行程序代码的计算机可读存储介质、包括如本文所述的硬件细分单元的图形处理单元、具有在其上编码的定义如本文所述的硬件细分单元的计算机可读程序代码的计算机可读存储介质以及具有在其上编码的定义配置成执行本文所述的方法的硬件细分单元的计算机可读程序代码的计算机可读存储介质。优选特征可以视情况被组合,如将对技术人员明显的,并可与本专利技术的任一方面组合。附图的简要说明现在将参考附图作为例子描述本专利技术的实施方式,其中:图1示出使用各种已知的细分方法的结果;图2示出具有部分分割的位移映射的使用;图3是示出当顶点被引入时产生平稳过渡的方法的示意图;图4是示出使用具有边细分因数的现有技术方法和使用顶点细分因数的本文所述的方法得到的不同结果的例子的示意图;图5是示出在四边形域中使用边细分因数和顶点细分因数得到的不同结果的另外的例子的示意图;图6是示出在三角形域中使用边细分因数和顶点细分因数得到的不同结果的另外的例子的示意图;图7是如应用于四边形输入补片的使用顶点细分因数的示例细分方法的流程图;图8是如应用于三角形输入补片的使用顶点细分因数的示例细分方法的流程图;图9是示出图7的方法的示意图;图10示出使用图7的方法得到的结果的例子;图11是示出图8的方法的示意图;图12是示出使用图7和8的方法得到的结果的例子;图13是示例GPU管线的示意图;图14示出可被实现为计算和/或电子设备的任何形式并可配置成实现图7和8的细分方法的示例性基于计算的设备的各种部件;图15示出使用图7和8的方法得到的结果的另外的例子;以及图16是示出本文所述的方法可如何扩展到P边域的示意图。共同的参考数字在全部附图中用于指示相似的特征。详细描述下面仅作为例子描述本专利技术的实施方式。这些例子代表实施本专利技术的、申请人当前已知的最佳方式,虽然它们并不是这可被实现的唯一方式。该描述阐述例子的功能和用于构造和操作例子的步骤的顺序。然而,相同或等效的功能和顺序可由不同的例子实现。存在使用边细分因数(TF)的多种已知的细分方法,边细分因数(TF)对(例如四边形或三角形)补片的每条边被定义并确定边(和因而补片)应被再分多少次。图1示出当使用不同的边细分因数时因而产生的三角形如何不同,但对每条边是相同的细分因数。在图1中的前五个例子(a)-(e)示出:(a)整数分割,对于所有四条边,边TF=3(b)整数分割,对于所有四条边,边TF=4(c)二次幂整数分割,对于所有四条边,边T本文档来自技高网...
细分方法

【技术保护点】
一种包括硬件逻辑的硬件细分单元,所述硬件逻辑配置成:a)接收包括定义四边形补片的四个顶点的输入,每个顶点包括域空间坐标和顶点细分因数;b)比较所述顶点细分因数与阈值(702);c)响应于确定所有四个顶点细分因数小于或等于所述阈值,将所述补片分成两个或四个三角形(704‑710);以及d)响应于确定所述四个顶点细分因数中的至少一个超过所述阈值:产生所述补片的中心顶点并计算新添加的中心顶点的顶点细分因数和混合因数(712);进而选择四个所接收的顶点中的每个,且对于每个选定顶点:基于所述选定顶点来定义顶点(716);响应于确定所述选定顶点的顶点细分因数超过所述阈值或两个邻顶点的顶点细分因数超过所述阈值(720),添加两个新顶点以再分在所述选定顶点和邻顶点之间的每条边,计算所述新顶点的顶点细分因数和混合因数(726)并提供定义子四边形并包括所定义的顶点、所述中心顶点和所述两个新顶点的四个顶点作为(a)的进一步的输入(728);以及响应于确定所述选定顶点的顶点细分因数不超过所述阈值以及正好一个邻顶点的顶点细分因数超过所述阈值(724),添加新顶点以再分在所述选定顶点和具有超过所述阈值的顶点细分因数的所述邻顶点之间的边(734,738),并通过将所定义的顶点连接到在由所定义的顶点、新添加的顶点、所述中心顶点和另一邻顶点定义的子四边形中的对角地相对的顶点来将该子四边形分成两个三角形(736)。...

【技术特征摘要】
2015.06.05 GB 1509764.51.一种包括硬件逻辑的硬件细分单元,所述硬件逻辑配置成:a)接收包括定义四边形补片的四个顶点的输入,每个顶点包括域空间坐标和顶点细分因数;b)比较所述顶点细分因数与阈值(702);c)响应于确定所有四个顶点细分因数小于或等于所述阈值,将所述补片分成两个或四个三角形(704-710);以及d)响应于确定所述四个顶点细分因数中的至少一个超过所述阈值:产生所述补片的中心顶点并计算新添加的中心顶点的顶点细分因数和混合因数(712);进而选择四个所接收的顶点中的每个,且对于每个选定顶点:基于所述选定顶点来定义顶点(716);响应于确定所述选定顶点的顶点细分因数超过所述阈值或两个邻顶点的顶点细分因数超过所述阈值(720),添加两个新顶点以再分在所述选定顶点和邻顶点之间的每条边,计算所述新顶点的顶点细分因数和混合因数(726)并提供定义子四边形并包括所定义的顶点、所述中心顶点和所述两个新顶点的四个顶点作为(a)的进一步的输入(728);以及响应于确定所述选定顶点的顶点细分因数不超过所述阈值以及正好一个邻顶点的顶点细分因数超过所述阈值(724),添加新顶点以再分在所述选定顶点和具有超过所述阈值的顶点细分因数的所述邻顶点之间的边(734,738),并通过将所定义的顶点连接到在由所定义的顶点、新添加的顶点、所述中心顶点和另一邻顶点定义的子四边形中的对角地相对的顶点来将该子四边形分成两个三角形(736)。2.如权利要求1所述的硬件细分单元,其中配置成将所述补片分成两个或四个三角形的所述硬件逻辑包括配置成执行下列操作的硬件逻辑:确定所述补片是否是顶级补片(704);响应于确定所述补片是顶级补片,添加中心顶点(706)并通过将每个输入顶点连接到所述中心顶点来创建四个三角形(708);以及响应于确定所述补片不是顶级补片,通过将所述补片的源顶点连接到所述补片的对角地相对的顶点来创建两个三角形(710)。3.如权利要求1所述的硬件细分单元,其中配置成产生所述补片的中心顶点的所述硬件逻辑包括配置成执行下列操作的硬件逻辑:对于顶级补片:产生具有由(i)在N维空间中的所有四个角顶点的位置的平均值和(ii)在然后被映射到N维空间的域空间中的所有四个角顶点的定位的平均值的加权混合给出的位置的中心顶点;以及对于不是顶级补片的补片:产生具有由(i)在N维空间中的选定顶点和对角地相对的顶点的位置的平均值和(ii)在然后被映射到N维空间的域空间中的选定顶点和对角地相对的顶点的定位的平均值的加权混合给出的位置的中心顶点,以及其中所述加权混合使用根据所述顶点细分因数确定的权重。4.如权利要求3所述的硬件细分单元,其中所述权重由下式给出:MAXi=0..3(MIN(TFi–1,1))。5.如权利要求1所述的硬件细分单元,其中配置成计算所述新添加的中心顶点的顶点细分因数和混合因数的所述硬件逻辑包括配置成执行下列操作的硬件逻辑:使用下式计算初始顶点细分因数: InitialTF c e n t r e = ( TF 0 - 1 ) ( TF 1 - 1 ) ( TF 2 - 1 ) ( TF 3 - 1 ) 4 + 1 ]]>以及通过下列操作来计算所述新添加的中心顶点的顶点细分因数TFcentre和混合因数BWcentre:确定InitialTFcentre是否小于二;响应于确定InitialTFcentre小于2.0,设置TFcentre=1和BWcentre=BlendWeightFunc(TF0,TF1,TF2,TF3),其中:BlendWeightFunc(TF0,…TF3).=MAXi=0..3(MIN(TFi–1,1))响应于确定InitialTFcentre不小于2.0,设置TFcentre=InitialTFcentre/2和BWcentre=1.0。6.如权利要求1所述的硬件细分单元,其中配置成基于所述选定顶点来定义顶点的所述硬件逻辑包括配置成执行下列操作的硬件逻辑:设置所定义的顶点的域空间坐标等于所述选定顶点的域空间坐标;确定所述选定顶点的顶点细分因数是否等于1.0以及所述选定顶点的顶点细分因数是否小于2.0;响应于确定所述选定顶点的顶点细分因数等于1.0,设置所定义的顶点的顶点细分因数等于1.0并设置所定义的顶点的混合因数等于所述选定顶点的混合因数;响应于确定所述选定顶点的顶点细分因数不等于1.0并小于2.0,设置所定义的顶点的顶点细分因数等于1.0并设置所定义的顶点的混合因数等于比所述选定顶点的顶点细分因数小一;以及响应于确定所述选定顶点的顶点细分因数不小于2.0,设置所定义的顶点的顶点细分因数等于所述选定顶点的顶点细分因数的一半并设置所定义的顶点的混合因数等于一。7.如权利要求1所述的硬件细分单元,其中配置成添加两个新顶点以再分在所述选定顶点和邻顶点之间的每条边并计算所述新顶点的顶点细分因数和混合因数的所述硬件逻辑包括配置成执行下列操作的硬件逻辑:对于再分在顶点VA和VB之间的边的每个新顶点VM:使用下式计算VM的初始顶点细分因数: InitialTF M = ( TF A - 1 ) ( TF B - 1 ) 2 + 1 ]]>以及通过下列操作来计算新添加的顶点VM的顶点细分因数TFM和混合因数BWM:确定InitialTFM是否小于二;响应于确定InitialTFM小于2.0,设置TFM=1和BWM=MAX(MIN(TFA-1,1),MIN(TFB-1,1));响应于确定InitialTFM不小于2.0,设置TFM=InitialTFM/2和BWM=1.0;将在域空间中的VM的位置设置为VA和VB的域空间坐标的平均值并在N维空间中的具有使用BWM由(i)在N维空间中的VA和VB的位置的平均值和(ii)在然后被映射到N维空间的域空间中的VM的位置的加权混合给出的位置的位置处。8.如权利要求1所述的硬件细分单元,还包括配置成执行下列操作的硬件逻辑:接收包括定义三角形补片的三个顶点的输入,每个顶点包括域空间坐标和顶点细分因数;比较所述顶点细分因数与阈值(802);以及响应于确定所述三个顶点细分因数中的至少一个超过所述阈值,产生所述补片的中心顶点并计算新添加的顶点的顶点细分因数和混合因数(804);进而选择三个所接收的顶点中的每个,且对于每个选定顶点:基于所述选定顶点来定义顶点(808);响应于确定所述选定顶点的顶点细分因数超过所述阈值(812),添加两个新顶点以再分在所述选定顶点和邻顶点之间的每条边,计算所述新顶点的顶点细分因数和混合因数(818)并提供定义子四边形并包括所定义的顶点、所述中心顶点和所述两个新顶点的四个顶点作为(a)的进一步的输入(820);以及响应于确定所述选定顶点的顶点细分因数不超过所述阈值以及两个邻顶点的顶点细分因数都超过所述阈值(814),添加两个新顶点以再分在所述选定顶点和邻顶点之间的每条边(822),并通过将所定义的顶点连接到由所定义的顶点、新添加的顶点和所述中心顶点定义的子四边形中的对角地相对的顶点来将该子四边形分成两个三角形(824);响应于确定所述选定顶点的顶点细分因数不超过所述阈值、下一邻顶点的顶点细分因数超过所述阈值以及前一邻顶点的顶点细分因数不超过所述阈值(816),添加新顶点以再分在所述选定顶点和所述下一邻顶点之间的边(830),并绘制连接所定义的顶点、所述新添加的顶点和所述中心顶点的单个三角形(832);以及响应于确定所述选定顶点的顶点细分因数不超过所述阈值、下一邻顶点的顶点细分因数不超过所述阈值以及前一邻顶点的顶点细分因数超过所述阈值(816),添加新顶点以再分在所述选定顶点和所述前一邻顶点之间的边(834),并通过将所定义的顶点连接到由所定义的顶点、所述新添加的顶点、所述中心顶点和所述下一邻顶点定义的子四边形中的对角地相对的顶点来将该子四边形分成两个三角形(836)。9.如权利要求8所述的硬件细分单元,其中配置成对于三角形补片产生所述补片的中心顶点并计算新添加的顶点的顶点细分因数和混合因数的硬件逻辑包括配置成执行下列操作的硬件逻辑:产生具有在由所述三角形补片的所述三个顶点的平均值给出的域空间中的位置的中心顶点;使用下式计算初始顶点细分因数: InitialTF c e n t r e = ( TF 0 - 1 ) ( . TF 1 - 1 ) . ( TF 2 - 1 ) 3 + 1 ]]>以及通过下列操作来计算新添加的中心顶点的顶点细分因数TFcentre和混合因数BWcentre:确定InitialTFcentre是否小于二;响应于确定InitialTFcentre小于2.0,设置TFcentre=1和BWcentre=BlendWeightFunc(TF0,TF1,TF2),其中:BlendWeightFunc(TF0,…TF2).=MAXi=0..2(MIN(TFi–1,1))响应于确定InitialTFcent...

【专利技术属性】
技术研发人员:S·菲尼瓦士利基·斯麦阿基
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1