一种平均二次误差度量的边收缩简化方法

文档序号:6636355阅读:321来源:国知局
一种平均二次误差度量的边收缩简化方法
【专利摘要】本发明涉及计算机图形学领域,公开了一种平均二次误差度量的边收缩简化方法,包括平均二次误差度量方法和基于平均二次误差度量方法的边收缩简化方法,平均二次误差度量方法包括收集模型中所有顶点和更新所有三角面的向量,边收缩简化方法包括选择所有适当的顶点对,计算每个顶点对的收缩目标顶点和误差值,然后按照误差值将顶点对进行升序排列且放入顶点对的列表,最后从头遍历列表并且移除顶点对,收缩顶点以及更新相关顶点对的误差值。本发明提供一种平均二次误差度量的边收缩简化方法,采用平均二次误差度量的边收缩简化方法,利用GPU的并行计算能力来计算顶点的平均二次误差矩阵,大大缩短了二次误差度量中初始化阶段所需时间。
【专利说明】一种平均二次误差度量的边收缩简化方法

【技术领域】
[0001] 本发明涉及接收机图形学领域,尤其涉及一种平均二次误差度量的边收缩简化方 法。

【背景技术】
[0002] 随着三维扫描技术的发展,顶点数为数万甚至数百万的三维模型已经较为普遍, 而这样的模型数据给计算机系统的存储、渲染和传输带来了巨大压力,特别是难以满足实 时渲染的要求。模型的简化处理是解决这些问题的一个关键技术。
[0003] Garland等人于1997年提出基于QEM(Quadric Error Metrics)边收缩简化算法 是迄今为止在综合性能上表现非常好的模型简化算法。QEM边收缩简化算法首先需要计算 每个顶点的二次误差矩阵,接着选择所有适当的顶点对,计算每个顶点对的收缩目标顶点 和误差值,然后按照误差值将顶点对进行升序排列且放入顶点对的列表,最后从头遍历列 表并且移除顶点对,收缩顶点以及更新相关顶点对的误差值。
[0004] 由于计算复杂度与三角形面数和顶点数成线性关系,QEM边收缩简化算法中初始 化时间至少占用了整个时间的五分之一,初始化阶段费时的操作在于计算顶点的二次误 差矩阵。Garland给出的试验中当模型数据拥有199, 114三角面时,初始化时间甚至需要 10. 6S。


【发明内容】

[0005] 本发明针对现有技术中存在QEM边收缩简化算法中初始化时间较长且初始化阶 段费时的操作在于计算顶点的二次误差矩阵的缺点,提供了一种可大大缩短二次误差度量 中初始化阶段所需时间的平均二次误差度量的边收缩简化方法。
[0006] 为了解决上述技术问题,本发明通过下述技术方案得以解决:
[0007] -种平均二次误差度量的边收缩简化方法,包括平均二次误差度量方法和基于平 均二次误差度量方法的边收缩简化方法,平均二次误差度量方法包括:
[0008] 依据QEM算法,将顶点误差Λ ( V)定义为顶点到与顶点相邻的所有三角面的距离 平方之和,Λ ( V )按下列公式进行计算:

【权利要求】
1.一种平均二次误差度量的边收缩简化方法,其特征在于:包括平均二次误差度量方 法和基于平均二次误差度量方法的边收缩简化方法,平均二次误差度量方法包括: 依据QEM算法,将顶点误差Λ(V)定义为顶点到与顶点相邻的所有三角面的距离平 方之和,Λ(V)按下列公式进行计算:=。?> =Σ&Α)2其中:ρ代表 /JCplanes i rI ^ ax+by+cz+d=O的三角面,p=[abcd]T,且a2+b2+c2 = 1 ; 将顶点误差Λ(v)的计算移到GPU端,由此将顶点误差Λ(v)计算公式变换为下列 / 、 公式:Δ(ν> =Σ(!'>)(/,V)= 卜ν'Σ屺卜其中:ΚΡ为矩阵,且 ρψρ?αηρχ^ν) jk planer {%') ^pi plunrs(y) J ι_
% 若模型数据的顶点数为η,三角面数为m,在收集顶点时需要记录与顶点相邻的三角面 数的最大值为MaxNum,且MaxNum=max{Num(planes(V丨)),Num(planes(V2)),Num(planes (v3)),…,Num(planes(vn))},并定义Moxrf2 =maxpft-,2,..,rf,、十为了统一表达 顶点误差,将所有顶点的相邻三角面数都扩充为MaxNum,不足的三角面以[0 0 0 0]τ来表 达; 若Maxd2彡1,由此将顶点误差Λ(V)计算公式变换为下列公式:
/ \ I Vfax\um 且定义柄二其中Q,(V)为平均二 次误差矩阵,由此可得Δ(V) = (MaxNum) (Maxd2) (V1Q' (V)V); 若Maxd2 <1,p' (V) =p(v),由此可得Δ(V) = (MaxNum) (V1Q' (v)v); 定义像素值为c(v),Q' (V) = [qOhqOhqOhqOW,其中qOhS行向量 ζ?( \-f-I 且O彡i彡3,c(v)按下列公式计算:= ^其中I=[III1]τ,将Q' (V)中 I 9 的行向量转化为像素值并放入ColorBuffer中; 从ColorBufTer中获取像素值并还原成平均二次误差矩阵,按如下计算公式:Q' (V) =[2c(v)〇-I2c(v)j-I2c(v)2-I2c(v)3-Ι]τ; 定义平均二次误差为Λ' (v),依据顶点误差Λ(v)的计算公式可得到下列平均二 次误差Λ' (V)的计算公式
边收缩简化方法包括选择所有适当的顶点对,计算每个顶点对的收缩目标顶点和误差 值,然后按照误差值将顶点对进行升序排列且放入顶点对的列表,最后从头遍历列表并且 移除顶点对,收缩顶点以及更新相关顶点对的误差值。
2.根据权利要求1所述的一种平均二次误差度量的边收缩简化方法,其特征在于:为 了使输出结果能以像素值的方式输出,必须保证V(V)中每个元素值满足(V) (i,j)I彡1,其中
0^i,j^l,l^k^MaxNum; 当Maxd2 > 1 时,
, bI<I,ICI<I,IdI<MaxdI< 1,由此可得卜,叫(?',/>| 刘S1贝1JIQ,(V) (i,j)I< 1 成立;当Maxd2 <1 时,p'=p=[abcd]T,由于 |a| <l,|b| <l,|c| <1,d| < |Maxd| < 1,由此可得I[,的仏刘=|0如)|/^〇,乂_1则|〇,(乂)",」)|<1成立; 当Maxd2彡1或Maxd2 < 1时均满足IQ' (v) (i,j)I彡I,可在CPU端做平移缩放变化 将输入参数以像素值来进行上传,平移缩放变化通过下列公式实现:/ 其中P" =[RGBΑ]τ。
【文档编号】G06T17/00GK104463960SQ201410706544
【公开日】2015年3月25日 申请日期:2014年11月28日 优先权日:2014年11月28日
【发明者】俞蔚 申请人:杭州科澜信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1