论文部分内容阅读
随着嵌入式系统的广泛应用,嵌入式产品对图形界面的要求也不断提高。三维图形用户界面可以在操作的趣味、美观方面很好的提升产品用户体验。目前多数三维图形系统是通过引入深度的概念,对2D图形做变换计算后显示出来,使图形界面产生立体感。由于图形变换的算法设计较为复杂,而且不可重用,图形界面需求如有更改,则需重新设计算法。而以OpenGL为代表的三维图形系统,虽能灵活实现三维的高级图形技术,但其复杂的编程技术却不易被开发者掌握。本文给出了一种折中的三维图形显示方案,该方案相对简单,不用设计变换算法。即利用3ds Max建模,设计一个三维图形对象来读取和显示模型,为方便外界使用,将该三维图形对象做成一个控件的形式。这样,图形界面需求如有更改,只需用3dsMax重新建模,更新目录中的模型文件,而程序不必更改,同时三维效果更显著。本课题是在Linux嵌入式图形系统下,利用3ds Max创建的三维模型做三维数据来源,快速开发一款能够读取、解析和显示三维动画模型的对象。该对象总体框架建立在Clutter图形系统之上,封装为一个GObject对象,形成控件,以便于界面开发人员使用。其具体模块分为3D文件的读取和解析、动画模型显示、对象封装和对外接口的设计。3D文件的读取和解析模块依据3ds Max导出的文件存储格式来编写程序进行读取和解析。动画模型显示模块简要介绍数据结构的设计,采用Clutter的Cogl接口来实现三维模型的显示。对象封装和对外接口的设计模块则将该对象封装为GObject,并设计多种属性的接口,以便于外界进行灵活的控制和利用。