计算机应用 ›› 2015, Vol. 35 ›› Issue (5): 1454-1458.DOI: 10.11772/j.issn.1001-9081.2015.05.1454

• 虚拟现实与数字媒体 • 上一篇    下一篇

Catmull-Clark细分网格数据点拾取

张湘玉, 马希青   

  1. 河北工程大学 机电学院, 河北 邯郸 056038
  • 收稿日期:2014-12-09 修回日期:2015-02-04 出版日期:2015-05-10 发布日期:2015-05-14
  • 通讯作者: 张湘玉
  • 作者简介:张湘玉(1977-),女,河北辛集人,讲师,博士,主要研究方向:计算机辅助设计、计算机辅助制造; 马希青(1963-),男,河北故城人,教授,主要研究方向:计算机仿真、虚拟设计.
  • 基金资助:

    河北省自然科学基金资助项目(E2010001010); 校博士基金资助项目.

Pickup algorithm for data points of Catmull-Clark subdivision mesh

ZHANG Xiangyu, MA Xiqing   

  1. College of Mechanical and Electrical Engineering, Hebei University of Engineering, Handan Hebei 056038, China
  • Received:2014-12-09 Revised:2015-02-04 Online:2015-05-10 Published:2015-05-14

摘要:

针对将OpenGL选择拾取机制直接作用于Catmull-Clark细分网格数据点的拾取,可能会因细分网格数据量过大而导致名字堆栈溢出的问题,借鉴细分曲面求交的思想,提出一种新的细分网格数据点拾取方法.该方法通过提取拾取对象的邻域网格并进行局部细分,将对细分任意层次上网格数据点的拾取转化为对初始控制网格以及在达到细分层次要求以前每一次局部细分网格点、边、面的拾取和对最后一次局部细分网格数据点的拾取.采用多个拾取算例进行对比分析实验,当细分网格顶点数量较多时,所给拾取方法的拾取命名对象总量和拾取时间都远小于传统OpenGL选择拾取方法.实验结果表明,所给拾取方法能快速准确实现细分网格数据点的拾取,尤其适用于数据量较大的复杂细分模型,可有效避免因拾取名字堆栈溢出而导致的拾取错误.

关键词: 拾取, 细分网格, Catmull-Clark细分, OpenGL, 邻域网格, 局部细分

Abstract:

Focused on the issue that adopting the OpenGL selection mechanism to directly act on the data points of Catmull-Clark subdivision mesh may cause the name stack overflowing because of the too large data volume, referencing the intersection theory of subdivision surfaces, a new pickup method for subdivision models was proposed. Through extracting and subdividing the neighboring mesh of pickup objects, the method converted the pickup for data points of subdivision mesh into the pickup for points, edges and faces of the initial mesh and the local subdivision meshes at successive levels, and the pickup for points of the local subdivision mesh at last level. Comparison and analysis experiments of some pickup examples were conducted. The total number of naming objects and the pickup time consumption of the given method were both far less than those of the traditional OpenGL selection method when the subdivision mesh had plenty of data points. The experimental results show that the proposed method can quickly and accurately pick up the data points of subdivision mesh, and it is especially suitable for the complex subdivision models with a large number of data points, and can effectively avoid pickup errors caused by the name stack overflowing.

Key words: pickup, subdivision mesh, Catmull-Clark subdivision, OpenGL, neighboring mesh, local subdivision

中图分类号: