CN115170600A - 用于曲面细分的缝合方法及装置、存储介质、终端设备 - Google Patents

用于曲面细分的缝合方法及装置、存储介质、终端设备 Download PDF

Info

Publication number
CN115170600A
CN115170600A CN202211076720.7A CN202211076720A CN115170600A CN 115170600 A CN115170600 A CN 115170600A CN 202211076720 A CN202211076720 A CN 202211076720A CN 115170600 A CN115170600 A CN 115170600A
Authority
CN
China
Prior art keywords
stitching
ring
sewing
sewn
points
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.)
Granted
Application number
CN202211076720.7A
Other languages
English (en)
Other versions
CN115170600B (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
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 Nanjing Lisuan Technology Co ltd filed Critical Nanjing Lisuan Technology Co ltd
Priority to CN202211076720.7A priority Critical patent/CN115170600B/zh
Publication of CN115170600A publication Critical patent/CN115170600A/zh
Application granted granted Critical
Publication of CN115170600B publication Critical patent/CN115170600B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/181Segmentation; Edge detection involving edge growing; involving edge linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Sewing Machines And Sewing (AREA)

Abstract

本申请提供了一种用于曲面细分的缝合方法及装置、存储介质、终端设备,用于曲面细分的缝合方法包括:确定要显示的三维图形,三维图形的轮廓划分为多个面片;获取待缝合面片,待缝合面片选自多个面片且具有N个边,待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数;将待缝合面片划分为N个缝合部分,每一缝合部分为由待缝合面片的中心点和边所界定的三角形;依次对N个缝合部分进行缝合,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。本申请提供了一种在曲面细分技术中提升缝合效率的缝合方案。

Description

用于曲面细分的缝合方法及装置、存储介质、终端设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于曲面细分的缝合方法及装置、存储介质、终端设备。
背景技术
曲面细分技术(Tessellation)利用图形处理单元(Graphics Processing Unit,GPU)硬件加速,将现有三维图形的三角形拆分得更细小、更细致,大大增加三角形数量。也就是说,给定一个物体表面的大致轮廓,硬件利用该技术细分出更多的点,更平滑地贴近物理表面的走向,极大地增加画面渲染的真实感。曲面细分技术过程指的是将物体表面的一部分,或者称为面片、补丁、贴片(patch)分成多个较小的部分,并将这些较小的部分互连在一起。
现有技术中,对于给定的面片,曲面细分技术会适配出合适的缝合因子(TessFactor)。基于缝合因子,对面片划分合适数量的环以及各个环上的细分点,并对该环上所有细分的点做一圈缝合操作,也即将该环上两条边上细分的点以三角形形状连接起来,直到该环缝合结束完成一轮迭代。待所有环均缝合结束,停止所有迭代。具体请参照图1,面片的形状为四边形,对于不同的环,虚线箭头代表各个环迭代缝合的方向。最终该面片缝合结束后,可以得到全部输出点序列,也称为三角带(triangle strip)。
但是,两个相邻环做缝合时会复用到该相邻环公共边上的点,当细分点较多时,上一个环做缝合操作完成后,相邻环的公共点在下一个环做缝合操作时,在缓存有限的情况下被覆盖。此时下一个环再做缝合操作时,公共点只能当作全新的点重新加载,降低了缝合效率。
发明内容
本申请提供了一种用于曲面细分的缝合方法及装置,提供了一种在曲面细分技术中提升缝合效率的缝合方案。
为了达到上述目的,本申请提供了以下技术方案:
第一方面,提供了一种用于曲面细分的缝合方法,该缝合方法包括:确定要显示的三维图形,所述三维图形的轮廓划分为多个面片;获取待缝合面片,所述待缝合面片选自所述多个面片且具有N个边,所述待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数;将所述待缝合面片划分为N个缝合部分,每一缝合部分为由所述待缝合面片的中心点和边所界定的三角形;依次对所述N个缝合部分进行缝合,其中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,其中,所述缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。
可选的,对落入所述缝合部分内的各个环进行缝合操作时,相邻环的缝合方向相反。
可选的,按照顺时针或者逆时针的方向,依次对各个缝合部分进行缝合。
可选的,对每一缝合部分进行缝合时,按照由外到内的排列顺序依次缝合各个环位于该缝合部分内的内缘和外缘的上的细分点,直至缝合至所述待缝合面片的中心点。
可选的,对每一缝合部分进行缝合时,依次地确定各个环在该缝合部分内的外缘上的外缘细分点序列、位于内缘上的内缘细分点序列以及各个环的缝合顺序,并按照各个环的缝合顺序缝合各个环的外缘细分点以及内缘细分点,所述缝合顺序表示缝合时在所述外缘细分点序列和所述内缘细分点序列内的移动顺序。
可选的,相邻两个环的公共缘上的细分点序列在所述相邻两个环缝合过程中的排序相反,所述外缘细分点序列与所述内缘细分点序列的排序方向相同。
可选的,按照以下步骤对每一缝合部分进行缝合:获取位于该缝合部分的初始环的外缘上的第一细分点序列,以及位于所述初始环的内缘上第二细分点序列,所述初始环为所述多个环中的最外环;确定所述初始环的第一缝合顺序,并按照所述第一缝合顺序缝合第一细分点以及第二细分点;迭代地获取位于相邻环的外缘上的第三细分点序列,以及位于所述相邻环的内缘上的第四细分点序列,并确定第二缝合顺序,按照所述第二缝合顺序缝合所述第三细分点以及第四细分点,直至缝合完成每一缝合部分内所有细分点,所述第三细分点序列包括排序与所述第二细分点序列相反的多个第二细分点,或者,所述第三细分点序列包括排序与上一次迭代中第三细分点序列相反的多个第三细分点。
可选的,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作之前还包括:对于待缝合的当前环,判断所述当前环与缝合完成的上一环是否存在公共缘;如果所述当前环与缝合完成的上一环存在所述公共缘,则加载所述当前环除所述公共缘之外另一缘上所有细分点,加载后的细分点存储于缓存中。
可选的,所述对落入该缝合部分内的各个环依次执行缝合操作包括:对于待缝合的当前环,从所述缓存中获取位于所述缝合部分内的内缘和外缘上的细分点并进行缝合。
可选的,所述用于曲面细分的缝合方法还包括:输出缝合完成后的输出细分点序列,所述输出细分点序列包括顺序排列的多个细分点,每三个相邻细分点在所述待缝合面片内能够连接形成三角形。
第二方面,本申请还提供一种用于曲面细分的缝合装置,用于曲面细分的缝合装置包括:图形确定模块,用于确定要显示的三维图形,所述三维图形的轮廓划分为多个面片;获取模块,用于获取待缝合面片,所述待缝合面片选自所述多个面片且具有N个边,所述待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数;划分模块,用于将所述待缝合面片划分为N个缝合部分,每一缝合部分为由所述待缝合面片的中心点和边所界定的三角形;缝合模块,用于依次对所述N个缝合部分进行缝合,其中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,其中,所述缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器运行以执行第一方面提供的方法。
第四方面,提供了一种计算机程序产品,其上存储有计算机程序,计算机程序被处理器运行以执行第一方面提供的方法。
第五方面,提供了一种终端设备,其上存储有计算机程序,计算机程序被处理器运行以执行第一方面提供的方法。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
本申请技术方案中,对于待缝合面片,将其划分为N个缝合部分,并依次对N个缝合部分进行缝合,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作。本申请技术方案是逐个对缝合部分进行缝合的,相对于相邻环上所有公共的细分点,相邻环的内缘或外缘在同一缝合部分内的公共细分点的数量更少,这就使得在执行缝合操作时,能够充分地利用相邻环边缘的公共部分,提升相邻环的公共边上细分点的复用率,从而提升缝合效率。
进一步地,对落入缝合部分内的各个环进行缝合操作时,相邻环的缝合方向相反。本申请技术方案通过设置相邻环的缝合方向相反,使得上一环缝合结束时的细分点为下一环开始缝合时的细分点,进一步提升相邻环的公共边上细分点的复用率,提升缝合效率。
进一步地,当前环与缝合完成的上一环存在所述公共缘时,仅需加载当前环除公共缘之外另一缘上所有细分点,加载后的细分点存储于缓存中。本申请通过逐个对缝合部分进行缝合的方式,能够避免对细分点的重复加载,提升硬件性能。
附图说明
图1和图2是现有技术中用于曲面细分的缝合过程示意图;
图3是本申请实施例提供的一种用于曲面细分的缝合方法的流程图;
图4是本申请实施例提供的一种面片内缝合部分的示意图;
图5是本申请实施例提供的另一种面片内缝合部分的示意图;
图6是本申请实施例提供的一种用于曲面细分的缝合过程示意图;
图7是本申请实施例提供的一种用于曲面细分的缝合方向示意图;
图8是本申请实施例提供的一种用于曲面细分的缝合效果示意图;
图9是本申请实施例提供的一种用于曲面细分的缝合装置的结构示意图。
具体实施方式
现有技术中,一并参照图2,面片的形状为四边形,面片内有三个环。最外边第一个环做好缝合操作时,涉及的点覆盖了索引0-39的点,共40个。第二个环做缝合操作时,第一个环和第二个环的公共边上的点,即索引24-39的点会复用。当缓存有限的情况下,采用先进先出的存储策略时,第二个环开始缝合时,索引24-39中靠前的细分点已被覆盖。故第二个环后面缝合操作无法利用前面已加载的细分点的信息,降低了硬件的效率。
如背景技术中所述,两个相邻环做缝合时会复用到该相邻环公共边上的点,当细分点较多时,上一个环做缝合操作完成后,相邻环的公共点在下一个环做缝合操作时,在缓存有限的情况下被覆盖。此时下一个环再做缝合操作时,公共点只能当作全新的点重新加载,降低了缝合效率。
本申请提供了一种方法及装置,对于待缝合面片,将其划分为N个缝合部分,并依次对N个缝合部分进行缝合,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作。本申请技术方案是逐个对缝合部分进行缝合的,相对于相邻环上所有公共的细分点,相邻环的内缘或外缘在同一缝合部分内的公共细分点的数量更少,这就使得在执行缝合操作时,能够充分地利用相邻环边缘的公共部分,提升相邻环的公共边上细分点的复用率,从而提升缝合效率。
本申请中的用于曲面细分的缝合方法可以用于终端设备侧,也即可以由该终端设备执行上述方法的各个步骤。上述终端设备可以是具有曲面细分能力的各种适当的设备,本申请对此不做限制。
具体地,参见图3,本申请提供的方法包括:
步骤301:确定要显示的三维图形,所述三维图形的轮廓划分为多个面片;
步骤302:获取待缝合面片,所述待缝合面片选自所述多个面片且具有N个边,所述待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数。
步骤303:将所述待缝合面片划分为N个缝合部分,每一缝合部分为由所述待缝合面片的中心点和边所界定的三角形。
步骤304:依次对所述N个缝合部分进行缝合,其中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,其中,所述缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。
需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
可以理解的是,在具体实施中,所述缝合方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中。该方法也可以采用软件结合硬件的方式实现,本申请不作限制。
在步骤301的具体实施中,确定要显示的三维图形,该三维图形为表示三维物体的图形,三维图形具有轮廓。具体地,三维图形可以是预先生成的要显示的图形。通过对三维图形执行上述缝合方法的各个步骤,能够将三维图形轮廓的各个面片进一步细分为更小的图元。三维图形中所有待缝合面片均缝合完成后,可以将缝合完成的三维图形直接在显示界面进行显示,或者,对缝合完成的三维图形进一步处理后在显示界面进行显示,从而使三维图形具有更加接近真实世界的显示效果。本实施例中,待缝合面片为多个面片的部分或者全部,待缝合面片为具有N个边的封闭的N边形。例如,面片可以是三角形(triangle),四边形(quad)或任何其它类型的多边形。
具体地,面片可以是二维(2D)形状,即面片限定三维(3D)表面或二维(2D)表面。具体地,面片是将被呈现的对象的表面的一部分。
进一步地,待缝合面片还可以由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点。多个环可以在面片内呈同心形状,多个环的形状与面片的形状相同。例如,如果面片的形状是四边形,则该四边形的周边可以被认为是外环,内环可以是位于该四边形内的一系列较小尺寸的四边形。类似地,如果面片的形状是三角形,则该三角形的周边可以被认为是外环,并且内环可以是位于该三角形内的一系列较小尺寸的三角形。具体实施中,可以通过为待缝合面片配置缝合因子(Tessfactor),来将待缝合面片划分为合适数量的环以及合适数量的细分点。
在步骤303的具体实施中,将待缝合面片划分为N个缝合部分。例如,面片为四边形时,该面片被划分为四个缝合部分;面片为三角形时,该面片被划分为三个缝合部分。每一缝合部分为由待缝合面片的中心点和边所界定的三角形。
具体请一并参照图4,待缝合面片为四边形,该四边形被划分为四个缝合部分P1、P2、P3和P4。其中,缝合部分P1为由四边形的边L1和中心点O所界定的三角形,缝合部分P2为由四边形的边L2和中心点O所界定的三角形,缝合部分P3为由四边形的边L3和中心点O所界定的三角形,缝合部分P4为由四边形的边L4和中心点O所界定的三角形。
相应地,请参照图5,待缝合面片为三角形,该三角形被划分为三个缝合部分P1、P2和P3。其中,缝合部分P1为由三角形的边L1和中心点O所界定的三角形,缝合部分P2为由三角形的边L2和中心点O所界定的三角形,缝合部分P3为由三角形的边L3和中心点O所界定的三角形。
在步骤304的具体实施中,依次对N个缝合部分进行缝合。以图4为例,可以是依次对缝合部分P1、缝合部分P2、缝合部分P3和缝合部分P4进行缝合,也可以是进行依次对缝合部分P1、缝合部分P4、缝合部分P3和缝合部分P2进行缝合,还可以是依次对缝合部分P1、缝合部分P3、缝合部分P2和缝合部分P4进行缝合。本申请对N个缝合部分进行缝合的排序不做限定。
在一个非限制性的实施例中,按照顺时针或者逆时针的方向,依次对各个缝合部分进行缝合。以图4为例,本实施例优选地依次对缝合部分P1、缝合部分P2、缝合部分P3和缝合部分P4进行缝合,或者依次对缝合部分P1、缝合部分P4、缝合部分P3和缝合部分P2进行缝合。
本发明实施例在缝合时,通过使相邻缝合部分均具有公共边或公共细分点,能够进一步提升细分点的复用率,提升缝合效率。
在步骤304的具体实施中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作。以图4为例,缝合部分P1内包括三个环,第一环包括外缘L1和内缘L5,第二环包括外缘L5和内缘L6,第三环包括外缘L6和内缘O。
在一种具体实施方式中,对每一缝合部分进行缝合时,按照由外到内的排列顺序依次缝合各个环位于该缝合部分内的内缘和外缘的上的细分点,直至缝合至待缝合面片的中心点。例如,继续参照图4,在对缝合部分P1进行缝合时,首先对第一环进行缝合,再对第二环进行缝合,最后对第三环进行缝合。
在另一种具体实施方式中,也可以按照由内到外的排列顺序依次缝合各个环位于该缝合部分内的内缘和外缘的上的细分点,直至完成该缝合部分所有细分点。例如,继续参照图4,在对缝合部分P1进行缝合时,先对第三环进行缝合,再对第二环进行缝合,最后对第一环进行缝合。
在步骤304的具体实施中,对各个环的缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的,每一环的内缘和外缘上具有一个或多个细分点。具体请一并参照图4和图6,第一环的外缘包括细分点0-6,第一环的内缘包括细分点24-28;第二环的外缘包括细分点24-28,第二环的内缘包括细分点40-42;第三环的外缘包括细分点40-42,第三环的内缘包括细分点48。在对第一环执行缝合操作时,是对细分点0-6以及细分点24-28完成的;相应地,在对第二环执行缝合操作时,是对细分点24-28以及细分点40-42完成的;在对第三环执行缝合操作时,是对细分点40-42以及细分点48完成的。
本领域技术人员应当理解的是,对环的内缘和外缘上的细分点完成缝合操作是指利用环的内缘和外缘上的细分点构造多个基元,例如构造的基元是三角形。具体地,可以将外缘的一点与内缘的两点连接起来,以形成三角形图元。或者,可以将沿着外缘的两点与内缘的一点连接起来,以形成三角形图元。
本发明实施例是逐个对缝合部分进行缝合的,相对于相邻环上所有公共的细分点,相邻环的内缘或外缘在同一缝合部分内的公共细分点的数量更少,这就使得在执行缝合操作时,能够充分地利用相邻环边缘的公共部分,提升相邻环的公共边上细分点的复用率,从而提升缝合效率。
在一个非限制性的实施例中,对落入缝合部分内的各个环进行缝合操作时,相邻环的缝合方向相反。例如,继续参照图4和图6,在对缝合部分P1进行缝合时,对第一环进行缝合是从细分点0和24开始,在细分点6和28结束的;对第二环进行缝合是从细分点28和42开始,在细分点24和40结束的;相应地,对第三环进行缝合是从细分点40开始,在细分点42结束的。在缝合部分P1内的各个环的缝合方向如图7所示,各个环的缝合方向呈现为之字形或wifi状。
本发明实施例能够使得上一环缝合结束时的细分点为下一环开始缝合时的细分点,进一步提升相邻环的公共边上细分点的复用率,提升缝合效率。
在本发明一个具体的实施例中,对每一缝合部分进行缝合时,依次地确定各个环在该缝合部分内的外缘上的外缘细分点序列、位于内缘上的内缘细分点序列以及各个环的缝合顺序,并按照各个环的缝合顺序缝合各个环的外缘上的外缘细分点以及内缘上的内缘细分点,缝合顺序表示缝合时在外缘细分点序列和内缘细分点序列内的移动顺序。
进一步地,相邻两个环的公共缘上的细分点序列在相邻两个环缝合过程中的排序相反,外缘细分点序列与内缘细分点序列的排序方向相同。
继续参照图4和图6,对缝合部分P1内的第一环进行缝合时,确定第一环的外缘细分点序列为{0,1,2,3,4,5,6},内缘细分点序列为{24,25,26,27,28},缝合顺序为{out,in, out, in, out, out, in, out, in, out},其中,缝合顺序中out表示在外缘细分点序列中移动一个点,in表示在内缘细分点序列中移动一个点。按照上述缝合顺序缝合第一环的外缘细分点以及内缘细分点。
类似地,对缝合部分P1内的第二环进行缝合时,确定第二环的外缘细分点序列为{28,27,26,25,24},内缘细分点序列为{42,41,40},缝合顺序为{out, in, out, out, in,out}。按照上述缝合顺序缝合第二环的外缘细分点以及内缘细分点。
对缝合部分P1内的第三环进行缝合时,确定第三环的外缘细分点序列为{40,41,42},内缘细分点序列为{48},缝合顺序为{out, out}。按照上述缝合顺序缝合第三环的外缘细分点以及内缘细分点。
由上可以看出,第一环与第二环的公共缘为L5,也即第一环的内缘和第二环的外缘,该公共缘L5的细分点序列在第一环缝合时为{24,25,26,27,28},在第二环缝合时为{28,27,26,25,24},也即细分点序列的排序相反。类似地,第二环与第三环的公共缘为L6,也即第二环的内缘和第三环的外缘,该公共缘L6的细分点序列在第二环缝合时为{42,41,40},在第三环缝合时为{40,41,42},也即细分点序列的排序相反。
对缝合部分P1缝合完成后,呈现的效果如图6中虚线部分所示。
继续参照图4和图6,对缝合部分P2内的第一环进行缝合时,确定第一环的外缘细分点序列为{6,7,8,9,10,11,12},内缘细分点序列为{28,29,30,31,32},缝合顺序为{out,in, out, in, out, out, in, out, in, out},其中,缝合顺序中out表示在外缘细分点序列中移动一个点,in表示在内缘细分点序列中移动一个点。按照上述缝合顺序缝合第一环的外缘细分点以及内缘细分点。类似地,对缝合部分P2内的第二环进行缝合时,确定第二环的外缘细分点序列为{32,31,30,29,28},内缘细分点序列为{44,43,42},缝合顺序为{out,in, out, out, in, out}。按照上述缝合顺序缝合第二环的外缘细分点以及内缘细分点。对缝合部分P2内的第三环进行缝合时,确定第三环的外缘细分点序列为{42,43,44},内缘细分点序列为{48},缝合顺序为{out, out}。按照上述缝合顺序缝合第三环的外缘细分点以及内缘细分点。
其他缝合部分的缝合过程与缝合部分P1、缝合部分P2的缝合过程类似,此处不再赘述。对整个待缝合面片缝合完成后的效果如图8所示。
在本发明另一个具体的实施例中,可以按照迭代的方式对缝合部分内的各个环执行缝合操作。具体地,获取位于该缝合部分的初始环的外缘上的第一细分点序列,以及位于初始环的内缘上第二细分点序列,初始环为多个环中的最外环;确定初始环的第一缝合顺序,并按照第一缝合顺序缝合第一细分点以及第二细分点;迭代地获取位于相邻环的外缘上的第三细分点序列,以及位于相邻环的内缘上的第四细分点序列,并确定第二缝合顺序,按照第二缝合顺序缝合第三细分点以及第四细分点,直至缝合完成每一缝合部分内所有细分点,第三细分点序列包括排序与第二细分点序列相反的多个第二细分点,或者,第三细分点序列包括排序与上一次迭代中第三细分点序列相反的多个第三细分点。
以图4中缝合部分P1为例,第一环包括外缘L1和内缘L5,第二环包括外缘L5和内缘L6,第三环包括外缘L6和内缘O。初始环可以是第一环,也可以是第三环。
在本发明一个非限制性的实施例中,在对各个环执行缝合操作之前,需要先加载环的内缘和外缘上的所有细分点,加载后的细分点存储于缓存中。在执行缝合操作时,需要缝合哪些细分点,则从缓存中取出相应细分点的数据。
具体实施中,对于待缝合的当前环,判断当前环与缝合完成的上一环是否存在公共缘;如果当前环与缝合完成的上一环存在公共缘,则加载当前环除公共缘之外另一缘上所有细分点。
以图6中缝合部分P1为例,在对第一环执行缝合操作时,加载外缘细分点序列为{0,1,2,3,4,5,6},以及内缘细分点序列为{24,25,26,27,28},并存储在缓存中。在对第二环执行缝合操作时,第二环与第一环存在公共缘L5,那么细分点序列{28,27,26,25,24}已经在缓存中,无需加载,只需加载细分点序列{42,41,40}。
本发明实施例通过逐个对缝合部分进行缝合的方式,能够避免对细分点的重复加载,提升硬件性能。
在本发明一个非限制性的实施例中,对所有缝合部分缝合完成后,输出缝合完成后的输出细分点序列,输出细分点序列包括顺序排列的多个细分点,每三个相邻细分点在待缝合面片内能够连接形成三角形。
以图6中缝合部分P1的第三环为例,输出细分点序列为{40,41,48,42}。其他环的输出细分点序列相类似,此处不再赘述。
具体地,输出细分点序列用于渲染显示,以使得渲染后的三维图形具有更加接近真实世界的渲染效果。
请参照图9,图9示出了一种用于曲面细分的缝合装置90,用于曲面细分的缝合装置90可以包括:
获取模块901,用于获取待缝合面片,待缝合面片具有N个边,待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数;
划分模块902,用于将待缝合面片划分为N个缝合部分,每一缝合部分为由待缝合面片的中心点和边所界定的三角形;
缝合模块903,用于依次对N个缝合部分进行缝合,其中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,其中,缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。
本申请技术方案是逐个对缝合部分进行缝合的,相对于相邻环上所有公共的细分点,相邻环的内缘或外缘在同一缝合部分内的公共细分点的数量更少,这就使得在执行缝合操作时,能够充分地利用相邻环边缘的公共部分,提升相邻环的公共边上细分点的复用率,从而提升缝合效率。
在具体实施中,上述缝合装置90可以对应于终端设备中具有缝合功能的芯片,例如片上系统(System-On-a-Chip,SOC)、基带芯片等;或者对应于终端设备中包括具有缝合功能的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于终端设备。
关于缝合装置90的其他相关描述可以参照图3至图8对应实施例中的相关描述,此处不再赘述。
关于上述实施例中描述的各个装置、产品包含的各个模块,其可以是软件模块,也可以是硬件模块,或者也可以部分是软件模块,部分是硬件模块。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块可以都采用电路等硬件的方式实现,或者,至少部分模块可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块可以都采用电路等硬件的方式实现,不同的模块可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块可以采用电路等硬件方式实现;对于应用于或集成于终端设备的各个装置、产品,其包含的各个模块可以都采用电路等硬件的方式实现,不同的模块可以位于终端设备内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块可以采用软件程序的方式实现,该软件程序运行于终端设备内部集成的处理器,剩余的(如果有)部分模块可以采用电路等硬件方式实现。
本申请实施例还公开了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时可以执行图3中所示方法的步骤。所述存储介质可以包括只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁盘或光盘等。存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/“,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理模块,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。
虽然本申请披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (13)

1.一种用于曲面细分的缝合方法,其特征在于,包括:
确定要显示的三维图形,所述三维图形的轮廓划分为多个面片;
获取待缝合面片,所述待缝合面片选自所述多个面片且具有N个边,所述待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数;
将所述待缝合面片划分为N个缝合部分,每一缝合部分为由所述待缝合面片的中心点和边所界定的三角形;
依次对所述N个缝合部分进行缝合,其中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,其中,所述缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。
2.根据权利要求1所述的用于曲面细分的缝合方法,其特征在于,对落入所述缝合部分内的各个环进行缝合操作时,相邻环的缝合方向相反。
3.根据权利要求1所述的用于曲面细分的缝合方法,其特征在于,按照顺时针或者逆时针的方向,依次对各个缝合部分进行缝合。
4.根据权利要求1所述的用于曲面细分的缝合方法,其特征在于,对每一缝合部分进行缝合时,按照由外到内的排列顺序依次缝合各个环位于该缝合部分内的内缘和外缘的上的细分点,直至缝合至所述待缝合面片的中心点。
5.根据权利要求1所述的用于曲面细分的缝合方法,其特征在于,对每一缝合部分进行缝合时,依次地确定各个环在该缝合部分内的外缘上的外缘细分点序列、位于内缘上的内缘细分点序列以及各个环的缝合顺序,并按照各个环的缝合顺序缝合各个环的外缘细分点以及内缘细分点,所述缝合顺序表示缝合时在所述外缘细分点序列和所述内缘细分点序列内的移动顺序。
6.根据权利要求5所述的用于曲面细分的缝合方法,其特征在于,相邻两个环的公共缘上的细分点序列在所述相邻两个环缝合过程中的排序相反,所述外缘细分点序列与所述内缘细分点序列的排序方向相同。
7.根据权利要求1所述的用于曲面细分的缝合方法,其特征在于,按照以下步骤对每一缝合部分进行缝合:
获取位于该缝合部分的初始环的外缘上的第一细分点序列,以及位于所述初始环的内缘上第二细分点序列,所述初始环为所述多个环中的最外环;
确定所述初始环的第一缝合顺序,并按照所述第一缝合顺序缝合第一细分点以及第二细分点;
迭代地获取位于相邻环的外缘上的第三细分点序列,以及位于所述相邻环的内缘上的第四细分点序列,并确定第二缝合顺序,按照所述第二缝合顺序缝合所述第三细分点以及第四细分点,直至缝合完成每一缝合部分内所有细分点,所述第三细分点序列包括排序与所述第二细分点序列相反的多个第二细分点,或者,所述第三细分点序列包括排序与上一次迭代中第三细分点序列相反的多个第三细分点。
8.根据权利要求1所述的用于曲面细分的缝合方法,其特征在于,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作之前还包括:
对于待缝合的当前环,判断所述当前环与缝合完成的上一环是否存在公共缘;
如果所述当前环与缝合完成的上一环存在所述公共缘,则加载所述当前环除所述公共缘之外另一缘上所有细分点,加载后的细分点存储于缓存中。
9.根据权利要求8所述的用于曲面细分的缝合方法,其特征在于,所述对落入该缝合部分内的各个环依次执行缝合操作包括:
对于待缝合的当前环,从所述缓存中获取位于所述缝合部分内的内缘和外缘上的细分点并进行缝合。
10.根据权利要求1至9任一项所述的用于曲面细分的缝合方法,其特征在于,还包括:
输出缝合完成后的输出细分点序列,所述输出细分点序列包括顺序排列的多个细分点,每三个相邻细分点在所述待缝合面片内能够连接形成三角形。
11.一种用于曲面细分的缝合装置,其特征在于,包括:
图形确定模块,用于确定要显示的三维图形,所述三维图形的轮廓划分为多个面片;
获取模块,用于获取待缝合面片,所述待缝合面片选自所述多个面片且具有N个边,所述待缝合面片由内向外被划分为多个环,每一环的内缘和外缘上具有一个或多个细分点,N为大于等于3的正整数;
划分模块,用于将所述待缝合面片划分为N个缝合部分,每一缝合部分为由所述待缝合面片的中心点和边所界定的三角形;
缝合模块,用于依次对所述N个缝合部分进行缝合,其中,对每一缝合部分进行缝合时,对落入该缝合部分内的各个环依次执行缝合操作,其中,所述缝合操作是基于被缝合的环的内缘和外缘上的细分点完成的。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至10中任一项所述用于曲面细分的缝合方法的步骤。
13.一种终端设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至10中任一项所述用于曲面细分的缝合方法的步骤。
CN202211076720.7A 2022-09-05 2022-09-05 用于曲面细分的缝合方法及装置、存储介质、终端设备 Active CN115170600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211076720.7A CN115170600B (zh) 2022-09-05 2022-09-05 用于曲面细分的缝合方法及装置、存储介质、终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211076720.7A CN115170600B (zh) 2022-09-05 2022-09-05 用于曲面细分的缝合方法及装置、存储介质、终端设备

Publications (2)

Publication Number Publication Date
CN115170600A true CN115170600A (zh) 2022-10-11
CN115170600B CN115170600B (zh) 2022-11-22

Family

ID=83480714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211076720.7A Active CN115170600B (zh) 2022-09-05 2022-09-05 用于曲面细分的缝合方法及装置、存储介质、终端设备

Country Status (1)

Country Link
CN (1) CN115170600B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115861512A (zh) * 2023-01-31 2023-03-28 南京砺算科技有限公司 用于曲面细分的输出点序列确定方法及装置、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104584083A (zh) * 2012-08-30 2015-04-29 高通股份有限公司 通过对称边缘分裂进行表面曲面细分
CN104584082A (zh) * 2012-08-30 2015-04-29 高通股份有限公司 在图形处理中的基元的缝合
CN106887042A (zh) * 2017-01-23 2017-06-23 北京工业大学 基于gpu的自适应曲面细分方法
CN110349266A (zh) * 2018-04-05 2019-10-18 想象技术有限公司 曲面细分操作中的排序

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104584083A (zh) * 2012-08-30 2015-04-29 高通股份有限公司 通过对称边缘分裂进行表面曲面细分
CN104584082A (zh) * 2012-08-30 2015-04-29 高通股份有限公司 在图形处理中的基元的缝合
CN106887042A (zh) * 2017-01-23 2017-06-23 北京工业大学 基于gpu的自适应曲面细分方法
CN110349266A (zh) * 2018-04-05 2019-10-18 想象技术有限公司 曲面细分操作中的排序

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘咏亭等: "基于细分曲面的鞋楦三维建模和二维展平", 《计算机系统应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115861512A (zh) * 2023-01-31 2023-03-28 南京砺算科技有限公司 用于曲面细分的输出点序列确定方法及装置、存储介质

Also Published As

Publication number Publication date
CN115170600B (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
CN101933049B (zh) 高效的几何镶嵌和位移
EP3101628B1 (en) Tessellation method
CN115170600B (zh) 用于曲面细分的缝合方法及装置、存储介质、终端设备
US8188999B2 (en) Method and apparatus for organizing object geometry for spatial and memory coherency and optimal rendering
CN104584083B (zh) 通过对称边缘分裂进行表面曲面细分
CN115147579B (zh) 一种扩展图块边界的分块渲染模式图形处理方法及系统
US7995073B1 (en) System and method for anti-aliasing compound shape vector graphics
CN113947657A (zh) 目标模型的渲染方法、装置、设备及存储介质
US20170124753A1 (en) Producing cut-out meshes for generating texture maps for three-dimensional surfaces
WO2014035572A1 (en) Stitching for primitives in graphics processing
US7825928B2 (en) Image processing device and image processing method for rendering three-dimensional objects
CN108765520A (zh) 文本信息的渲染方法和装置、存储介质、电子装置
EP4191536A1 (en) Method and apparatus for generating texture image
CN115880408A (zh) 一种分块渲染模式图形处理方法及系统
CN110490803A (zh) 一种图像语义分割分块预测的拼接方法、设备和存储介质
CN115861512B (zh) 用于曲面细分的输出点序列确定方法及装置、存储介质
Marras et al. Controlled and Adaptive Mesh Zippering.
US7196706B2 (en) Method and apparatus for rendering a quadrangle primitive
CN116670719A (zh) 一种图形处理方法、装置及电子设备
CN112884870A (zh) 一种三维模型的展开方法、电子设备以及计算机存储介质
CN115937470A (zh) 图形处理单元及其细分点处理方法、存储介质
KR102316438B1 (ko) 3차원 데이터 처리 방법
CN112837416A (zh) 基于三角剖分的多边形渲染方法、装置及存储介质
CN111325847A (zh) 图形处理装置
JP3420193B2 (ja) 画像形成方法、それを実現するためのコンピュータ読み取り可能な記憶媒体、及びゲームシステム

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: 20240520

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

TR01 Transfer of patent right