平均二次误差度量方法.pdf

上传人:Y0****01 文档编号:4600998 上传时间:2018-10-21 格式:PDF 页数:9 大小:876.29KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410711955.8

申请日:

2014.11.28

公开号:

CN104463861A

公开日:

2015.03.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06T 7/00变更事项:发明人变更前:俞蔚变更后:俞蔚 余刚|||著录事项变更IPC(主分类):G06T 7/00变更事项:申请人变更前:杭州科澜信息技术有限公司变更后:浙江科澜信息技术有限公司变更事项:地址变更前:310012 浙江省杭州市文三路90号东部软件园科技大厦A203变更后:310051 浙江省杭州市滨江区滨安路1197号5幢363室|||实质审查的生效IPC(主分类):G06T7/00申请日:20141128|||公开

IPC分类号:

G06T7/00

主分类号:

G06T7/00

申请人:

杭州科澜信息技术有限公司

发明人:

俞蔚

地址:

310012浙江省杭州市文三路90号东部软件园科技大厦A203

优先权:

专利代理机构:

浙江永鼎律师事务所33233

代理人:

王梨华; 陈丽霞

PDF下载: PDF下载
内容摘要

本发明涉及计算机图形学领域,公开了一种平均二次误差度量方法,包括收集模型中所有顶点和更新所有三角面的向量,具体为:依据QEM算法将顶点误差定义为顶点到与顶点相邻的所有三角面的距离平方之和;将顶点误差的计算移到GPU端;定义像素值,将行向量转化为像素值并放入ColorBuffer中;从ColorBuffer中获取像素值并还原成平均二次误差矩阵;依据顶点误差的计算公式可得到平均二次误差的计算公式。本发明提供平均二次误差度量方法,采用QEM算法,通过将顶点误差的计算移到GPU端并从ColorBuffer中获取像素值并还原成平均二次误差矩阵,大大缩短了二次误差度量中初始化阶段所需时间。

权利要求书

1.  平均二次误差度量方法,其特征在于:包括:
依据QEM算法,将顶点误差Δ(ν)定义为顶点到与顶点相邻的所有三角面的距离平方之和,Δ(ν)按下列公式进行计算:Δ(v)=Δ(vxvyvz1T)=Σp∈planes(v)(pTv)2,]]>其中:p代表ax+by+cz+d=0的三角面,p=[a b c d]T,且a2+b2+c2=1;
将顶点误差Δ(ν)的计算移到GPU端,由此将顶点误差Δ(ν)计算公式变换为下列公式:Δ(v)=Σp∈planes(v)(vTp)(pTv)=Σp∈planes(v)vT(ppT)v=vT(Σp∈planesKp)v,]]>其中:Kp为矩阵,且Kp=ppT=a2abacadabb2bcbdacbcc2cdadbdcdd2;]]>
若模型数据的顶点数为n,三角面数为m,在收集顶点时需要记录与顶点相邻的三角面数的最大值为MaxNum,且MaxNum=max{Num(planes(ν1)),Num(planes(ν2)),Num(planes(ν3)),…,Num(planes(νn))},并定义Maxd2=max{dp12,dp22,dp32,…,dpm2},为了统一表达顶点误差,将所有顶点的相邻三角面数都扩充为MaxNum,不足的三角面以[0 0 0 0]T来表达;
若Maxd2≥1,由此将顶点误差Δ(ν)计算公式变换为下列公式:Δ(v)=(MaxNum)(Maxd2)Δ(v)(MaxNum)(Maxd2)=(MaxNum)(Maxd2)vT(Σp∈planes(v)ppT)v(MaxNum)(Maxd2)=(MaxNum)(Maxd2)vT(Σk=1MaxNump(v)kp(v)kT)v(MaxNum)(Maxd2)=(MaxNum)(Maxd2)(vT(1MaxNumΣk=1MaxNum(p(v)kMaxd)(p(v)kMaxd)T)v),]]>且定义p(v)=p(v)Maxd,]]>其中Q′(ν)为平均二次误差矩阵,由此可得Δ(ν)=(MaxNum)(Maxd2)(νTQ′(ν)ν);若Maxd2<1,p′(ν)=p(ν),由此可得Δ(ν)=(MaxNum)(νTQ′(ν)ν);
定义像素值为c(ν),Q′(ν)=[q(ν)0 q(ν)1 q(ν)2 q(ν)3]T,其中q(ν)i为行向量且0≤i≤3,c(ν)按下列公式计算:其中I=[1 1 1 1]T,将Q′(ν)中的行向量转化为像素值并放入ColorBuffer中;
从ColorBuffer中获取像素值并还原成平均二次误差矩阵,按如下计算公式:Q′(ν)=[2c(ν)0-I 2c(ν)1-I 2c(ν)2-I 2c(ν)3-I]T
定义平均二次误差为Δ′(ν),依据顶点误差Δ(ν)的计算公式可得到下列平均二次误差Δ′(ν)的计算公式:Δ(v)=Δ(v)(MaxNum)(Maxd2)Maxd2&GreaterEqual;1Δ(v)(MaxNum)Maxd2<1.]]>

2.
  根据权利要求1所述的平均二次误差度量方法,其特征在于:为了使输出结果能以像素值的方式输出,必须保证Q′(ν)中每个元素值满足:|Q′(ν)(i,j)|≤1,其中|Q(v)(i,j)|=|1MaxNumΣk=1MaxNumKp(v)k(i,j)|1MaxNumΣk=1MaxNum|Kp(v)k(i,j)|,]]>0≤i,j≤1,1≤k≤MaxNum;
当Maxd2≥1时,p=pMaxd=aMaxdbMaxdcMaxddMaxdT,]]>由于|a|≤1,|b|≤1,|c|≤1,|d|≤|Maxd|<1,由此可得则|Q′(ν)(i,j)|≤1成立;当Maxd2<1时,p′=p=[a b c d]T,由于|a|≤1,|b|≤1,|c|≤1,|d|≤|Maxd|<1,由此可得|Kp(v)k(i,j)|=|p(i,0)||p(0,j)|1,]]>则|Q′(ν)(i,j)|≤1成立;
当Maxd2≥1或Maxd2<1时均满足|Q′(ν)(i,j)|≤1,可在CPU端做平移缩放变化将输入 参数以像素值来进行上传,平移缩放变化通过下列公式实现:其中p″=[R G B A]T

说明书

平均二次误差度量方法
技术领域
本发明涉及接收机图形学领域,尤其涉及一种平均二次误差度量方法。
背景技术
随着三维扫描技术的发展,顶点数为数万甚至数百万的三维模型已经较为普遍,而这样的模型数据给计算机系统的存储、渲染和传输带来了巨大压力,特别是难以满足实时渲染的要求。模型的简化处理是解决这些问题的一个关键技术。
Garland等人于1997年提出基于QEM(Quadric Error Metrics)边收缩简化算法是迄今为止在综合性能上表现非常好的模型简化算法。QEM边收缩简化算法首先需要计算每个顶点的二次误差矩阵,接着选择所有适当的顶点对,计算每个顶点对的收缩目标顶点和误差值,然后按照误差值将顶点对进行升序排列且放入顶点对的列表,最后从头遍历列表并且移除顶点对,收缩顶点以及更新相关顶点对的误差值。
由于计算复杂度与三角形面数和顶点数成线性关系,QEM边收缩简化算法中初始化时间至少占用了整个时间的五分之一,初始化阶段费时的操作在于计算顶点的二次误差矩阵。Garland给出的试验中当模型数据拥有199,114三角面时,初始化时间甚至需要10.6S。
发明内容
本发明针对现有技术中存在QEM边收缩简化算法中初始化时间较长且初始化阶段费时的操作在于计算顶点的二次误差矩阵的缺点,提供了一种可大大缩短二次误差度量中初始化阶段所需时间的平均二次误差度量方法。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
平均二次误差度量方法,包括平均二次误差度量方法和基于平均二次误差度量方法的边收缩简化方法,平均二次误差度量方法包括:
依据QEM算法,将顶点误差Δ(ν)定义为顶点到与顶点相邻的所有三角面的距离平方之和,Δ(ν)按下列公式进行计算:其中:p代表ax+by+cz+d=0的三角面,p=[a b c d]T,且a2+b2+c2=1;
将顶点误差Δ(ν)的计算移到GPU端,由此将顶点误差Δ(ν)计算公式变换为下列公式:Δ(v)=Σp&Element;planes(v)(vTp)(pTv)=Σp&Element;planes(v)vT(ppT)v=vT(Σp&Element;planes(v)Kp)v,]]>其中:Kp为矩阵,且Kp=ppT=a2abacadabb2bcbdacbcc2cdadbdcdd2;]]>
若模型数据的顶点数为n,三角面数为m,在收集顶点时需要记录与顶点相邻的三角面数的最大值为MaxNum,且MaxNum=max{Num(planes(ν1)),Num(planes(ν2)),Num(planes(ν3)),…,Num(planes(νn))},并定义为了统一表达顶点误差,将所有顶点的相邻三角面数都扩充为MaxNum,不足的三角面以[0 0 0 0]T来表达;
若Maxd2≥1,由此将顶点误差Δ(ν)计算公式变换为下列公式:Δ(v)=(MaxNum)(Maxd2)Δ(v)(MaxNum)(Maxd2)=(MaxNum)(Maxd2)vT(Σp&Element;planesppT)v(MaxNum)(Maxd2)=(MaxNum)(Maxd2)vT(Σk=1MaxNump(v)kp(v)kT)v(MaxNum)(Maxd2)=(MaxNum)(Maxd2)(vT(1MaxNumΣk=1MaxNum(p(v)kMaxd)(p(v)kmaxd)T)v),]]>且定义p(v)=p(v)Maxd,]]>其中Q′(ν)为平均二次误差矩阵,由此可得Δ(ν)=(MaxNum)(Maxd2)(νTQ′(ν)ν);若Maxd2<1,p′(ν)=p(ν),由此可得Δ(ν)=(MaxNum)(νTQ′(ν)ν);
定义像素值为c(ν),Q′(ν)=[q(ν)0 q(ν)1 q(ν)2 q(ν)3]T,其中q(ν)i为行向量且0≤i≤3,c(ν)按下列公式计算:其中I=[1 1 1 1]T,将Q′(ν)中的行向量转化为像素值并放入ColorBuffer中;
从ColorBuffer中获取像素值并还原成平均二次误差矩阵,按如下计算公式:Q′(ν)=[2c(ν)0-I 2c(ν)1-I 2c(ν)2-I 2c(ν)3-I]T
定义平均二次误差为Δ′(ν),依据顶点误差Δ(ν)的计算公式可得到下列平均二次误差Δ′(ν)的计算公式:Δ(v)=Δ(v)(MaxNum)(Maxd2)Maxd2&GreaterEqual;1Δ(v)(MaxNum)Maxd2<1;]]>
边收缩简化方法包括选择所有适当的顶点对,计算每个顶点对的收缩目标顶点和误差值,然后按照误差值将顶点对进行升序排列且放入顶点对的列表,最后从头遍历列表并且移除顶点对,收缩顶点以及更新相关顶点对的误差值。
作为优选,为了使输出结果能以像素值的方式输出,必须保证Q′(ν)中每个 元素值满足:|Q′(ν)(i,j)|≤1,其中|Q(v)(i,j)|=|1MaxNumΣk=1MaxNumKp(v)k(i,j)|1MaxNumΣk=1MaxNum|Kp(v)k(i,j)|,]]>0≤i,j≤1,1≤k≤MaxNum;
当Maxd2≥1时,p=pMaxd=aMaxdbMaxdcMaxddMaxdT,]]>由于|a|≤1,|b|≤1,|c|≤1,|d|≤|Maxd|<1,由此可得则|Q′(ν)(i,j)|≤1成立;当Maxd2<1时,p′=p=[a b c d]T,由于|a|≤1,|b|≤1,|c|≤1,|d|≤|Maxd|<1,由此可得|Kp(v)k(i,j)|=|p(i,0)||p(0,j)|1,]]>则|Q′(ν)(i,j)|≤1成立;
当Maxd2≥1或Maxd2<1时均满足|Q′(ν)(i,j)|≤1,可在CPU端做平移缩放变化将输入参数以像素值来进行上传,平移缩放变化通过下列公式实现:其中p″=[R G B A]T
本发明由于采用了以上技术方案,具有显著的技术效果:采用平均二次误差度量的边收缩简化方法,利用GPU的并行计算能力来计算顶点的平均二次误差矩阵,大大缩短了二次误差度量中初始化阶段所需时间。
附图说明
图1为本发明模型中收集并记录的所有顶点实施例的布局图。
图2为与图1对应的输入纹理的像素值布局图。
图3为与图1对应的输出纹理的像素值布局图。
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
实施例1
平均二次误差度量方法,包括平均二次误差度量方法,包括平均二次误差度量方法和基于平均二次误差度量方法的边收缩简化方法,平均二次误差度量 方法包括:
依据QEM算法,将顶点误差Δ(ν)定义为顶点到与顶点相邻的所有三角面的距离平方之和,Δ(ν)按下列公式进行计算:其中:p代表ax+by+cz+d=0的三角面,p=[a b c d]T,且a2+b2+c2=1;
将顶点误差Δ(ν)的计算移到GPU端,由此将顶点误差Δ(ν)计算公式变换为下列公式:Δ(v)=Σp&Element;planes(v)(vTp)(pTv)=Σp&Element;planes(v)vT(ppT)v=vT(Σp&Element;planes(v)Kp)v,]]>其中:Kp为矩阵,且Kp=ppT=a2abacadabb2bcbdacbcc2cdadbdcdd2;]]>
若模型数据的顶点数为n,三角面数为m,在收集顶点时需要记录与顶点相邻的三角面数的最大值为MaxNum,且MaxNum=max{Num(planes(ν1)),Num(planes(ν2)),Num(planes(ν3)),…,Num(planes(νn))},并定义为了统一表达顶点误差,将所有顶点的相邻三角面数都扩充为MaxNum,不足的三角面以[0 0 0 0]T来表达,顶点ν相邻的三角面集为{p″(ν)0,p″(ν)1,p″(ν)2,…,p″(ν)MaxNum-1},以512×512为例来进行详细说明,如图1所示的在顶点对应位置上放入相邻三角面的向量,从而形成MaxNum张如图2所示的纹理图;
若Maxd2≥1,由此将顶点误差Δ(ν)计算公式变换为下列公式:Δ(v)=(MaxNum)(Maxd2)Δ(v)(MaxNum)(Maxd2)=(MaxNum)(Maxd2)vT(Σp&Element;planesppT)v(MaxNum)(Maxd2)=(MaxNum)(Maxd2)vT(Σk=1MaxNump(v)kp(v)kT)v(MaxNum)(Maxd2)=(MaxNum)(Maxd2)(vT(1MaxNumΣk=1MaxNum(p(v)kMaxd)(p(v)kmaxd)T)v),]]>且定义p(v)=p(v)Maxd,]]>其中Q′(ν)为平均二次误差矩阵,由此可得Δ(ν)=(MaxNum)(Maxd2)(νTQ′(ν)ν);若Maxd2<1,p′(ν)=p(ν),由此可得Δ(ν)=(MaxNum)(νTQ′(ν)ν);
定义像素值为c(ν),Q′(ν)=[q(ν)0 q(ν)1 q(ν)2 q(ν)3]T,其中q(ν)i为行向量且0≤i≤3,c(ν)按下列公式计算:其中I=[1 1 1 1]T,将Q′(ν)中的行向量转化为像素值并放入ColorBuffer中,按照如图1所示顶点的布局来放置如图3所示的c(ν);
从ColorBuffer中获取像素值并还原成平均二次误差矩阵,按如下计算公式:Q′(ν)=[2c(ν)0-I 2c(ν)1-I 2c(ν)2-I 2c(ν)3-I]T
为了使输出结果能以像素值的方式输出,必须保证Q′(ν)中每个元素值满足:|Q′(ν)(i,j)|≤1,其中|Q(v)(i,j)|=|1MaxNumΣk=1MaxNumKp(v)k(i,j)|1MaxNumΣk=1MaxNum|Kp(v)k(i,j)|,]]>0≤i,j≤1,1≤k≤MaxNum;
当Maxd2≥1时,p=pMaxd=aMaxdbMaxdcMaxddMaxdT,]]>由于|a|≤1,|b|≤1,|c|≤1,|d|≤|Maxd|<1,由此可得则|Q′(ν)(i,j)|≤1成立;当Maxd2<1时,p′=p=[a b c d]T,由于|a|≤1,|b|≤1,|c|≤1,|d|≤|Maxd|<1,由 此可得|Kp(v)k(i,j)|=|p(i,0)||p(0,j)|1,]]>则|Q′(ν)(i,j)|≤1成立;
当Maxd2≥1或Maxd2<1时均满足|Q′(ν)(i,j)|≤1,可在CPU端做平移缩放变化将输入参数以像素值来进行上传,平移缩放变化通过下列公式实现:其中p″=[R G B A]T
定义平均二次误差为Δ′(ν),依据顶点误差Δ(ν)的计算公式可得到下列平均二次误差Δ′(ν)的计算公式:Δ(v)=Δ(v)(MaxNum)(Maxd2)Maxd2&GreaterEqual;1Δ(v)(MaxNum)Maxd2<1;]]>
边收缩简化方法包括选择所有适当的顶点对,计算每个顶点对的收缩目标顶点和误差值,然后按照误差值将顶点对进行升序排列且放入顶点对的列表,最后从头遍历列表并且移除顶点对,收缩顶点以及更新相关顶点对的误差值。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

平均二次误差度量方法.pdf_第1页
第1页 / 共9页
平均二次误差度量方法.pdf_第2页
第2页 / 共9页
平均二次误差度量方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《平均二次误差度量方法.pdf》由会员分享,可在线阅读,更多相关《平均二次误差度量方法.pdf(9页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410711955.8 (22)申请日 2014.11.28 G06T 7/00(2006.01) (71)申请人 杭州科澜信息技术有限公司 地址 310012 浙江省杭州市文三路 90 号东 部软件园科技大厦 A203 (72)发明人 俞蔚 (74)专利代理机构 浙江永鼎律师事务所 33233 代理人 王梨华 陈丽霞 (54) 发明名称 平均二次误差度量方法 (57) 摘要 本发明涉及计算机图形学领域, 公开了一种 平均二次误差度量方法, 包括收集模型中所有顶 点和更新所有三角面的向量, 具体为 : 依据 QEM 算法将顶点误差定。

2、义为顶点到与顶点相邻的所 有三角面的距离平方之和 ; 将顶点误差的计算 移到 GPU 端 ; 定义像素值, 将行向量转化为像素 值并放入 ColorBuffer 中 ; 从 ColorBuffer 中获 取像素值并还原成平均二次误差矩阵 ; 依据顶 点误差的计算公式可得到平均二次误差的计算 公式。本发明提供平均二次误差度量方法, 采用 QEM算法, 通过将顶点误差的计算移到GPU端并从 ColorBuffer 中获取像素值并还原成平均二次误 差矩阵, 大大缩短了二次误差度量中初始化阶段 所需时间。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2。

3、页 说明书5页 附图1页 (10)申请公布号 CN 104463861 A (43)申请公布日 2015.03.25 CN 104463861 A 1/2 页 2 1. 平均二次误差度量方法, 其特征在于 : 包括 : 依据 QEM 算法, 将顶点误差 () 定义为顶点到与顶点相邻的所有三角面的距离平 方之和, () 按下列公式进行计算 :其中 : p 代表 ax+by+cz+d 0 的三角面, p a b c dT, 且 a2+b2+c2 1 ; 将顶点误差 () 的计算移到 GPU 端, 由此将顶点误差 () 计算公式变换为下 列 公 式 :其 中 : Kp为 矩 阵, 且 若模型数据的顶。

4、点数为 n, 三角面数为 m, 在收集顶点时需要记录与顶点相邻的三角面 数的最大值为 MaxNum, 且 MaxNum maxNum(planes(1),Num(planes(2),Num(plane s(3),Num(planes(n), 并定义 Maxd2 maxdp12,dp22,dp32,dpm2, 为了统一表达 顶点误差, 将所有顶点的相邻三角面数都扩充为 MaxNum, 不足的三角面以 0 0 0 0T来表 达 ; 若 Maxd2 1, 由此将顶点误差 () 计算公式变换为下列公式 : 且定义其中 Q () 为平均二 次误差矩阵, 由此可得 () (MaxNum)(Maxd2)(T。

5、Q () ; 若 Maxd2 1, p () p(), 由此可得 () (MaxNum)(TQ () ; 定义像素值为c(), Q()q()0 q()1 q()2 q()3T, 其中q()i为行向 量且 0 i 3, c() 按下列公式计算 :其中 I 1 1 1 1T, 将 Q () 权 利 要 求 书 CN 104463861 A 2 2/2 页 3 中的行向量转化为像素值并放入 ColorBuffer 中 ; 从 ColorBuffer 中获取像素值并还原成平均二次误差矩阵, 按如下计算公式 : Q () 2c()0-I 2c()1-I 2c()2-I 2c()3-IT; 定义平均二次误。

6、差为 (), 依据顶点误差 () 的计算公式可得到下列平均二 次误差 () 的计算公式 : 2. 根据权利要求 1 所述的平均二次误差度量方法, 其特征在于 : 为了使输出结果能 以像素值的方式输出, 必须保证 Q () 中每个元素值满足 : |Q ()(i,j)| 1, 其 中0 i,j 1, 1 k MaxNum ; 当 Maxd2 1 时,由 于 |a| 1, |b| 1, |c| 1, |d| |Maxd| 1,由 此 可 得则 |Q()(i,j)|1成立 ; 当Maxd21时, ppa b c dT, 由于|a|1, |b|1, |c| 1, |d| |Maxd| 1, 由 此 可 。

7、得则 |Q () (i,j)| 1 成立 ; 当Maxd21或Maxd21时均满足|Q()(i,j)|1, 可在CPU端做平移缩放变化 将输入参数以像素值来进行上传, 平移缩放变化通过下列公式实现 :其中 p R G B AT。 权 利 要 求 书 CN 104463861 A 3 1/5 页 4 平均二次误差度量方法 技术领域 0001 本发明涉及接收机图形学领域, 尤其涉及一种平均二次误差度量方法。 背景技术 0002 随着三维扫描技术的发展, 顶点数为数万甚至数百万的三维模型已经较为普遍, 而这样的模型数据给计算机系统的存储、 渲染和传输带来了巨大压力, 特别是难以满足实 时渲染的要求。。

8、模型的简化处理是解决这些问题的一个关键技术。 0003 Garland 等人于 1997 年提出基于 QEM(Quadric Error Metrics) 边收缩简化算法 是迄今为止在综合性能上表现非常好的模型简化算法。QEM 边收缩简化算法首先需要计算 每个顶点的二次误差矩阵, 接着选择所有适当的顶点对, 计算每个顶点对的收缩目标顶点 和误差值, 然后按照误差值将顶点对进行升序排列且放入顶点对的列表, 最后从头遍历列 表并且移除顶点对, 收缩顶点以及更新相关顶点对的误差值。 0004 由于计算复杂度与三角形面数和顶点数成线性关系, QEM 边收缩简化算法中初始 化时间至少占用了整个时间的五分。

9、之一, 初始化阶段费时的操作在于计算顶点的二次误 差矩阵。Garland 给出的试验中当模型数据拥有 199,114 三角面时, 初始化时间甚至需要 10.6S。 发明内容 0005 本发明针对现有技术中存在 QEM 边收缩简化算法中初始化时间较长且初始化阶 段费时的操作在于计算顶点的二次误差矩阵的缺点, 提供了一种可大大缩短二次误差度量 中初始化阶段所需时间的平均二次误差度量方法。 0006 为了解决上述技术问题, 本发明通过下述技术方案得以解决 : 0007 平均二次误差度量方法, 包括平均二次误差度量方法和基于平均二次误差度量方 法的边收缩简化方法, 平均二次误差度量方法包括 : 000。

10、8 依据QEM算法, 将顶点误差()定义为顶点到与顶点相邻的所有三角面的距离 平方之和, () 按下列公式进行计算 :其中 : p 代 表 ax+by+cz+d 0 的三角面, p a b c dT, 且 a2+b2+c2 1 ; 0009 将顶点误差 () 的计算移到 GPU 端, 由此将顶点误差 () 计算公式变换为 下列公式 :其中 : Kp为矩阵, 且 说 明 书 CN 104463861 A 4 2/5 页 5 0010 若模型数据的顶点数为 n, 三角面数为 m, 在收集顶点时需要记录与顶点相邻的三 角面数的最大值为MaxNum, 且MaxNummaxNum(planes(1),N。

11、um(planes(2),Num(pl anes(3),Num(planes(n), 并定义为了统一 表达顶点误差, 将所有顶点的相邻三角面数都扩充为 MaxNum, 不足的三角面以 0 0 0 0T 来表达 ; 0011 若 Maxd2 1, 由此将顶点误差 () 计算公式变换为下列公式 : 且定义其中 Q () 为平均二次误 差矩阵, 由此可得 () (MaxNum)(Maxd2)(TQ () ; 若 Maxd2 1, p () p(), 由此可得 () (MaxNum)(TQ () ; 0012 定义像素值为 c(), Q () q()0 q()1 q()2 q()3T, 其中 q()i。

12、 为行向量且 0 i 3, c() 按下列公式计算 :其中 I 1 1 1 1T, 将 Q () 中的行向量转化为像素值并放入 ColorBuffer 中 ; 0013 从 ColorBuffer 中获取像素值并还原成平均二次误差矩阵, 按如下计算公式 : Q () 2c()0-I 2c()1-I 2c()2-I 2c()3-IT; 0014 定义平均二次误差为 (), 依据顶点误差 () 的计算公式可得到下列平 均二次误差 () 的计算公式 : 0015 边收缩简化方法包括选择所有适当的顶点对, 计算每个顶点对的收缩目标顶点和 误差值, 然后按照误差值将顶点对进行升序排列且放入顶点对的列表,。

13、 最后从头遍历列表 并且移除顶点对, 收缩顶点以及更新相关顶点对的误差值。 0016 作 为 优 选,为 了 使 输 出 结 果 能 以 像 素 值 的 方 式 输 出,必 须 保 证 Q () 中 每 个 元 素 值 满 足 : |Q ()(i,j)| 1, 其 中 说 明 书 CN 104463861 A 5 3/5 页 6 0 i,j 1, 1 k MaxNum ; 0017 当 Maxd2 1 时,由于 |a| 1, |b|1, |c|1, |d|Maxd|1, 由此可得则|Q() (i,j)| 1 成立 ; 当 Maxd2 1 时, p p a b c dT, 由于 |a| 1, |。

14、b| 1, |c| 1, |d|Maxd|1, 由此可得则|Q()(i,j)|1成立 ; 0018 当 Maxd2 1 或 Maxd2 1 时均满足 |Q ()(i,j)| 1, 可在 CPU 端做平移缩 放变化将输入参数以像素值来进行上传, 平移缩放变化通过下列公式实现 :其 中 p R G B AT。 0019 本发明由于采用了以上技术方案, 具有显著的技术效果 : 采用平均二次误差度量 的边收缩简化方法, 利用 GPU 的并行计算能力来计算顶点的平均二次误差矩阵, 大大缩短 了二次误差度量中初始化阶段所需时间。 附图说明 0020 图 1 为本发明模型中收集并记录的所有顶点实施例的布局图。

15、。 0021 图 2 为与图 1 对应的输入纹理的像素值布局图。 0022 图 3 为与图 1 对应的输出纹理的像素值布局图。 具体实施方式 0023 下面结合附图与实施例对本发明作进一步详细描述。 0024 实施例 1 0025 平均二次误差度量方法, 包括平均二次误差度量方法, 包括平均二次误差度量方 法和基于平均二次误差度量方法的边收缩简化方法, 平均二次误差度量方法包括 : 0026 依据QEM算法, 将顶点误差()定义为顶点到与顶点相邻的所有三角面的距离 平方之和, () 按下列公式进行计算 :其中 : p 代 表 ax+by+cz+d 0 的三角面, p a b c dT, 且 a。

16、2+b2+c2 1 ; 0027 将顶点误差 () 的计算移到 GPU 端, 由此将顶点误差 () 计算公式变换 为下列公式 :其中 : Kp为矩阵, 且 说 明 书 CN 104463861 A 6 4/5 页 7 0028 若模型数据的顶点数为 n, 三角面数为 m, 在收集顶点时需要记录与顶点相邻的三 角面数的最大值为MaxNum, 且MaxNummaxNum(planes(1),Num(planes(2),Num(pl anes(3),Num(planes(n), 并定义为了统一 表达顶点误差, 将所有顶点的相邻三角面数都扩充为 MaxNum, 不足的三角面以 0 0 0 0T 来表达。

17、, 顶点 相邻的三角面集为 p ()0,p ()1,p ()2,p ()MaxNum-1, 以 512512 为例来进行详细说明, 如图 1 所示的在顶点对应位置上放入相邻三角面的向量, 从而形成 MaxNum 张如图 2 所示的纹理图 ; 0029 若 Maxd2 1, 由此将顶点误差 () 计算公式变换为下列公式 : 且定义其中 Q () 为平均二次误 差矩阵, 由此可得 () (MaxNum)(Maxd2)(TQ () ; 若 Maxd2 1, p () p(), 由此可得 () (MaxNum)(TQ () ; 0030 定义像素值为 c(), Q () q()0 q()1 q()2 。

18、q()3T, 其中 q()i 为行向量且 0 i 3, c() 按下列公式计算 :其中 I 1 1 1 1T, 将 Q () 中的行向量转化为像素值并放入 ColorBuffer 中, 按照如图 1 所示顶点的布局来 放置如图 3 所示的 c() ; 0031 从 ColorBuffer 中获取像素值并还原成平均二次误差矩阵, 按如下计算公式 : Q () 2c()0-I 2c()1-I 2c()2-I 2c()3-IT; 0032 为 了 使 输 出 结 果 能 以 像 素 值 的 方 式 输 出, 必 须 保 证 Q () 中每个元素值满足 : |Q ()(i,j)| 1, 其中 说 明 。

19、书 CN 104463861 A 7 5/5 页 8 0i , j1 , 1 k MaxNum ; 0033 当 Maxd2 1 时,由于 |a| 1, |b|1, |c|1, |d|Maxd|1, 由此可得则|Q() (i,j)| 1 成立 ; 当 Maxd2 1 时, p p a b c dT, 由于 |a| 1, |b| 1, |c| 1, |d|Maxd|1, 由此可得则|Q()(i,j)|1成立 ; 0034 当 Maxd2 1 或 Maxd2 1 时均满足 |Q ()(i,j)| 1, 可在 CPU 端做平移缩 放变化将输入参数以像素值来进行上传, 平移缩放变化通过下列公式实现 :。

20、 其中 p R G B AT。 0035 定义平均二次误差为 (), 依据顶点误差 () 的计算公式可得到下列平 均二次误差 () 的计算公式 : 0036 边收缩简化方法包括选择所有适当的顶点对, 计算每个顶点对的收缩目标顶点和 误差值, 然后按照误差值将顶点对进行升序排列且放入顶点对的列表, 最后从头遍历列表 并且移除顶点对, 收缩顶点以及更新相关顶点对的误差值。 0037 总之, 以上所述仅为本发明的较佳实施例, 凡依本发明申请专利范围所作的均等 变化与修饰, 皆应属本发明专利的涵盖范围。 说 明 书 CN 104463861 A 8 1/1 页 9 图 1 图 2 图 3 说 明 书 附 图 CN 104463861 A 9 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1