2 电机模型的建立
2.1 在3D Studio MAX里面拆分模型
因为需要把各个部分分别拆卸和安装,所以要把原来建好的作为一个整体的电机模型拆分为磁片,底盘,线圈等10个部分。通过把原来的模型解组,然后把电机转换成可编辑面片,然后通过编辑命令中的“附加”把属于磁片的零件全部连接成一个整体,通过同样的方法把底盘,线圈,上盖,上轮,下轮,圆壳,中心轴和螺钉分别拆分成独立的个体,并调节模型的大小,一般模型的大小为1000以下,模型太大则在OpenGL里面控制起来比较麻烦,需要把视点或者模型平移很大的距离才可以看到电机。
要特别注意,应该把其中一个作为参照物的部分(中心轴)的转轴调整到经过它的中心(形心),否则,导入OpenGL后控制它旋转时,它并不是绕中心轴自转,因为它的转轴不在中心轴上,而其它部分是以它为参照物来调整位置的,所以整体就不绕着中心自转了。
然后通过材质贴图的方法为各个部分加上颜色,这样导入到OpenGL里面就可以有颜色了。而不是默认的一片白色。拆分好的部分模型如下图2.01,2.02,2.03所示:
图2.1 磁片 图2.2 中心轴 图2.3 尾翼
2.2 导出.3ds格式文件
分别把这三个部分单独选中,在菜单上选择导出3ds格式文件,以便可以同过下面的转换软件View3DS.exe把它转换成OpenGL专用的格式文件.gl文件和一个C++头文件.h文件。
在导出3ds格式的文件之前,在3D Studio MAX里面需要通过贴图的方法为电机模型贴上颜色,但是只能赋予材质球颜色,不能用外部的图片来贴图,因为本课题中所用的转换软件View3DS.exe并没有这种功能,只能够保留颜色的贴图纹理。如果不贴图就直接导出模型,则当它导入到OpenGL里面的时候,模型表面就是默认的全白色了,这样就显示不出3D效果。
3 3DS MAX动画设计
用3ds max建模软件可以实现电机模型的建立,同样也可以设计电机各部分的自转动画。在软件里面,把电机模型的各个部分分离后,分别组合成一个独立的部分。这样,当控制机身运动时,可以控制其它部分同时跟着机身一起运动。
把电机的机身模型转换成可编辑片面,然后打开编辑框,再选中需要改变颜色的元素,通过给材质球添加合适的颜色,还有高光等属性,再把这些属性赋予所选元素,这样就为机身添加了颜色,通过同样的办法为电机的其他需要设置颜色的部分赋予材质属性。
4 进行OpenGL编程
4.1 本课题涉及的坐标系问题
a).视点变换。视点变换是在视点坐标系中进行的。视点坐标系于一般的物体所在的世界坐标系不同,它遵循左手法则,即左手大拇指指向Z正轴,与之垂直的四个手指指向X正轴,四指弯曲90度的方向是Y正轴。而世界坐标系遵循右手法则的。如图4.1所示。当矩阵初始化glLoadIdentity()后,调用glTranslatef()作视点变换。函数参数(x, y, z)表示视点或相机在视点坐标系中移动的位置。
图4.1 视点坐标系与世界坐标系
b).模型变换。模型变换是在世界坐标系中进行的。在这个坐标系中,可以对物体实施平移glTranslatef()、旋转glRotatef()和放大缩小glScalef()。 VC++虚拟现实技术制作电机模型仿真软件(6):http://www.751com.cn/tongxin/lunwen_8535.html