论文部分内容阅读
在计算机图形学中,三维模型通常使用三维网格表现。网格模型凭借着其直观、生动的表现形式,广泛应用于游戏开发、影视制作、工业制造和旅游景观等领域。然而,较大的网格模型受到存储成本和计算效率的限制,很难将其直接应用到实际工作当中。解决该问题的一个有效方式就是对原有网格进行简化,在尽可能保持网格模型外观特征的情况下,减少原模型的三角面片数量。但是,对于尺寸超出内存容量的大型网格模型,无法将其一次读入内存进行简化。此外,受CPU运算速度制约,大型网格模型的简化效率一般较低。因此,大型网格模型简化算法成为近年来计算机图形学领域的研究热点之一。
本文在总结国内外网格简化算法研究现状的基础上,分析了该研究领域存在的主要问题,对大型网格模型的划分和简化算法进行了重点研究。主要工作包括:首先,针对基于平面切割的网格划分算法没有考虑网格模型中几何图元分布情况的问题,提出了一种基于八叉树的动态网格划分算法。算法根据三角面片的数量对网格模型进行动态划分,并将划分边界图元同时存储在所有相邻的分块中。实验表明该算法避免了模型的重复简化,并解决了划分边界图元位置的一致性问题,在不损失简化质量的前提下有效减小了原算法的时间复杂度与空间复杂度。其次,针对QEM(quadric error metric,二次误差度量)算法为了减小模型几何误差,损失了部分细节特征的问题,提出了一种改进的QEM算法。算法首先提出一种改进的顶点法向量计算方法,在常规计算方法中加入三角面片面积与顶点法向量夹角作为因子,使其能更准确地表现出模型在顶点处的弯曲程度。然后,将顶点法向量夹角与有效顶点对边长加入到顶点误差计算公式中。实验表明该算法使简化后的模型更符合用户对外观特征的需求。之后,针对传统网格模型简化算法无法处理尺寸大于内存容量的网格模型的问题,提出一种基于二次误差度量的大型网格模型简化算法。算法首先使用基于八叉树的网格划分算法对模型进行分割,然后对每一个分块使用改进QEM算法进行简化,最后,将所有简化后的分块进行拼接,组成原模型的简化模型。实验结果表明,该算法能够完成大型网格模型的简化,并且在简化过程中很好地保持了原模型的细节特征。最后,使用基于二次误差度量的大型网格模型简化算法,实现了一个原型系统。测试结果表明,利用本系统可以方便地对网格模型进行简化。