一.板式家具设计系统的开发
所做的工作:
项目难点及解决:
1.面向对象的思想的理解运用。
本系统的早期版本设计思想是面向过程的,由于需求不明确,侧重点在于图形的显示上。例如显示一套板式家具,就是显示该板式家具中的每块板,而每块板实际就是由多个顶点和多根线组成,最终就是点与线的显示,对用户的命令最终也就转化成对点与线的操作。因此,系统处理的家具并不是现实世界的家具实体,而是一个个几何实体,设计师不能够像对待家具实体那样在几何实体中添加家具的材料、加工、价格等属性,并且与家具实体相关的一系列特性和操作在系统中并不是一个整体,各种数据缺乏统一整体。
当后期厂方提出报价、材质替换、整体缩放与局部缩放等功能时,因为很难将这些本该属于家具实体的属性添加到几何实体中,故系统扩展这些功能十分困难。再者,由于板式家具板块与各种配件较多,搭配多样,因而整个系统比较复杂,采用传统的面向过程的设计方法很难描述这种复杂的过程。
实践证明,面向过程开发出来的软件,维护时其费用和成本很高,可修改性差,导致可维护性差,从根本上很难满足客户需求。因此,我们采用面向对象思想来重新设计该系统,将家具包括组成家具的每块板材与每个配件都看成一个个对象,在通过提炼与抽象,完成相关类的设计。类是对象的抽象,它封装了数据(属性)与作用于数据的操作(行为),比如对于家具类,它包含了尺寸、材质、价格等属性,同时用户对家具进行三维体验时,往往需要对其进行移动、旋转、缩放等操作,如家具类还应包括移动、旋转、缩放等操作方法。因为采用面对对象的思想进行分析和设计,得到的结果与客观世界比较接近,故而系统更加科学、可重用性更强、可维护性更好、更能满足用户的需求
为了理解面向对象的思想,三维游戏设计师宝典:学+OpenGL+编+3D+游戏 ,把这本书里面向过程的实例改成面向对象的思想,同时熟悉了OpenGL的开发流程。
二.三维场景渲染系统的开发
所做的工作:
1.熟悉理解光线跟踪原理,学习了清华大学出版翻译的《光线跟踪算法技术》,理解了光线跟踪算法和数据结构。
2.读懂povray源程序,理解该系统的渲染过程。
3.借鉴该系统开发我们自己的渲染系统,重写场景文件输入接口,改变其中的三维模型表示的数据结构,重写渲染效果输出接口,便于集群渲染。
项目难点及解决:
1.光线跟踪算法的了解。
2.开源程序的理解。
3.数据结构及接口的修改。