一种基于顶点和新边点统一调整的Loop细分实现方法

文档序号:9632075阅读:687来源:国知局
一种基于顶点和新边点统一调整的Loop细分实现方法
【技术领域】
[0001] 本发明涉及一种基于顶点和新边点统一调整的Loop细分实现方法,具体涉及在 半边数据结构下快速实现Loop细分,本发明所指的Loop细分是一种基于三角面片模型的 细分方法,即Loop细分,属于计算机图形学和曲面造型技术领域。
【背景技术】
[0002] 细分曲面造型是一种通过将初始控制网格经过无数次细化而得到一个光滑的极 限曲面,是曲面造型中一种常用的技术,在计算机动画以及逆向工程领域得到了广泛的应 用。Loop细分是细分曲面造型中最常用的方法之一,参见LoopC.Smoothsubdivision surfacesbasedontriangles. 1987。Loop细分由于其细分模板的特点,对于新生成的边 点和原始顶点必须采用不同的细分模板。为了区别已有顶点和新生成的边点,在实现Loop 细分时一般会对顶点和边点进行分层次处理,使新生成的边点处于最高层级,对顶点和边 点的分层次处理增大了实现Loop细分程序的存储量。此外由于新生成的边点的位置由层 级比其低的已有顶点的位置决定,这使得计算边点的具体位置变得较为复杂。
[0003] Loop细分从细分方式上看属于1-4三角形细分,即在每一次细分中一个三角形分 成四个三角形。所以Loop细分可以分两个步骤实现,首先,将每一个三角面片三条边上的 三个中点作为新增加的边点两两相连,实现将一个三角面片细分成四个三角面片的1-4细 分。然后,将原始顶点和新增加的边点的位置进行调整。为此只需要找到一种统一的方法 对原始控制顶点和新增加的边点的位置进行调整,这为不通过对原始控制顶点和新生成的 边点进行分别处理以实现Loop细分提供了可能。

【发明内容】

[0004] 本发明的目的在于提供一种基于顶点和新边点统一调整的Loop细分实现方法, 它是一种简单的,不需要通过引入控制顶点层次信息以及控制顶点类型的Loop细分实现 方法,以解决现有的Loop细分算法需要通过对控制顶点设置层级并且对新边点和原始控 制顶点采用不同的细分模板进行计算以实现Loop细分的问题。
[0005] 本发明一种基于顶点和新边点统一调整的Loop细分实现方法,它包括如下步骤:
[0006] 步骤一:构建基于三角面片模型的半边数据存储结构,具体是:将三角网格模型 文件的数据通过计算机程序读入到内存中,并依据模型数据中的顶点坐标数据以及每个面 片的三个顶点编号分别建立基于顶点、半边以及面片的顶点线性链表、半边线性链表以及 面片线性链表。并且依据点、半边以及面片之间的关系,构建三者之间的半边数据存储结 构。
[0007] 步骤二:将每个三角面片三条边上的中点作为新生成的边点两两相连,实现将每 个三角面片分成四个三角面片。此时相应的顶点、半边以及面片的线性链表中应增加新生 成的点、半边以及新的面片,以实现1-4细分。
[0008] 步骤三:将经过1-4细分后新生成的边点以及原始控制顶点坐标采用式⑴进行 计算。
[0009]
Luu I uj穴T V '1、衣不?£?以 H、JJ火ΛΛΗΛΙ??:仞、?且,P 口H、JJ火ΛΛ出仞、?且,V; U - U,丄·" n-1)代表顶点V的其1-领域内的n个顶点的坐标值。
[0011] 步骤四:将完成Loop细分后的网格模型的所有顶点作为新的原始控制顶点,重复 步骤二和三,以实现多次Loop细分,待模型达到要求精度后,完成整个Loop细分过程。
[0012] 其中,在步骤一中所述的"三角网格模型文件",是指包含了三角网格模型的所有 三角面片的顶点坐标信息以及顶点和面之间拓扑关系的计算机文件,它可以是〇BJ、PLY等 计算机文件格式,只需要模型文件中包含了每个三角面片上三个顶点的坐标、顶点以及面 的拓扑关系即可。
[0013] 其中0BJ文件格式是指由Alias/Wavefront公司为3D建模和动画软件〃Advanced Visualize,开发的一种标准文件格式,这种文件格式中包含有如步骤一所述的三角网格 模型中的所有三角面片的顶点坐标信息以及顶点和面之间拓扑关系。
[0014] 其中PLY文件格式是指由是Stanford大学开发的一套三维网格模型数据格式。这 种文件格式中包含有如步骤一所述的三角网格模型中的所有三角面片的顶点坐标信息以 及顶点和面之间拓扑关系。
[0015] 其中,在步骤一中所述的半边数据存储结构也可以由其它类型的数据结构代替, 只要求数据结构能够很好的体现顶点、边以及面片之间的拓扑关系。
[0016] 其中,在步骤二中所述的1-4细分是指将一个三角形的三条边上的三个中点两两 互相连接,而将一个三角形分成四个三角形的过程。
[0017] 其中,在步骤三中所述的顶点的1-邻域点是指所有与该点以一条边相互连接的 点,该顶点的1-领域内的顶点个数称为该顶点的价。顶点价为6的内部点和顶点价为4的 边界点称为正则点,否则为非正则点。
[0018] 其中,Loop细分是一个极限过程,即Loop细分模型是通过无数次的Loop细分规 则进行细分后得到的极限模型,但在实际应用中,初始控制网格进行有限次的细分后得到 的Loop细分网格已经十分接近于Loop细分模型。因此,Loop细分的具体次数取决于使用 者所要求的模型精度以及运行Loop细分程序的计算机的性能。
[0019] 本发明基于顶点和新边点统一调整的Loop细分实现方法,其优点和功效在于:通 过1-4细分后生成的新边点和控制顶点可以通过统一的计算方法进行调整,从而不需要对 新生成的边点和控制顶点通过设置层级的方式进行区分,节约了内存,也简化了实现边点 位置调整算法的难度。使得从事Loop细分研究者能够快速实现Loop细分算法。
【附图说明】
[0020] 图1 (a)、(b)是半边数据存储结构示意图。
[0021] 图2是1-4细分示意图。
[0022] 图3是本发明提出的Loop细分方法中新顶点和新边点统一的调整算法示意图。
[0023] 图4是本发明提出的Loop细分方法的流程图。
[0024] 图中序号、符号、代号说明如下:
[0025] 图1(a)、(b)中的前驱与后继是指计算机学科中单向链表的前驱与后继。在一个 单向线性链表中,前驱是指在当前所指数据之前的前一个数据,后继是指当前所指数据中 的后一个数据。
[0026] 图1(b)中的序号1、2分别是指上下两个三角形,1是指图1(b)中在上方的三角 形,2是指图1(b)中在下方的三角形。
[0027] 图1(b)中的两个圆圈代表两个三角形的公共边上的两个顶点,两条带箭头的边 分别代表一条公共边的两条半边。
[0028] 图1(b)中与半边相连的顶点从属与该半边。
[0029] 图2中的空心圆代表未经过1-4细分前的原始控制顶点,同心圆代表经过1-4细 分后新增加的边点。
[0030] 图3中的α代表对该顶点进行调整时,此顶点的权值。β代表此顶点的1-领域 的所有顶点的权值。
【具体实施方式】
[0031] 下面结合操作步骤以及附图1(a)、(b)-一图3,对本发明作进一步的说明。
[0032] 本发明一种基于顶点和新边点统一调整的Loop细分实现方法,包括如下步骤:
[0033] 步骤一构建基于三角面片模型的半边数据存储结构,具体是:将三角网格模型文 件的数据通过计算机程序读入到内存中,并依据模型数据中的顶点坐标数据以及每个面片 的三个顶点编号分别建立基于顶点、半边以及面片的顶点线性链表、半边线性链表以及面 片线性链表。并且依据点、半边以及面片之间的关系,构建三者之间的半边数据存储结构。
[0034] 步骤二将每个三角面片三条边上的中点作为新生成的边点两两相连,实现将每个 三角面片分成四个三角面片。此时相应的顶点、半边以及面片的线性链表中应增加新生成 的点、半边以及新的面片,以实现1-4细分。
[0035] 步骤三将经过1-4细分后新生成的边点以及原始控制顶点坐标采用式(1)进行计 算
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1