CN103810756A - 基于不规则区域的自适性的Loop细分曲面的绘制方法 - Google Patents

基于不规则区域的自适性的Loop细分曲面的绘制方法 Download PDF

Info

Publication number
CN103810756A
CN103810756A CN201410021013.7A CN201410021013A CN103810756A CN 103810756 A CN103810756 A CN 103810756A CN 201410021013 A CN201410021013 A CN 201410021013A CN 103810756 A CN103810756 A CN 103810756A
Authority
CN
China
Prior art keywords
dough sheet
plies
current original
layer
segmentation
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
CN201410021013.7A
Other languages
English (en)
Other versions
CN103810756B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410021013.7A priority Critical patent/CN103810756B/zh
Publication of CN103810756A publication Critical patent/CN103810756A/zh
Application granted granted Critical
Publication of CN103810756B publication Critical patent/CN103810756B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明的提供了一种基于不规则区域的自适应性的Loop细分曲面的绘制方法,该绘制方法基于不规则区域的自适应方式,利用计算着色器计算控制顶点的位置,根据当前原始面片与相邻原始面片的细分层数的关系,将不规则的原始面片分割为若干个规则的子面片,对三角控制网格进行重构,再由tessellation着色器绘制得到相应的面片,可以有效消除T裂缝。通过分割能够采用tessellation着色器绘精确计算得到三角控制网格中各层顶点的位置,因此所有计算得到的顶点和法向量都与极限Loop细分曲面相同,且硬件tessellation着色器绘制,解决全局细分方法的庞大内存和带宽问题,能够达到实时精确绘制Loop细分曲面。

Description

基于不规则区域的自适性的Loop细分曲面的绘制方法
技术领域
本发明涉及计算机图形学细分曲面绘制领域,具体涉及一种基于不规则区域的自适应性的Loop细分曲面的绘制方法。
背景技术
细分曲面,在计算机图形学领域,用于任意拓扑的网格创建光滑曲面。细分曲面定义为一个无穷细化过程的计算。通过反复细化初始的多边形网格,可以产生一系列网格趋于最终的细分曲面。每个新的细化步骤产生一个新的有更多多边形元素并且更光滑的网络。Loop细分曲面作为其中比较具有代表性的一个细分策略,在电子游戏,电影制作以及有限元仿真等应用中广泛使用,参见C.Loop,Smoothsubdivision surfaces based on triangles,Master’s thesis,Dept.of Math.,Univ.of Utah(1987)。Loop细分曲面是针对任意拓扑的三角形控制网格设计的,区别于Catmull-Clark细分曲面,参见E.Catmull,J.Clark,Recursively generated b-spline surfaces on arbitrary topological meshes,Computer-Aided Design10(6)(1978)350–355。
传统的细分曲面是根据细分规则,循环地细分控制网格计算得出的。虽然这种方法在当代的GPU上是很容易实现的。但是,指数增长的内存占有量和数据传输量会严重的影响运行效率。随着DirectX11API的出现,其中的硬件tessellation着色器,可在GPU流多处理上,直接计算、生成、绘制细分的几何,达到避免高代价的内存输入输出,绘制精细几何细节的高质量曲面绘制的目的,参见MicrosoftCorporation,Direct3D11Features,http://msdn.microsoft.com/en-us/library/ff476342(VS.85).aspx(2009)。但是,硬件tessellation绘制曲面是逐面片计算的。虽然它能够用于直接计算规则面片,但对于如奇异顶点,准尖锐折痕和分层次的编辑这样的不规则区域,无法直接计算。
目前已有的Loop细分绘制方法可分成三大类。首先,全局细分方法。该类方法通过全局的对输入控制网格循环的细分实现。此类方法的内存消耗随生成的顶点数量线性增长。由于GPU的带宽限制,造成性能的严重下降,参见L.Shiue,I.Jones,J.Peters,A realtimegpusubdivision kernel,ACM Transactions on Graphics24(3)(2005)1010–1015。第二,直接计算方法。该类方法是对细分曲面的细分矩阵的特征矩阵解析分析,直接计算求解细分曲面,参见J.Stam,Evaluation of Loop subdivision surfaces,in:ACM SIGGRAPH99Course Notes#37,SIGGRAPH’99,ACM,New York,NY,USA,1999,pp.111–125。虽然此类方法在GPU上容易实现,但由于大量的程序代码分支,导致运行性能较差。此外,该类方法需要奇异点分离,因此,需要对初始控制网格做一次到两次的预细分,这样处理之后的控制网格的顶点和面片数量都将大量增加;而且,该类方法无法处理造型常见的准尖锐折痕以及分层次编辑。最后,基于面片的逼近算法。该类算法基本细想是寻找一个逼近不规则区域的解,提高绘制效率,牺牲绘制质量。该类方法利用硬件tessellation着色器绘制细分曲面,参见文献G.Li,C.Ren,J.Zhang,W.Ma,Approximation of Loopsubdivision surfaces for fast rendering,IEEE Transactions onVisualization and Computer Graphics17(4)(2011)。
发明内容
针对现有技术的不足,本发明提供了一种基于不规则区域的自适应GPU绘制Loop细分曲面方法。
一种基于不规则区域的自适应性的Loop细分曲面的绘制方法,包括:
(1)输入三角控制网格,并设定最大细分层数和全局细分参数;
(2)确定三角控制网格的不规则区域,并以该不规则区域作为三角控制网格的第零层拓扑结构,根据第零层拓扑结构生成三角控制网格的第零层细分查找表,根据第零层细分查找表构建三角控制网格的第一层拓扑结构,并根据第一层拓扑结构生成三角控制网格的第一层细分查找表;
(3)依次递推,直至构建得到三角控制网格的第n层细分查找表和第n层拓扑结构,其中n等于设定的最大细分层数;
(4)将各层细分查找表以及第零层控制顶点的位置上传至GPU,GPU的计算着色器根据各层细分查找表和上一层控制顶点的位置,依次计算得到各层控制顶点的位置;
(5)根据各层拓扑结构构造该拓扑结构中各个原始面片的控制面片作为该层控制面片,并确定各个控制面片的参数域,具体如下:
(5-1)根据所述拓扑结构中各个原始面片所处的细分层数将各个原始面片划分为平凡面片和非平凡面片:
若当前原始面片的边相邻原始面片的细分层数均小于或等于当前原始面片的细分层数,则当前原始面片为平凡面片,
否则,当前原始面片为非平凡面片;
(5-2)若当前原始面片为平凡面片,则以当前原始面片的一环邻域的顶点索引作为当前原始面片的控制面片,并确定该控制面片的参数域;
若当前原始面片为非平凡面片,则进行如下操作:
(5-21)根据边相邻原始面片大于当前原始面片的细分层数将当前原始面片划分为若干个子面片,
(5-22)以当前原始面片的一环邻域的顶点索引作为各个子面片的控制面片,并确定各个控制面片的参数域;
(6)根据全局细分参数确定当前细分层数,分别根据各层控制顶点的位置、各层控制面片、以及各控制面片的参数域由tessellation着色器绘制第零层面片至第g_depth层面片,g_depth为当前细分层数。
步骤(1)中输入的三角控制网格包括第零层的控制顶点。
所述步骤(2)、步骤(3)和步骤(5)可以为离线进行。
拓扑结构结构中包含各个原始面片,各个面片中相互连接,边相邻面片指与该面片共享边(有公共边)的面片成为边相邻面片。
本发明的Loop细分曲面的绘制方法中三角控制网格、最大细分层数和全局细分参数由用户设定,其中三角控制网格和最大细分层数在Loop细分曲面的绘制过程中一般不再调整,而全局细分参数在Loop细分曲面的绘制过程中用户可根据显示需要实时调整。
本发明的Loop细分曲面的绘制方法使用的细分查找表与输入的三角控制网格的几何无关,且在类似曲面编辑或动画这样的三角网格保持拓扑不变的应用中,该细分查找表的生成和上传仅需要一次,改变全局细分参数后不需要重新生成和上传细分查找表。
本发明的基于不规则区域的自适应性的Loop细分曲面的绘制方法,基于不规则区域的自适应方式,利用计算着色器并行计算控制顶点的位置,利用tessellation着色器绘制面片。通过利用GPU的并行处理能力,解决全局细分方法的庞大内存和带宽问题。另外,tessellation着色器只能直接精确绘制规则区域的面片,但由于可能相邻面片处于不同细分层上,若采用tessellation着色器直接绘制面片会出现T型裂缝,本发明中根据当前原始面片与相邻原始面片的细分层数的关系,将不规则的原始面片分割为若干个子面片,然后根据子面片重构三角控制网格,直接构造会出现T型裂缝,不能以母面片(原始面片)为单位绘制,必须以子面片为单位绘制,再由tessellation着色器绘制得到相应的面片,可以有效消除T裂缝。
所述步骤(1)中最大细分层数和全局细分参数满足以下条件:
1.0≤g_tessfactor≤2n
其中,g_tessfactor为全局细分参数,n为最大细分层数。
最大细分层数相当于一个约束,用户根据需要设定,实际应用中n不超过8。
所述的不规则区域为三角控制网格的奇异点、半尖锐顶点和分层次编辑点。通常三角控制网格带有奇异点、半尖锐顶点和分层次编辑点,这些点即为不规则区域,并构成该三角控制网格的第零层拓扑结构。
奇异点是指度不为6的顶点。
半尖锐顶点指在输入的三角控制网格上,用户可以对每一条边指定一个尖锐值,表示该边细分后的尖锐程度。若一条边的尖锐值不为零,则该边为半尖锐边。若一个顶点连接的边中含有尖锐值不为零的边,则该点为半尖锐点,半尖锐的意思是该尖锐值可以为非整数。
分层次编辑点指根据造型需要,在不同细分层次上对三角控制网格做编辑的点,Loop细分曲面的极限曲面是由四次箱样条构成,除了在奇异点周围,是由无限数量的四次箱样条曲面构成。
所述的细分表包括边点表和点点表,
所述的边点表用于记录不规则区域中各个边点所在边的相邻两个三角形的四个顶点的索引;
所述的点点表用于记录不规则区域中的各个顶点的索引,各个顶点的度,以及各顶点的一环邻域顶点索引和一环邻域顶点的起始位置。
在Loop细分曲面每一步细分的过程中,需要对控制网格的每一条边和顶点做细分。在边上细分得到的顶点为边点,对顶点细分得到的顶点称为点点。
与一个顶点以一条边相互连接的点,成为该顶点的一环邻域顶点。
边点表和点点表中记录的各个内容分别存储于相应的缓存中,顶点的索引对应于索引缓存,顶点的度存储于度缓存中,一环邻域顶点的起始位置采用偏移量表示,该偏移量存储于偏移量缓存中。
所述的控制顶点包括边点和顶点。
所述步骤(4)中计算各层的控制顶点的位置时在计算着色器中分别设置边点线程和点点线程,所述的边点线程用于计算边点的位置,所述的点点线程用于计算顶点的位置。
计算点点时,通过点点线程从索引缓存中获得该顶点索引,从度缓存读取该顶点的度,通过偏移量缓存获得该顶点一环邻域顶点索引起始位置,从该位置为起点,读取若干个(与该顶点度相等)顶点索引,进而得到该顶点的一环邻域顶点的索引,如此,得到了所有顶点索引,采用参考文献:C.Loop,Smooth subdivision surfaces based on triangles,Master’s thesis,Dept.of Math.,Univ.of Utah(1987).中报到的方法,计算得到相应的点点坐标。同理,可得到相应边点的坐标。
所述步骤(5-21)包括:
(a)若只有一个边相邻原始面片大于当前原始面片的细分层数,以该边相邻原始面片与当前原始面片的公共边的中点和该当前原始面片中该公共边相对的顶点的连线为分割线,将当前原始面片拆分为两个子面片;
(b)若有两个边相邻原始面片大于当前原始面片的细分层数,以两个边相邻原始面片与当前原始面片的公共边的中点的连线和任意一个公共边的中点和与该公共边相对的连线为分割线将当前原始面片拆分为三个子面片;
(c)若有三个边相邻原始面片大于当前原始面片的细分层数,以当前原始面片的三条边的中点的两两连线为分割线,将当前原始面片拆分为四个子面片。
所述步骤(6)包括以下步骤:
(6-1)根据公式:
Figure BDA0000458142850000061
确定当前细分层数,其中g_depth为当前细分层数,g_tessfactor为全局细分参数,表示对log2g_tessfactor向上取整;
(6-2)根据公式:
tessfactori+1=tessfactori/2,
计算第i+1层的细分参数,其中tessfactori为第i层的细分参数,i=0,1,……,g_depth,其中tessfactor0=g_tessfactor;
(6-3)基于四次箱样条基函数,根据每一层的细分参数、控制顶点、控制面片以及各个控制面片的参数域绘制相应层的面片。
后一层的细分参数通过前一层的细分参数确定,本发明中后一层的细分参数是前一层的细分参数的两倍。得到各个层的细分参数后,采用四次箱样条基函数即可绘制得到相应层的面片。每细分一次后的控制网格可以理解为被细分过一次,那么细分参数减半。
与现有的Loop细分曲面的绘制方法相比较,本发明的Loop细分曲面的绘制方法通过不规则区域的自适应方式,依据不规则面片的类型,将不规则面片的分割成若干个子面片,然后以得到的子面片生成该三角控制网格的控制面片进行面片绘制。通过分割能够采用tessellation着色器绘精确计算得到三角控制网格中各层顶点的位置,因此所有计算得到的顶点和法向量都与极限Loop细分曲面相同,且硬件tessellation着色器绘制,解决全局细分方法的庞大内存和带宽问题,能够达到实时精确绘制Loop细分曲面。
附图说明
图1为本发明的Loop细分曲面的绘制方法的流程图;
图2为原始画面的拆分方法和参数域的确定示意图。
具体实施方式
下面将结合附图和具体实施例对本发明进行详细说明。
一种基于不规则区域的自适应GPU绘制Loop细分曲面方法,包括以下步骤:
(1)输入三角控制网格,并设定最大细分层数和全局细分参数,且最大细分层数和全局细分参数满足以下条件:
1.0≤g_tessfactor≤2n
其中,g_tessfactor为全局细分参数,n为最大细分层数(本实施例中g_tessfactor=1.0,n=8)。
(2)确定三角控制网格的不规则区域,并以该不规则区域作为三角控制网格的第零层拓扑结构,根据第零层拓扑结构生成三角控制网格的第零层细分查找表,根据第零层细分查找表构建三角控制网格的第一层拓扑结构,并根据第一层拓扑结构生成三角控制网格的第一层细分查找表。
不规则区域为三角控制网格的奇异点、半尖锐顶点和分层次编辑点。本实施例中:奇异点是指度不为6的顶点,半尖锐顶点指连接的边中有尖锐值不为零的边的顶点;分层次编辑点指根据造型需要,在不同细分层次上对三角控制网格做编辑的点。
(3)依次递推,直至构建得到三角控制网格的第n层细分查找表和第n层拓扑结构,其中n等于设定的最大细分层数;
细分查找表包括边点表和点点表,边点表用于记录不规则区域中各个边点所在边的相邻两个三角形的四个顶点的索引;点点表用于记录不规则区域中的各个顶点的索引,各个顶点的度,以及各顶点的一环邻域顶点索引和一环邻域顶点的起始位置。
(4)将各层细分查找表以及第零层控制顶点的位置上传至GPU,GPU的计算着色器根据各层细分查找表和上一层控制顶点的位置,依次计算得到各层控制顶点的位置。
(5)根据各层拓扑结构构造该拓扑结构中各个原始面片的控制面片作为该层控制面片,并确定各个控制面片的参数域,具体如下:
(5-1)根据所述拓扑结构中各个原始面片所处的细分层数将各个原始面片划分为平凡面片和非平凡面片:
若当前原始面片的边相邻原始面片的细分层数均小于或等于当前原始面片的细分层数,则当前原始面片为平凡面片,
否则,当前原始面片为非平凡面片;
(5-2)若当前原始面片为平凡面片,则以当前原始面片的一环邻域的顶点索引作为当前原始面片的控制面片,并确定该控制面片的参数域;
若当前原始面片为非平凡面片,则进行如下操作:
(5-21)根据边相邻原始面片大于当前原始面片的细分层数将当前原始面片划分为若干个子面片,具体如下:
(a)若只有一个边相邻原始面片大于当前原始面片的细分层数,以该边相邻原始面片与当前原始面片的公共边的中点和该当前原始面片中该公共边相对的顶点的连线为分割线,将当前原始面片拆分为两个子面片;
(b)若有两个边相邻原始面片大于当前原始面片的细分层数,以两个边相邻原始面片与当前原始面片的公共边的中点的连线和任意一个公共边的中点和与该公共边相对的连线为分割线将当前原始面片拆分为三个子面片;
(c)若有三个边相邻原始面片大于当前原始面片的细分层数,以当前原始面片的三条边的中点的两两连线为分割线,将当前原始面片拆分为四个子面片。
(5-22)以当前原始面片的一环邻域的顶点索引作为各个子面片的控制面片,并确定各个控制面片的参数域。
本实施例中平凡面片的各个子面片的控制面片的参数域的根据重心坐标的计算方法确定。
本实施例中非平凡面片的控制面片的分割规则,以及分割后各个子面片的参数域的确定方法如图2所示,图中虚线表示分割线,①、②、③和④为子面片的编号。
如图2(a)所示,若只有一个边相邻原始面片大于当前原始面片的细分层数,则将当前原始面片拆分为图2(a)中所示的两个子面片。
①号子面片的参数域为:
Ω 1 a = { ( u , v ) | u ∈ [ 0,1 ] , v ∈ [ 1 2 ( 1 - u ) , 1 ] } ;
②号子面片的参数域为:
Ω 2 a = { ( u , v ) | u ∈ [ 0,1 ] , v ∈ [ 0 , 1 2 ( 1 - u ) ] } .
如图2(b)所示,若有两个边相邻原始面片大于当前原始面片的细分层数,则将当前原始面片拆分为三个子面片,其中:
①号子面片的参数域为:
Ω 1 b = { ( u , v ) | u ∈ [ 0,1 ] , v ∈ [ 1 2 ( 1 - u ) , 1 ] } ;
②号子面片的参数域为:
Ω 2 b = { ( u , v ) | u ∈ [ 0 , 1 2 ] , v ∈ [ 1 2 - u , 1 2 ( 1 - u ) ] } ∪ { ( u , v ) | u ∈ [ 1 2 , 1 ] , v ∈ [ 0 , 1 2 ( 1 - u ) ] } ;
③号子面片的参数域为:
Ω 3 b = { ( u , v ) | u ∈ [ 0 , 1 2 ] , v ∈ [ 0 , 1 2 - u ] } .
如图2(c)所示,若有三个边相邻原始面片大于当前原始面片的细分层数,则将当前原始面片拆分为四个子面片。其中:
①号子面片的参数域为:
Ω 1 c = { ( u , v ) | u ∈ [ 0,1 - v ] , v ∈ [ 1 2 , 1 ] } ;
②号子面片的参数域为:
Ω 2 c = { ( u , v ) | u ∈ [ 0 , 1 2 ] , v ∈ [ 1 2 - u , 1 2 ] } ;
③号子面片的参数域为:
Ω 3 c = { ( u , v ) | u ∈ [ 0 , 1 2 ] , v ∈ [ 0 , 1 2 - u ] } ;
④号子面片的参数域为:
Ω 4 c = { ( u , v ) | u ∈ [ 1 2 , 1 ] , v ∈ [ 0,1 - u ] } .
(6)根据全局细分参数确定当前细分层数,分别根据各层控制顶点的位置、各层控制面片、以及各控制面片的参数域由tessellation着色器绘制第零层面片至第g_depth层面片,g_depth为当前细分层数。具体包括以下过程:
(6-1)根据公式:
确定当前细分层数,其中g_depth为当前细分层数,g_tessfactor为全局细分参数,
Figure BDA0000458142850000107
表示对log2g_tessfactor向上取整;
(6-2)根据公式:
tessfactori+1=tessfactori/2,
计算第i+1层的细分参数,其中tessfactori为第i层的细分参数,i=0,1,……,g_depth,其中tessfactor0=g_tessfactor;
(6-3)基于四次箱样条基函数,根据每一层的细分参数、控制顶点、控制面片以及各个控制面片的参数域绘制相应层的面片。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,包括:
(1)输入三角控制网格,并设定最大细分层数和全局细分参数;
(2)确定三角控制网格的不规则区域,并以该不规则区域作为三角控制网格的第零层拓扑结构,根据第零层拓扑结构生成三角控制网格的第零层细分查找表,根据第零层细分查找表构建三角控制网格的第一层拓扑结构,并根据第一层拓扑结构生成三角控制网格的第一层细分查找表;
(3)依次递推,直至构建得到三角控制网格的第n层细分查找表和第n层拓扑结构,其中n等于设定的最大细分层数;
(4)将各层细分查找表以及第零层控制顶点的位置上传至GPU,GPU的计算着色器根据各层细分查找表和上一层控制顶点的位置,依次计算得到各层控制顶点的位置;
(5)根据各层拓扑结构构造该拓扑结构中各个原始面片的控制面片作为该层控制面片,并确定各个控制面片的参数域,具体如下:
(5-1)根据所述拓扑结构中各个原始面片所处的细分层数将各个原始面片划分为平凡面片和非平凡面片:
若当前原始面片的边相邻原始面片的细分层数均小于或等于当前原始面片的细分层数,则当前原始面片为平凡面片,
否则,当前原始面片为非平凡面片;
(5-2)若当前原始面片为平凡面片,则以当前原始面片的一环邻域的顶点索引作为当前原始面片的控制面片,并确定该控制面片的参数域;
若当前原始面片为非平凡面片,则进行如下操作:
(5-21)根据边相邻原始面片大于当前原始面片的细分层数将当前原始面片划分为若干个子面片,
(5-22)以当前原始面片的一环邻域的顶点索引作为各个子面片的控制面片,并确定各个控制面片的参数域;
(6)根据全局细分参数确定当前细分层数,分别根据各层控制顶点的位置、各层控制面片、以及各控制面片的参数域由tessellation着色器绘制第零层面片至第g_depth层面片,g_depth为当前细分层数。
2.如权利要求1所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述步骤(1)中最大细分层数和全局细分参数满足以下条件:
1.0≤g_tessfactor≤2n
其中,g_tessfactor为全局细分参数,n为最大细分层数。
3.如权利要求2所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述的不规则区域为三角控制网格的奇异点、半尖锐顶点和分层次编辑点。
4.如权利要求3所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述的细分表包括边点表和点点表,
所述的边点表用于记录不规则区域中各个边点所在边的相邻两个三角形的四个顶点的索引;
所述的点点表用于记录不规则区域中的各个顶点的索引,各个顶点的度,以及各顶点的一环邻域顶点索引和一环邻域顶点的起始位置。
5.如权利要求4所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述的控制顶点包括边点和顶点。
6.如权利要求5所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述步骤(4)中计算控制顶点的位置时在计算着色器中分别设置边点线程和点点线程,所述的边点线程用于计算边点的位置,所述的点点线程用于计算顶点的位置。
7.如权利要求6所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述步骤(5-21)包括:
(a)若只有一个边相邻原始面片大于当前原始面片的细分层数,以该边相邻原始面片与当前原始面片的公共边的中点和该当前原始面片中该公共边相对的顶点的连线为分割线,将当前原始面片拆分为两个子面片;
(b)若有两个边相邻原始面片大于当前原始面片的细分层数,以两个边相邻原始面片与当前原始面片的公共边的中点的连线和任意一个公共边的中点和与该公共边相对的连线为分割线将当前原始面片拆分为三个子面片;
(c)若有三个边相邻原始面片大于当前原始面片的细分层数,以当前原始面片的三条边的中点的两两连线为分割线,将当前原始面片拆分为四个子面片。
8.如权利要求7所述的基于不规则区域的自适应性的Loop细分曲面的绘制方法,其特征在于,所述步骤(6)包括以下步骤:
(6-1)根据公式:
确定当前细分层数,其中g_depth为当前细分层数,g_tessfactor为全局细分参数,
Figure FDA0000458142840000032
表示对log2g_tessfactor向上取整;
(6-2)根据公式:
tessfactori+1=tessfactori/2,
计算第i+1层的细分参数,其中tessfactori为第i层的细分参数,i=0,1,……,g_depth,其中tessfactor0=g_tessfactor;
(6-3)基于四次箱样条基函数,根据每一层的细分参数、控制顶点、控制面片以及各个控制面片的参数域绘制相应层的面片。
CN201410021013.7A 2014-01-17 2014-01-17 基于不规则区域的自适性的Loop细分曲面的绘制方法 Expired - Fee Related CN103810756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410021013.7A CN103810756B (zh) 2014-01-17 2014-01-17 基于不规则区域的自适性的Loop细分曲面的绘制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410021013.7A CN103810756B (zh) 2014-01-17 2014-01-17 基于不规则区域的自适性的Loop细分曲面的绘制方法

Publications (2)

Publication Number Publication Date
CN103810756A true CN103810756A (zh) 2014-05-21
CN103810756B CN103810756B (zh) 2016-08-17

Family

ID=50707470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410021013.7A Expired - Fee Related CN103810756B (zh) 2014-01-17 2014-01-17 基于不规则区域的自适性的Loop细分曲面的绘制方法

Country Status (1)

Country Link
CN (1) CN103810756B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104616327A (zh) * 2014-07-31 2015-05-13 浙江大学 一种基于曲面细分的着色器简化方法、装置及图形渲染方法
CN104966313A (zh) * 2015-06-12 2015-10-07 浙江大学 三角形重建的几何阴影图方法
CN105321208A (zh) * 2015-12-07 2016-02-10 杭州电子科技大学 一种基于顶点编码的四边形网格细分曲面存取方法
CN106251391A (zh) * 2015-06-05 2016-12-21 想象技术有限公司 细分方法
CN106251384A (zh) * 2015-06-05 2016-12-21 想象技术有限公司 使用三角形的递归再分的细分方法
CN104183008B (zh) * 2014-07-31 2017-01-18 浙江大学 一种基于表面信号拟合和曲面细分的着色器简化方法、装置及图形渲染方法
CN106887042A (zh) * 2017-01-23 2017-06-23 北京工业大学 基于gpu的自适应曲面细分方法
CN109407617A (zh) * 2018-09-20 2019-03-01 上海电机学院 一种nc刀轨生成方法
CN116051786A (zh) * 2023-03-29 2023-05-02 核工业航测遥感中心 标准网格三维模型快速显示方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090225078A1 (en) * 2008-03-07 2009-09-10 Jaroslaw Roman Rossignac Rendering Curves Through Iterative Refinement
CN101639946A (zh) * 2009-08-26 2010-02-03 北京农业信息技术研究中心 植物叶片三维模型几何描述和曲面重建方法及系统
CN101853527A (zh) * 2009-04-01 2010-10-06 北京工业大学 插值细分方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090225078A1 (en) * 2008-03-07 2009-09-10 Jaroslaw Roman Rossignac Rendering Curves Through Iterative Refinement
CN101853527A (zh) * 2009-04-01 2010-10-06 北京工业大学 插值细分方法
CN101639946A (zh) * 2009-08-26 2010-02-03 北京农业信息技术研究中心 植物叶片三维模型几何描述和曲面重建方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LI G Q,REN C J,ZHANG J H,ET AL: "Approximation of loop subdivision surfaces for fast rendering", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》, 17 February 2011 (2011-02-17) *
NIEBNER M.LOOP C.MEYER M,ET AL: "Feature-adaptive GPU rt.n(kjriiig of Catmull Clark subdivision surfaces", 《ACM TRANSACTIONS ON GRAPHICS(TOG) 》, vol. 31, no. 1, 31 January 2012 (2012-01-31) *
李胜等: "基于GPU的试点相关自适应细分", 《计算机辅助设计与图形学学报》, vol. 19, no. 4, 30 April 2017 (2017-04-30) *
黄通浪: "基于GPU的自由曲面快速绘制", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 5, 15 May 2016 (2016-05-15) *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104183008B (zh) * 2014-07-31 2017-01-18 浙江大学 一种基于表面信号拟合和曲面细分的着色器简化方法、装置及图形渲染方法
CN104616327A (zh) * 2014-07-31 2015-05-13 浙江大学 一种基于曲面细分的着色器简化方法、装置及图形渲染方法
CN104616327B (zh) * 2014-07-31 2017-07-14 浙江大学 一种基于曲面细分的着色器简化方法、装置及图形渲染方法
CN106251391B (zh) * 2015-06-05 2021-05-14 想象技术有限公司 细分方法
CN106251391A (zh) * 2015-06-05 2016-12-21 想象技术有限公司 细分方法
US11263811B2 (en) 2015-06-05 2022-03-01 Imagination Technologies Limited Tessellation method using vertex tessellation factors
CN106251384A (zh) * 2015-06-05 2016-12-21 想象技术有限公司 使用三角形的递归再分的细分方法
CN106251384B (zh) * 2015-06-05 2021-08-10 想象技术有限公司 使用三角形的递归再分的细分方法
CN106251391B9 (zh) * 2015-06-05 2021-07-20 想象技术有限公司 细分方法
CN104966313A (zh) * 2015-06-12 2015-10-07 浙江大学 三角形重建的几何阴影图方法
CN104966313B (zh) * 2015-06-12 2017-09-19 浙江大学 三角形重建的几何阴影图方法
CN105321208A (zh) * 2015-12-07 2016-02-10 杭州电子科技大学 一种基于顶点编码的四边形网格细分曲面存取方法
CN105321208B (zh) * 2015-12-07 2017-12-26 杭州电子科技大学 一种基于顶点编码的四边形网格细分曲面存取方法
CN106887042B (zh) * 2017-01-23 2020-05-19 北京工业大学 基于gpu的自适应曲面细分方法
CN106887042A (zh) * 2017-01-23 2017-06-23 北京工业大学 基于gpu的自适应曲面细分方法
CN109407617A (zh) * 2018-09-20 2019-03-01 上海电机学院 一种nc刀轨生成方法
CN116051786A (zh) * 2023-03-29 2023-05-02 核工业航测遥感中心 标准网格三维模型快速显示方法

Also Published As

Publication number Publication date
CN103810756B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN103810756A (zh) 基于不规则区域的自适性的Loop细分曲面的绘制方法
Wang et al. A framework for 3D model reconstruction in reverse engineering
CN105183405A (zh) 一种自定义模型表面镂空的3d打印方法
CN101853525B (zh) 基于网格分割的带纹理模型细节保持简化方法
CN102938161B (zh) 一种基于Mean Shift的三维形状自动分割方法
CN102881047B (zh) 一种自动的非封闭隐式曲面重建方法
CN105303614A (zh) 改进的qem三维模型简化方法
CN111581776B (zh) 一种基于几何重建模型的等几何分析方法
CN104318621A (zh) 基于非均匀有理b样条曲面插值的船体曲面重构方法
CN101609564A (zh) 一种草图式输入的三维网格模型制作方法
CN116071519B (zh) 基于调和映射生成网格模型的图像处理方法和装置
CN102147930A (zh) 不规则植物叶片三维曲面的纹理映射方法
CN109636889B (zh) 一种基于动态缝合带的大规模三维地形模型渲染方法
AU2018226403B2 (en) Brush stroke generation with deep neural networks
Wang et al. A new point cloud simplification method with feature and integrity preservation by partition strategy
CN114693856B (zh) 对象生成方法、装置、计算机设备和存储介质
CN104361625A (zh) 一种基于射线原理的带边界保留的云数据精简算法
CN109785443B (zh) 一种针对大型海洋工程装备的三维模型简化方法
CN113012259B (zh) 一种基于三角剖分算法对凹多边形填充处理的方法
CN104899929A (zh) 一种基于拉普拉斯坐标的网格细分方法
CN105869210A (zh) 三维地质表面模型中的插值数据处理方法
CN117171855A (zh) 一种基于Delaunay三角剖分的丘陵区流场模型建模方法
IL273215B (en) Reconstruction of a partial swelling cell
CN113450441B (zh) 三维虚拟模型的渲染方法、装置和电子设备
Zhou et al. A new triangulation algorithm from 3D unorganized dense point cloud

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160817

Termination date: 20210117