基于OpenCV的三维动画模型创建方法

2022-09-14 版权声明 我要投稿

三维模型创建是三维动画制作流程中最为基础的环节。在三维动画发展的早期, 由于计算机性能及模型创建手段的限制, 动画所驱动的对象大多是比较简单的角色形态, 如Pixar Animation Studios在1986年所创作的动画短片《Luxo Jr》。随着CG技术的发展与计算机性能的不断提升, 创建高细节度的模型已经成为现实。如《魔戒》系列电影中全数字化制作的咕噜, 最近上映的电影《阿凡达》中的数字化后的男女主角, 均具有较高的细节度, 当然在这其中不能忽略部分软件的作用, 例如Zbrush。然而模型创建手段的演进, 仍然是其主要原因。纵观三维动画流程中模型的创建手段, 主要有以下几种。

(1) 运用数学方法创建几何形态。

(2) 以艺术造型手段创建。

(3) 以数学创建的几何形态为基础, 再以艺术造型手段可视化地修改其造型数据。

(4) 以艺术造型为基础, 以数学方法进行变形球操作, 修改其造型数据。

(5) 在模型创建过程中非线性地使用艺术造型手段与数学手段进行模型创建。

(6) 采用3D扫描技术对现实模型进行数字化, 然后再进行修改以适合三维动画流程。

本文采用3D扫描技术来进行模型数字化。

3D扫描技术有许多方法, 本文采用一种称为结构光 (Structured Light) 的方法。

作为一种快速的模型数字化方法, 结构光扫描可以不进行摄像头标定, 这可以大大地减少编码量。但是, 其对相应硬件的空间信息精度要求比较高。本文采用的结构光扫描原理示意图 (图1) 。

D=L-A;

H=tanθ*D

在欧氏几何中, D为激光器在物体表面光线与支撑面光线的X轴差, θ角为激光器与支撑面之间的夹角, 据上式, 我们便可以获得物体的高度信息H。

基于OpenCV, 需要IplImage的一系列处理函数。由于需要获取每个像素点的位置差, 需要对图像进行卷积操作。具体步骤描述如下。

(1) 通过摄像头定时获取图像。

(2) 图像增强及除噪。

(3) 进行卷积操作, 获取X轴位置差。

(4) 三角函数运算得到物体深度高度信息。

(5) 在OpenGL中形成3D点云。

(6) 依据点云重建三维物体。

(7) 在得到足够的特征点与足够的空间信息后, 采用Alias|Wavefront的obj格式来组织模型数据并实现导出功能。

为了除去背景的冗余信息, 我们需要确定支撑平面在图像中的阀值, 在阀值以下的数据全部删除, 即可获得干净的空间信息。

由于物体的遮挡, 激光线在模型上的投射会有空缺, 这时, 为了obj模型的连续性, 需要进行补全, 本文中的补全采用直线连接的方法, 如 (图2) 。

点A与点B间的缺失内容就直接采用直线连接, 以形成连续的obj定点数据。

一般来说, 要形成一个模型的整体3D信息, 需要进行四次不同角度的扫描, 每次扫描相差90度。

接下来, 在Maya中导入模型, 可以进行后续的修改与合并, 如果模型的拓扑线不符合要求, 可以依据拓扑线进行快速重建这样, 模型便可以加入到三维动画的制作流程中了。我采用C语言基于Open CV与OpenGL实现了上述方法的计算机程序, 并使之可以工作于Windows及Linux平台, 且能与Maya及其它软件协调使用。

摘要:三维动画模型的创建需要更为快速的方法, 本文基于OpenCV实现了一种快速方法。能与Maya等三维动画软件协调使用。

关键词:OpenCV,三维动画模型,OpenGL,结构光 (Structured Light)

参考文献

[1] 尚明姝, 解凯.几种三维重建方法的比较[J].哈尔滨师范大学自然科学学报.

[2] 马颂德, 张正友.计算机视觉[M].科学出版社.

[3] Gary Bradski, Adrian Kaebler.Learn-ing OpenCV[Z].O’Reilly Media.

[4] 许志群, 吴海霞.射影几何基础[M].高等教育出版社.

上一篇:国有企业党建考核评价体系的探索——以神华准能集团公司党建考核工作为例下一篇:以“使用与满足”理论分析《致我们单纯的小美好》的热播