[发明专利]一种动态细节层次模型实现方法在审
申请号: | 201810751900.8 | 申请日: | 2018-07-10 |
公开(公告)号: | CN109087392A | 公开(公告)日: | 2018-12-25 |
发明(设计)人: | 谢珏;吴含前;李露 | 申请(专利权)人: | 凯尔博特信息科技(昆山)有限公司 |
主分类号: | G06T17/05 | 分类号: | G06T17/05;G06T17/20 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 215300 江苏省苏州市昆山市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种动态细节层次模型实现方法。该技术主要包括对模型的预处理和对自定义文件解析两部分,模型的预处理部分主要对顶点按重要程度排序并保存折叠序列,生成自定义文件,通过对自定义文件的解析能够快速生成任意比例的模型,符合实现动态细节层次模型的要求。 | ||
搜索关键词: | 自定义文件 层次模型 预处理 解析 快速生成 折叠 排序 保存 | ||
【主权项】:
1.一种动态细节层次模型实现方法,其特征在于:包括如下步骤:S1)预处理:找出最小度量误差的顶点序列,如u‑>v,称u为被删除顶点,v为代替顶点;S1‑1)使用二次误差进行度量误差的度量:假设顶点u折叠到顶点v,则基于二次误差的半边折叠的度量误差为u到所有包含顶点v的三角平面的距离之和;一个三维空间中的三角平面可以用方程ax+by+zc+d=0(其中a2+b2+c2=1)来表示,令p=[a b c d]T代表包含顶点v的一个平面,点u的坐标为[x y z 1]T,则点u到三角平面p距离的平方为:
其中:
令
为点v的二次误差测度矩阵,其中planes(v)为所有包含顶点v的三角面的集合:度量误差为:
S2)保存被删除点旧id和新id的对应permutation[vertex[i]‑>id]=vertex.num‑1;S3)保存替代顶点的旧id到map[vertex.num‑1];S4)对折叠代价或度量误差最小的顶点序列进行半边折叠,并更新被删除点的邻居点的度量误差;S4‑1)对顶点对uv进行半边折叠,去除既包含顶点u又包含顶点v的三角形或以uv为边的三角形;后更新所有剩下的三角形,把所有用到顶点u的地方都用顶点v代替,移除顶点u;更新顶点u邻居点的度量误差;S5)循环步骤S1)‑S4),循环次数为vertex.num次;S6)利用permutation数组将map中的替代顶点的旧id替换为新id,map[i]=permutation[map[i]];S7)利用permutation数组对顶点按重要度进行排序,将三角形三元组的旧id替换为新id;S8)定义文件写入:预处理后,顶点id和重要度是一致的,顶点是有序的;越重要的顶点,顶点编号越小;越不重要的顶点,顶点编号越大;而map中则记录着折叠序列;对顶点数组按id写入自定义文件,并将三角形三元组和map数组写入自定义文件;S9)解析自定义文件:S9‑1)用原模型顶点数vert.num乘以精简度percent得到新模型的顶点数vert.num*percent,取出前vert.num*percent个顶点;S9‑2)对三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).t[1],tri.at(i).t[2],分别根据map折叠数组快速找到替代顶点序号;S9‑3)如果三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).tri[1],tri.at(i).tri[2]有相同的,则表示这个三角形无效。S9‑4)根据前vert.num*percent个顶点和有效三角形得到任意比例的模型。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于凯尔博特信息科技(昆山)有限公司,未经凯尔博特信息科技(昆山)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810751900.8/,转载请声明来源钻瓜专利网。
- 上一篇:一种三维场景下的军标标绘方法
- 下一篇:一种构建三维地图的方法