CN115861512B - 用于曲面细分的输出点序列确定方法及装置、存储介质 - Google Patents

用于曲面细分的输出点序列确定方法及装置、存储介质 Download PDF

Info

Publication number
CN115861512B
CN115861512B CN202310082088.5A CN202310082088A CN115861512B CN 115861512 B CN115861512 B CN 115861512B CN 202310082088 A CN202310082088 A CN 202310082088A CN 115861512 B CN115861512 B CN 115861512B
Authority
CN
China
Prior art keywords
point
sequence
inner ring
stitching
output
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
Application number
CN202310082088.5A
Other languages
English (en)
Other versions
CN115861512A (zh
Inventor
张亮
张祖英
孙超
周义满
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Li Computing Technology Shanghai Co ltd
Original Assignee
Li Computing Technology Shanghai Co ltd
Nanjing Lisuan Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Li Computing Technology Shanghai Co ltd, Nanjing Lisuan Technology Co ltd filed Critical Li Computing Technology Shanghai Co ltd
Priority to CN202310082088.5A priority Critical patent/CN115861512B/zh
Publication of CN115861512A publication Critical patent/CN115861512A/zh
Application granted granted Critical
Publication of CN115861512B publication Critical patent/CN115861512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Sewing Machines And Sewing (AREA)
  • Image Generation (AREA)

Abstract

本申请提供了一种用于曲面细分的输出点序列确定方法及装置、存储介质,用于曲面细分的输出点序列确定方法包括:确定待显示的图形;将每一面片划分为N个缝合部分;对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,第一输出点序列是针对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的;对于每一内部环,根据第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在第一缝合部分的细分点与该内部环在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列。本申请技术方案能够减少曲面细分过程中的缝合操作,进而降低对硬件资源的要求。

Description

用于曲面细分的输出点序列确定方法及装置、存储介质
技术领域
本申请涉及图形处理领域,尤其涉及一种用于曲面细分的输出点序列确定方法及装置、存储介质。
背景技术
曲面细分技术(Tessellation)利用图形处理单元(Graphics Processing Unit,GPU)硬件加速,将现有图形的三角形拆分得更细小、更细致,大大增加三角形数量。
现有技术中,对于给定的面片,曲面细分技术会适配出合适的细分因子(TessFactor)。基于细分因子,可以对面片划分合适数量的环以及各个环上的细分点。其中,细分因子包括外环细分因子(Outer Tess Factor, Outer tf)和内环细分因子(Inner TessFactor, Inner tf)。外环细分因子用于确定面片最外环的细分程度,内环细分因子用于确定除面片最外环之外其他所有内环的细分程度。对各个环上所有细分的点做一圈缝合操作,也即将该环上两条边上细分的点以三角形形状连接起来,直到该环缝合结束完成一轮迭代。待所有环均缝合结束,停止所有迭代。面片缝合结束后,可以得到全部输出点序列,也称为三角带(triangle strip)。三角带中相邻三个点表示三角形的三个顶点。
现有技术中是在所有的细分点缝合完成之后将输出点序列进行输出,而缝合操作具有较高的计算复杂度,对硬件资源要求较高。此外,曲面细分方法产生的三角形的数量会很大,输出点序列中所包括的顶点数量很大,将会给后续的计算和存储造成较大压力。
发明内容
本申请提供了一种用于曲面细分的输出点序列确定方法及装置、存储介质,能够减少曲面细分过程中的缝合操作,进而降低对硬件资源的要求。
为了达到上述目的,本申请提供了以下技术方案:
第一方面,提供了一种用于曲面细分的输出点序列确定方法,用于曲面细分的输出点序列确定方法包括:确定待显示的图形,所述图形的轮廓划分为多个面片,每一面片具有N个边,每一面片由内向外被划分为多个环,N为大于等于3的正整数;将每一面片划分为N个缝合部分,每一缝合部分为由所述面片的中心点和边所界定的三角形;对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,所述第一输出点序列是针对该内部环在所述第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的,内部环为所述多个环中除最外环之外的环,所述第一缝合部分选自所述N个缝合部分;对于每一内部环,根据所述第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在所述第一缝合部分的细分点与在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列,所述第二缝合部分为所述N个缝合部分中除第一缝合部分之外的其他缝合部分或者在位置上与所述第一缝合部分相对的缝合部分。
可选的,所述第二输出点序列中各个第二内缘细分点和第二外缘细分点的排列顺序与对应的第一内缘细分点和第一外缘细分点在所述第一输出点序列中的排列顺序一致。
可选的,所述位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与该内部环在第二缝合部分的第二内缘细分点的第一映射关系,以及该内部环在第一缝合部分的第一外缘细分点与该内部环在第二缝合部分的第二外缘细分点的第二映射关系,所述确定该内部环在第二缝合部分的第二输出点序列包括:对于所述第一输出点序列中的第一内缘细分点,按照所述第一内缘细分点的索引以及所述第一映射关系确定所述第二输出点序列中对应的第二内缘细分点的索引;对于所述第一输出点序列中的第一外缘细分点,按照所述第一外缘细分点的索引以及所述第二映射关系确定所述第二输出点序列中对应的第二外缘细分点的索引。
可选的,所述位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与在第二缝合部分的第二内缘细分点的内部位置偏移量,以及,该内部环在第一缝合部分的第一外缘细分点与在第二缝合部分的第二外缘细分点的外部位置偏移量,所述确定该内部环在第二缝合部分的第二输出点序列包括:对于所述第一输出点序列中的第一内缘细分点,按照所述第一内缘细分点的索引以及所述内部位置偏移量确定所述第二输出点序列中对应的第二内缘细分点的索引;对于所述第一输出点序列中的第一外缘细分点,按照所述第一外缘细分点的索引以及所述外部位置偏移量确定所述第二输出点序列中对应的第二外缘细分点的索引。
可选的,所述获取该内部环在第一缝合部分的第一输出点序列包括:对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合,以获得所述第一输出点序列。
可选的,所述对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合包括:确定该内部环在所述第一缝合部分内的外缘上的外缘细分点序列、位于内缘上的内缘细分点序列以及缝合顺序,并按照所述缝合顺序缝合所述外缘细分点以及所述内缘细分点,所述缝合顺序表示缝合时在所述外缘细分点序列和所述内缘细分点序列内的移动顺序。
可选的,所述获取该内部环在第一缝合部分的第一输出点序列包括:接收来自镶嵌器的第一输出点序列,所述第一输出点序列是所述镶嵌器针对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的。
可选的,N为3时,所述第二缝合部分为3个缝合部分中除第一缝合部分之外的其他缝合部分;N为4时,所述第二缝合部分为4个缝合部分中在位置上与所述第一缝合部分相对的缝合部分。
可选的,每一面片中各个边上细分点的数量相同。
可选的,所述第一输出点序列存储于缓存中,所述确定该内部环在第二缝合部分的第二输出点序列之前还包括:从所述缓存中获取第一输出点序列。
可选的,用于曲面细分的输出点序列确定方法还包括:对于每一内部环,将该内部环在所述第一缝合部分的第一输出点序列和该内部环在所述第二缝合部分的第二输出点序列进行合并,以获得该内部环的输出点序列。
第二方面,本申请还公开一种用于曲面细分的输出点序列确定装置,输出点序列确定装置包括:图形确定模块,用于确定待显示的图形,所述图形的轮廓划分为多个面片,每一面片具有N个边,每一面片由内向外被划分为多个环,N为大于等于3的正整数;划分模块,用于将每一面片划分为N个缝合部分,每一缝合部分为由所述面片的中心点和边所界定的三角形;获取模块,用于对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,所述第一输出点序列是针对该内部环在所述第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的,内部环为所述多个环中除最外环之外的环,所述第一缝合部分选自所述N个缝合部分;输出点序列确定模块,用于对于每一内部环,根据所述第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在所述第一缝合部分的细分点与在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列,所述第二缝合部分为所述N个缝合部分中除第一缝合部分之外的其他缝合部分或者在位置上与所述第一缝合部分相对的缝合部分。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器运行以执行第一方面提供方法。
第四方面,提供了一种通信装置,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,处理器运行计算机程序以执行第一方面提供的一种方法。
第五方面,提供了一种计算机程序产品,其上存储有计算机程序,计算机程序被处理器运行以执行第一方面或第二方面提供的任意一种方法。
第六方面,本申请实施例还提供一种芯片,该芯片上存储有计算机程序,在计算机程序被芯片执行时,实现上述方法的步骤。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
本申请技术方案中,对于每一面片内的N个缝合部分,可以仅对内部环在第一缝合部分内的部分执行缝合操作,获得内部环在第一缝合部分的第一输出点序列;对于内部环在第二缝合部分的部分,则可以根据该内部环在所述第一缝合部分的细分点与在第二缝合部分的细分点的位置映射关系,来获得第二输出点序列。通过本申请技术方案,能够减少缝合操作,也即减少需要缝合的细分点的数量,从而降低曲面细分过程对硬件资源的要求。此外,在需要缝合的细分点的数量减少后,执行缝合操作的镶嵌器需要传输的输出点序列中细分点的数量也变少了,从而降低数据传输带宽。
进一步地,本申请技术方案利用每一内部环在各个缝合部分的细分点位置分布的规律性,以及缝合顺序的一致性,实现第一输出点序列到第二输出点序列的映射,从而减少缝合操作,以及数据传输带宽。
附图说明
图1是本申请实施例提供的一种用于曲面细分的输出点序列确定方法的流程图;
图2是本申请实施例提供的一种面片内缝合部分的示意图;
图3是本申请实施例提供的另一种面片内缝合部分的示意图;
图4是本申请实施例提供的一种具体应用场景的示意图;
图5是本申请实施例提供的另一种具体应用场景的示意图;
图6是本申请实施例提供的又一种具体应用场景的示意图;
图7是本申请实施例提供的一种用于曲面细分的装置的结构示意图;
图8是本申请实施例提供的一种用于曲面细分的输出点序列确定装置的结构示意图。
具体实施方式
如背景技术中所述,现有技术中是在所有的细分点缝合完成之后将输出点序列进行输出,而缝合操作具有较高的计算复杂度,对硬件资源要求较高。此外,曲面细分方法产生的三角形的数量会很大,输出点序列中所包括的顶点数量很大,将会给后续的计算和存储造成较大压力。
本申请技术方案中,对于每一面片内的N个缝合部分,可以仅对内部环在第一缝合部分内的部分执行缝合操作,获得内部环在第一缝合部分的第一输出点序列;对于内部环在第二缝合部分的部分,则可以根据该内部环在所述第一缝合部分的细分点与在第二缝合部分的细分点的位置映射关系,来获得第二输出点序列。通过本申请技术方案,能够减少缝合操作,也即减少需要缝合的细分点的数量,从而降低曲面细分过程对硬件资源的要求。此外,在需要缝合的细分点的数量减少后,执行缝合操作的镶嵌器需要传输的输出点序列中细分点的数量也变少了,从而降低数据传输带宽。
进一步地,对于所述第一输出点序列中的第一内缘细分点,按照所述第一内缘细分点的索引以及所述内部位置偏移量确定对应的第二内缘细分点的索引;对于所述第一输出点序列中的第一外缘细分点,按照所述第一外缘细分点的索引以及所述外部位置偏移量确定对应的第二外缘细分点的索引。本申请技术方案利用每一内部环在各个缝合部分的细分点位置分布的规律性,以及缝合顺序的一致性,实现第一输出点序列到第二输出点序列的映射,从而减少缝合操作,以及数据传输带宽。
为使本申请的上述目的、特征和优点能够更为明显易懂,下面结合附图对本申请的具体实施例做详细的说明。
参见图1,本申请提供的方法包括:
步骤101:确定待显示的图形,所述图形的轮廓划分为多个面片,每一面片具有N个边,每一面片由内向外被划分为多个环,N为大于等于3的正整数;
步骤102:将每一面片划分为N个缝合部分,每一缝合部分为由所述面片的中心点和边所界定的三角形;
步骤103:对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,所述第一输出点序列是针对该内部环在所述第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的,内部环为所述多个环中除最外环之外的环,所述第一缝合部分选自所述N个缝合部分;
步骤104:对于每一内部环,根据所述第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在所述第一缝合部分的细分点与在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列,所述第二缝合部分为所述N个缝合部分中除第一缝合部分之外的其他缝合部分或者在位置上与所述第一缝合部分相对的缝合部分。
需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
可以理解的是,在具体实施中,所述用于曲面细分的输出点序列确定方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中。该方法也可以采用软件结合硬件的方式实现,本申请不作限制。
在步骤101的具体实施中,确定待显示的图形,例如,该图形为表示三维物体的图形,图形具有轮廓。具体地,图形可以是预先生成的待显示的图形。通过曲面细分技术对图形进行处理,能够将图形轮廓的各个面片进一步细分为更小的图元。图形中所有面片的输出点序列可以经过进一步处理后在显示界面进行显示,从而使图形具有更加接近真实世界的显示效果。本实施例中,面片为具有N个边的封闭的N边形。例如,面片可以是三角形(triangle),四边形(quad)或任何其它类型的多边形。
具体地,面片可以是二维(2D)形状。具体地,面片是将被呈现的对象的表面的一部分。
进一步地,每一面片还可以由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点。多个环可以在面片内呈同心形状,多个环的形状与面片的形状相同。例如,如果面片的形状是四边形,则距离该四边形的中心最远的环为最外环,其他环则为内部环,内部环为一系列具有较小尺寸的环。类似地,如果面片的形状是三角形,则距离该三角形的中心最远的环为最外环,其他环则为内部环,内部环为一系列具有较小尺寸的环。具体实施中,可以通过为面片配置细分因子(Tessfactor),来将面片划分为合适数量的环以及合适数量的细分点。
在步骤102的具体实施中,将面片划分为N个缝合部分。例如,面片为四边形时,该面片被划分为四个缝合部分;面片为三角形时,该面片被划分为三个缝合部分。每一缝合部分为由面片的中心点和边所界定的三角形。
具体请一并参照图2,面片为四边形,该四边形被划分为四个缝合部分P1、P2、P3和P4。其中,缝合部分P1为由四边形的边L1和中心点O所界定的三角形,缝合部分P2为由四边形的边L2和中心点O所界定的三角形,缝合部分P3为由四边形的边L3和中心点O所界定的三角形,缝合部分P4为由四边形的边L4和中心点O所界定的三角形。
相应地,请参照图3,面片为三角形,该三角形被划分为三个缝合部分P1、P2和P3。其中,缝合部分P1为由三角形的边L1和中心点O所界定的三角形,缝合部分P2为由三角形的边L2和中心点O所界定的三角形,缝合部分P3为由三角形的边L3和中心点O所界定的三角形。
同一内部环在不同的缝合部分内的细分点的位置分布具有规律性,换言之,同一内部环在不同的缝合部分内的细分点的位置具有映射关系。那么在获知内部环在其中一个或相邻两个缝合部分内的缝合结果(也即输出点序列)的情况下,可以通过计算获得该内部环在其他缝合部分的输出点序列。
因此,在步骤103和步骤104的具体实施中,首先获取内部环在第一缝合部分的第一输出点序列,并根据第一输出点序列中各个内缘细分点和外缘细分点的排列顺序,以及该内部环在第一缝合部分的细分点与该内部环在第二缝合部分的细分点的位置映射关系确定该内部环在第二缝合部分的第二输出点序列。
其中,在面片的形状为三角形时,第二缝合部分为三个缝合部分中除第一缝合部分之外的其他缝合部分;在面片的形状为四角形时,第二缝合部分为四个缝合部分中在位置上与第一缝合部分相对的缝合部分。
进一步地,第一输出点序列中包括顺序排列的第一内缘细分点和第一外缘细分点,第二输出点序列中包括顺序排列的第二内缘细分点和第二外缘细分点。第二内缘细分点与第一内缘细分点相对应,第二外缘细分点与第一外缘细分点相对应。第二输出点序列中各个第二内缘细分点和第二外缘细分点的排列顺序与对应的第一内缘细分点和第一外缘细分点在所述第一输出点序列中的排列顺序一致。换言之,内部环在第一缝合部分的缝合顺序与内部环在第二缝合部分的缝合顺序相同。
本实施例中,通过上述计算的方式,而非缝合操作获得第二输出点序列,能够减少需要执行缝合操作的细分点的数量,从而在整体上降低缝合的复杂度以及计算量,降低曲面细分过程对硬件资源的要求。
在步骤103和步骤104的一个具体实施方式中,可以逐个对内部环获取第一输出点序列以及计算第二输出点序列。例如,对于图4中的内部环301、内部环302和内部环303,可以在获得内部环301的第一输出点序列后开始计算内部环301的第二输出点序列;在获得内部环302的第一输出点序列后开始计算内部环302的第二输出点序列;在获得内部环303的第一输出点序列后开始计算内部环303的第二输出点序列。
在步骤103和步骤104的另一个具体实施方式中,也可以在获取所有内部环的第一输出点序列后,再一并计算各个内部环第二输出点序列。例如,对于图4中的内部环301、内部环302和内部环303,可以在获得内部环301、内部环302和内部环303的全部第一输出点序列后,再开始计算内部环301的第二输出点序列,内部环302的第二输出点序列以及内部环303的第二输出点序列。
在本申请一个非限制性的实施例中,位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与该内部环在第二缝合部分的第二内缘细分点的第一映射关系,以及该内部环在第一缝合部分的第一外缘细分点与该内部环在第二缝合部分的第二外缘细分点的第二映射关系。那么,对于第一输出点序列中的第一内缘细分点,按照第一内缘细分点的索引以及第一映射关系确定第二输出点序列中对应的第二内缘细分点的索引;对于第一输出点序列中的第一外缘细分点,按照第一外缘细分点的索引以及第二映射关系确定第二输出点序列中对应的第二外缘细分点的索引。
具体实施中,第一映射关系和第二映射关系可以是指细分点的位置之间的映射关系。细分点的位置具体可以采用坐标来表示,或者采用位置索引来表示。那么第一映射关系和第二映射关系可以是细分点的坐标之间的映射关系,或者是细分点的索引之间的映射关系。
具体地,结合图3和图4,以内部环301为例,内部环301在第一缝合部分P1的第一内缘细分点为{18,19,20,21,22},内部环301在第二缝合部分P3的第二内缘细分点为{26,27,28,29,18},则第一内缘细分点与第二内缘细分点第一映射关系是指细分点18对应细分点26,细分点19对应细分点27,以此类推,细分点22对应细分点18。
相应地,内部环301在第一缝合部分P1的第一外缘细分点的索引为{0,1,2,3,4,5,6},内部环301在第二缝合部分P3的第二外缘细分点的索引为{12,13,14,15,16,17,0},则第一外缘细分点与第二外缘细分点第二映射关系是指细分点0对应细分点12,细分点1对应细分点13,以此类推,细分点6对应细分点0。
在本申请另一个非限制性的实施例中,在第一内缘细分点和第二内缘细分点中细分点的索引连续的情况下,位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与在第二缝合部分的第二内缘细分点的内部位置偏移量。那么,对于第一输出点序列中的第一内缘细分点,可以按照第一内缘细分点的索引以及内部位置偏移量确定对应的第二内缘细分点的索引。
相应地,在第一外缘细分点和第二外缘细分点中细分点的索引连续的情况下,位置映射关系包括该内部环在第一缝合部分的第一外缘细分点与在第二缝合部分的第二外缘细分点的外部位置偏移量。具体地,对于第一输出点序列中的第一外缘细分点,按照第一外缘细分点的索引以及外部位置偏移量确定对应的第二外缘细分点的索引。
下面结合图4对步骤104的具体实施方式进行详细说明。
以内部环301为例,内部环301在第一缝合部分P1的第一外缘细分点的索引为{0,1,2,3,4,5,6},第一内缘细分点的索引为{18,19,20,21,22},第一输出点序列为{0,1,18,19,1,2,19,20,2,3,20,4,21,5,22,6}。缝合效果如图4所示。
内部环301在第二缝合部分P2的第二外缘细分点的索引为{6,7,8,9,10,11,12},第二内缘细分点的索引为{22,23,24,25,26}。第一内缘细分点与第二内缘细分点的内部位置偏移量为4,以及,第一外缘细分点与第二外缘细分点的外部位置偏移量为6。那么对于第一输出点序列{0,1,18,19,1,2,19,20,2,3,20,4,21,5,22,6},0为第一外缘细分点的索引,则增加外部位置偏移量6,获得第二内缘细分点的索引6;1为第一外缘细分点的索引,则增加外部位置偏移量6,获得第二内缘细分点的索引7;18为第一内缘细分点的索引,则增加内部位置偏移量4,获得第二内缘细分点的索引22,以此类推,获得第二输出点序列{6,7,22,23,7,8,23,24,8,9,24,10,25,11,26,12}。
内部环301在第二缝合部分P3的第二外缘细分点的索引为{12,13,14,15,16,17,0},第二内缘细分点的索引为{26,27,28,29,18}。那么对于第一输出点序列{0,1,18,19,1,2,19,20,2,3,20,4,21,5,22,6},0为第一外缘细分点的索引,则对应的第二外缘细分点的索引为12;1为第一外缘细分点的索引,其对应的第二内缘细分点的索引13;18为第一内缘细分点的索引器对应的第二内缘细分点的索引为26,以此类推,获得第二输出点序列{12,13,26,27,13,14,27,28,14,15,28,16,29,17,18,0}。
内部环301的最终缝合效果如图5所示。
需要说明的是,上述实施例是以第一缝合部分为缝合部分P1为例进行说明的,第一缝合部分也可以是缝合部分P2,相应的,第二缝合部分为缝合部分P1和缝合部分P3;或第一缝合部分也可以是缝合部分P3,第二缝合部分为缝合部分P2和缝合部分P3,本申请对此不作限制。
一并参照图4和图6,对于内部环302,内部环302在第一缝合部分P1的第一外缘细分点的索引为{22,21,20,19,18},第一内缘细分点的索引为{32,31,30},第一输出点序列为{22,21,32,31,21,20,31,19,30,18}。
内部环302在第二缝合部分P2的第二外缘细分点的索引为{26,25,24,23,22},第二内缘细分点的索引为{34,33,32}。第一内缘细分点与第二内缘细分点的内部位置偏移量为2,以及,第一外缘细分点与第二外缘细分点的外部位置偏移量为4。那么经过计算后,获得第二输出点序列为{26,25,34,33,25,24,33,23,32,22}。
内部环302在第三缝合部分P3的第二外缘细分点的索引为{18,29,28,27,26},第二内缘细分点的索引为{30,35,34}。经过计算后,获得第二输出点序列为{18,29,30,35,29,28,35,27,34,26}。
对于内部环303,内部环303在第一缝合部分P1的第一外缘细分点的索引为{30,31,32},第一内缘细分点的索引为{36},第一输出点序列为{30,31,36,32}。
内部环303在第二缝合部分P2的第二外缘细分点的索引为{32,33,34},第二内缘细分点的索引为{36}。则计算获得第二输出点序列为{32,33,36,34}。
内部环303在第三缝合部分P3的第二外缘细分点的索引为{34,35,30},第二内缘细分点的索引为{36}。则计算获得第二输出点序列为{34,35,36,30}。
内部环301、内部环302和内部环303的最终缝合效果如图6所示。
下面结合图2对上述方法进行说明。
与前述实施例不同的是,图2中示出的面片是四边形。在四边形中,对边上细分点的分布具有相同的规律,因此,可以根据内部环在第一缝合部分的第一输出点序列确定与第一缝合部分在位置上相对的缝合部分的输出点序列。
具体地,一并参照图2,先获取内部环201在第一缝合部分P1的第一输出点序列,根据该第一输出点序列可以确定内部环201在第二缝合部分P3的第二输出点序列。相应地,先获取内部环201在第一缝合部分P2的第一输出点序列,根据该第一输出点序列可以确定内部环201在第二缝合部分P4的第二输出点序列。内部环202在各个缝合部分的输出点序列的获取方式相类似,此处不再赘述。
与现有技术中需要对面片的四个缝合部分执行缝合操作相比,本申请仅需对缝合部分P1和缝合部分P2执行缝合操作,缝合部分P3和缝合部分P4无需执行缝合操作,从而在整体上降低缝合的复杂度以及计算量,降低曲面细分过程对硬件资源的要求。
图7示出了一种用于曲面细分的装置的结构图。该装置包括外壳着色器701、镶嵌器702和域着色器703。其中,外壳着色器701用于确定面片的细分因子,以将面片划分为合适数量的环以及合适数量的细分点。镶嵌器702用于对面片中执行缝合操作,以获得输出点序列。域着色器703用于根据面片的输出点序列插值获得各个点的坐标。
在一个具体实施例中,可以由镶嵌器702执行上述输出点序列确定方法的各个步骤。
本实施例中,镶嵌器702可以对最外环上的内缘细分点和外缘上的外缘细分点执行缝合操作,以及对各个内部环在第一缝合部分内的内缘细分点和外缘上的外缘细分点执行缝合操作。而对于各个内部环在第二缝合部分内的内缘细分点和外缘上的外缘细分点则不必执行缝合操作。这是因为,镶嵌器702可以结合第一输出点序列以及细分点之间的位置映射关系来计算获得各个内部环在第二缝合部分的输出点序列。
镶嵌器702将各个环的输出点序列传输至域着色器703。
与现有技术相比,本申请实施例中的镶嵌器702需要缝合的细分点的数量变少,从而降低曲面细分过程对硬件资源的要求。
在另一个具体实施例中,可以由域着色器703执行上述输出点序列确定方法的各个步骤。
本实施例中,镶嵌器702可以对最外环上的内缘细分点和外缘上的外缘细分点执行缝合操作,以及对各个内部环在第一缝合部分内的内缘细分点和外缘上的外缘细分点执行缝合操作。镶嵌器702将最外环的输出点序列,以及各个内部环在第一缝合部分内的第一输出点序列传输至域着色器703。
域着色器703可以结合第一输出点序列以及细分点之间的位置映射关系来计算获得各个内部环在第二缝合部分的输出点序列。
与现有技术相比,本申请实施例中的镶嵌器702需要缝合的细分点的数量变少,从而降低曲面细分过程对硬件资源的要求。并且,镶嵌器702向域着色器703传输的数据量也变少了,降低了数据传输带宽。
例如,与现有技术中镶嵌器702需要向域着色器703传输同一环所有输出点序列相比,在面片的形状为三角形时,镶嵌器702仅需向域着色器703传输同一环中1/3的输出点序列,剩余输出点序列可以由域着色器703计算获得。
进一步地,域着色器703在接收到各个内部环在第一缝合部分内的第一输出点序列,可以将第一输出点序列存储于缓存中。并在计算第二输出点序列时,从该缓存中获取第一输出点序列。
关于本申请实施例的更多具体实现方式,请参照前述实施例,此处不再赘述。
请参照图8,图8示出了一种用于曲面细分的输出点序列确定装置80,用于曲面细分的输出点序列确定装置80可以包括:
图形确定模块801,用于确定待显示的图形,图形的轮廓划分为多个面片,每一面片具有N个边,每一面片由内向外被划分为多个环,N为大于等于3的正整数;
划分模块802,用于将每一面片划分为N个缝合部分,每一缝合部分为由面片的中心点和边所界定的三角形;
获取模块803,用于对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,第一输出点序列是针对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的,内部环为多个环中除最外环之外的环,第一缝合部分选自N个缝合部分;
输出点序列确定模块804,用于对于每一内部环,根据第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在第一缝合部分的细分点与在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列,第二缝合部分为N个缝合部分中除第一缝合部分之外的其他缝合部分或者在位置上与所述第一缝合部分相对的缝合部分。
本申请实施例能够减少缝合操作,也即减少需要缝合的细分点的数量,从而降低曲面细分过程对硬件资源的要求。此外,在需要缝合的细分点的数量减少后,执行缝合操作的镶嵌器需要传输的输出点序列中细分点的数量也变少了,从而降低数据传输带宽。
在一个非限制性的实施例中,位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与该内部环在第二缝合部分的第二内缘细分点的第一映射关系,以及该内部环在第一缝合部分的第一外缘细分点与该内部环在第二缝合部分的第二外缘细分点的第二映射关系。对于第一输出点序列中的第一内缘细分点,按照第一内缘细分点的索引以及第一映射关系确定第二输出点序列中对应的第二内缘细分点的索引;对于第一输出点序列中的第一外缘细分点,按照第一外缘细分点的索引以及第二映射关系确定第二输出点序列中对应的第二外缘细分点的索引。
本申请技术方案利用每一内部环在各个缝合部分的细分点位置分布的规律性,以及缝合顺序的一致性,实现第一输出点序列到第二输出点序列的映射,从而减少缝合操作,以及数据传输带宽。
在具体实施中,上述用于曲面细分的输出点序列确定装置80可以对应于终端设备中具有输出点序列确定功能的芯片,例如片上***(System-On-a-Chip,SOC)、基带芯片等;或者对应于终端设备中包括具有输出点序列确定功能的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于终端设备。
关于输出点序列确定装置80的其他相关描述可以参照前述实施例中的相关描述,此处不再赘述。
关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端设备的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端设备内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端设备内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
本申请实施例还公开了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时可以执行图1中所示方法的步骤。所述存储介质可以包括只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁盘或光盘等。存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和***,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。
虽然本申请披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (14)

1.一种用于曲面细分的输出点序列确定方法,其特征在于,包括:
确定待显示的图形,所述图形的轮廓划分为多个面片,每一面片具有N个边,每一面片由内向外被划分为多个环,N为大于等于3的正整数;
将每一面片划分为N个缝合部分,每一缝合部分为由所述面片的中心点和边所界定的三角形;
对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,所述第一输出点序列是针对该内部环在所述第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的,内部环为所述多个环中除最外环之外的环,所述第一缝合部分选自所述N个缝合部分;
对于每一内部环,根据所述第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在所述第一缝合部分的细分点与该内部环在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列,所述第二缝合部分为所述N个缝合部分中除第一缝合部分之外的其他缝合部分或者在位置上与所述第一缝合部分相对的缝合部分,
其中,所述位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与该内部环在第二缝合部分的第二内缘细分点的第一映射关系,以及该内部环在第一缝合部分的第一外缘细分点与该内部环在第二缝合部分的第二外缘细分点的第二映射关系;或者,
所述位置映射关系包括该内部环在第一缝合部分的第一内缘细分点相对于在第二缝合部分的第二内缘细分点的内部位置偏移量,以及,该内部环在第一缝合部分的第一外缘细分点与在第二缝合部分的第二外缘细分点的外部位置偏移量。
2.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,所述第二输出点序列中各个第二内缘细分点和第二外缘细分点的排列顺序与对应的第一内缘细分点和第一外缘细分点在所述第一输出点序列中的排列顺序一致。
3.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,所述确定该内部环在第二缝合部分的第二输出点序列包括:
对于所述第一输出点序列中的第一内缘细分点,按照所述第一内缘细分点的索引以及所述第一映射关系确定所述第二输出点序列中对应的第二内缘细分点的索引;
对于所述第一输出点序列中的第一外缘细分点,按照所述第一外缘细分点的索引以及所述第二映射关系确定所述第二输出点序列中对应的第二外缘细分点的索引。
4.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,所述确定该内部环在第二缝合部分的第二输出点序列包括:
对于所述第一输出点序列中的第一内缘细分点,按照所述第一内缘细分点的索引以及所述内部位置偏移量确定所述第二输出点序列中对应的第二内缘细分点的索引;
对于所述第一输出点序列中的第一外缘细分点,按照所述第一外缘细分点的索引以及所述外部位置偏移量确定所述第二输出点序列中对应的第二外缘细分点的索引。
5.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,所述获取该内部环在第一缝合部分的第一输出点序列包括:
对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合,以获得所述第一输出点序列。
6.根据权利要求5所述的用于曲面细分的输出点序列确定方法,其特征在于,所述对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合包括:
确定该内部环在所述第一缝合部分内的外缘上的外缘细分点序列、位于内缘上的内缘细分点序列以及缝合顺序,并按照所述缝合顺序缝合所述外缘细分点以及所述内缘细分点,所述缝合顺序表示缝合时在所述外缘细分点序列和所述内缘细分点序列内的移动顺序。
7.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,所述获取该内部环在第一缝合部分的第一输出点序列包括:
接收来自镶嵌器的第一输出点序列,所述第一输出点序列是所述镶嵌器针对该内部环在第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的。
8.根据权利要求7所述的用于曲面细分的输出点序列确定方法,其特征在于,所述第一输出点序列存储于缓存中,所述确定该内部环在第二缝合部分的第二输出点序列之前还包括:
从所述缓存中获取第一输出点序列。
9.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,N为3时,所述第二缝合部分为3个缝合部分中除第一缝合部分之外的其他缝合部分;N为4时,所述第二缝合部分为4个缝合部分中在位置上与所述第一缝合部分相对的缝合部分。
10.根据权利要求1所述的用于曲面细分的输出点序列确定方法,其特征在于,每一面片中各个边上细分点的数量相同。
11.根据权利要求1至10任一项所述的用于曲面细分的输出点序列确定方法,其特征在于,还包括:
对于每一内部环,将该内部环在所述第一缝合部分的第一输出点序列和该内部环在所述第二缝合部分的第二输出点序列进行合并,以获得该内部环的输出点序列。
12.一种用于曲面细分的输出点序列确定装置,其特征在于,包括:
图形确定模块,用于确定待显示的图形,所述图形的轮廓划分为多个面片,每一面片具有N个边,每一面片由内向外被划分为多个环,N为大于等于3的正整数;
划分模块,用于将每一面片划分为N个缝合部分,每一缝合部分为由所述面片的中心点和边所界定的三角形;
获取模块,用于对于每一内部环,获取该内部环在第一缝合部分的第一输出点序列,所述第一输出点序列是针对该内部环在所述第一缝合部分的内缘上的内缘细分点和外缘上的外缘细分点缝合得到的,内部环为所述多个环中除最外环之外的环,所述第一缝合部分选自所述N个缝合部分;
输出点序列确定模块,用于对于每一内部环,根据所述第一输出点序列中第一内缘细分点和第一外缘细分点的排列顺序,以及该内部环在所述第一缝合部分的细分点与该内部环在第二缝合部分的细分点的位置映射关系,确定该内部环在第二缝合部分的第二输出点序列,所述第二缝合部分为所述N个缝合部分中除第一缝合部分之外的其他缝合部分或者在位置上与所述第一缝合部分相对的缝合部分,
其中,所述位置映射关系包括该内部环在第一缝合部分的第一内缘细分点与该内部环在第二缝合部分的第二内缘细分点的第一映射关系,以及该内部环在第一缝合部分的第一外缘细分点与该内部环在第二缝合部分的第二外缘细分点的第二映射关系;或者,
所述位置映射关系包括该内部环在第一缝合部分的第一内缘细分点相对于在第二缝合部分的第二内缘细分点的内部位置偏移量,以及,该内部环在第一缝合部分的第一外缘细分点与在第二缝合部分的第二外缘细分点的外部位置偏移量。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1至10中任一项所述用于曲面细分的输出点序列确定方法的步骤。
14.一种终端设备,其特征在于,所述终端设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至10中任一项所述用于曲面细分的输出点序列确定方法的步骤。
CN202310082088.5A 2023-01-31 2023-01-31 用于曲面细分的输出点序列确定方法及装置、存储介质 Active CN115861512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310082088.5A CN115861512B (zh) 2023-01-31 2023-01-31 用于曲面细分的输出点序列确定方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310082088.5A CN115861512B (zh) 2023-01-31 2023-01-31 用于曲面细分的输出点序列确定方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN115861512A CN115861512A (zh) 2023-03-28
CN115861512B true CN115861512B (zh) 2023-07-25

Family

ID=85657769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310082088.5A Active CN115861512B (zh) 2023-01-31 2023-01-31 用于曲面细分的输出点序列确定方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN115861512B (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096948B (zh) * 2011-03-01 2012-10-31 西安邮电学院 一种适用图形硬件的分格化方法
US9142060B2 (en) * 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
US9076260B2 (en) * 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US10521271B2 (en) * 2017-04-01 2019-12-31 Intel Corporation Hybrid low power homogenous grapics processing units
GB2572625B (en) * 2018-04-05 2020-06-17 Imagination Tech Ltd Ordering in tessellation operations
CN112733318B (zh) * 2020-11-27 2023-05-23 厦门理工学院 一种自适应网格细分方法、装置、设备及存储介质
CN114494651B (zh) * 2022-04-18 2022-09-02 龙芯中科(合肥)技术有限公司 曲面细分处理方法、装置、电子设备及存储介质
CN115170600B (zh) * 2022-09-05 2022-11-22 南京砺算科技有限公司 用于曲面细分的缝合方法及装置、存储介质、终端设备

Also Published As

Publication number Publication date
CN115861512A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
US9892540B2 (en) Image-based deformation of simulated characters of varied topology
CN111369655B (zh) 渲染方法、装置和终端设备
JP6400601B2 (ja) テッセレーションのためのドメイン座標の出力順序付け
US20090046098A1 (en) Primitive binning method for tile-based rendering
CN115937470B (zh) 图形处理单元及其细分点处理方法、存储介质
US20230120253A1 (en) Method and apparatus for generating virtual character, electronic device and readable storage medium
US9076260B2 (en) Stitching for primitives in graphics processing
CN109544658B (zh) 地图的渲染方法和装置、存储介质、电子装置
US11450068B2 (en) Method and device for processing image, and storage medium using 3D model, 2D coordinates, and morphing parameter
CN107657648B (zh) 一种移动游戏中实时高效的染色方法和***
US20140063012A1 (en) Computation reduced tessellation
US20160125649A1 (en) Rendering apparatus and rendering method
US20160093088A1 (en) Graphics processing systems
CN109243614B (zh) 一种手术仿真方法、装置和***
US20170124753A1 (en) Producing cut-out meshes for generating texture maps for three-dimensional surfaces
CN110458959A (zh) 体三维显示仿真方法、装置、设备及计算机可读存储介质
CN111773719A (zh) 虚拟对象的渲染方法和装置、存储介质、电子装置
CN111031305A (zh) 图像处理方法及装置、图像设备及存储介质
CN114241151A (zh) 三维模型简化方法、装置、计算机设备和计算机存储介质
CN110136262B (zh) 水体虚拟可视化方法和装置
US20120218261A1 (en) Graphic system comprising a fragment graphic module and relative rendering method
US9898838B2 (en) Graphics processing apparatus and method for determining level of detail (LOD) for texturing in graphics pipeline
CN115170600B (zh) 用于曲面细分的缝合方法及装置、存储介质、终端设备
CN115861512B (zh) 用于曲面细分的输出点序列确定方法及装置、存储介质
CN110838167B (zh) 模型的渲染方法、装置和存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20240521

Address after: 201207 Pudong New Area, Shanghai, China (Shanghai) free trade trial area, No. 3, 1 1, Fang Chun road.

Patentee after: Li Computing Technology (Shanghai) Co.,Ltd.

Country or region after: China

Address before: Room 2794, Hatching Building, No. 99 Tuanjie Road, Nanjing Area, Nanjing (Jiangsu) Pilot Free Trade Zone, Jiangsu Province, 210031

Patentee before: Nanjing Lisuan Technology Co.,Ltd.

Country or region before: China

Patentee before: Li Computing Technology (Shanghai) Co.,Ltd.