毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

基于OpenGVS的虚拟汽车驾驶模拟系统的开发(9)

时间:2016-12-27 21:24来源:毕业论文
在导入地形数据库时,首先在gvsint.gvc中将地形模型定义给一个对象,在本系统中记为TERRAIN,具体为: import file=$VILLAGE/terrain.gvm \ name=TERRAIN structure=on \geo


在导入地形数据库时,首先在gvsint.gvc中将地形模型定义给一个对象,在本系统中记为TERRAIN,具体为:
import file=$VILLAGE/terrain.gvm \
name=TERRAIN structure=on \geometry=on
然后在程序中将地形调入进去,具体为:
GV_obi_instance_by_name( "TERRAIN", &terrain );//为对象取名
GV_scn_add_object( scene, terrain );//将地形加入到场景当中
这样也就将一个地形文件加入到场景中了。
加入前后的场景画面对比如图4.3和图4.4:
 
图4.3  加入地形前场景图
 
图4.4  加入地形后场景图
4.2.2  汽车模型的导入
汽车模型在虚拟汽车驾驶模拟系统开发中相当于现实世界中的汽车。它是现实世界汽车在虚拟世界的反应。但是加入汽车模型,务必的注意他的纹理,否则导入的汽车模型是不完整的。
纹理工具为载入和使用纹理图提供一个高级界面。纹理图存储在磁盘上,你的视觉应用软件可能要使用它。输入数据库时可能包含纹理映射需求,此时GVS使用纹理工具。用户也可访问GVS所使用的纹理图输入函数。它们可能需要将自己的纹理图读入GVS,这样能用低级OpenGL调用作纹理映射。
首先将汽车模型加入到场景中,调用函数GV_scn_add_object将汽车模型加入到场景中,关键代码为:
import file=flt/jeep.flt name=OWN_VEHICLE
现在gvsint.gvc中将汽车模型赋给对象OWN_VEHICLE;
然后在程序中添加汽车模型:
GV_scn_add_object( scene, model );//将汽车模型加入到场景中
Model代表汽车模型。
此时汽车模型已经加入到场景里了,但它是没有纹理的。
 
4.5    汽车模型图
 
图4.6    加入纹理前
用MultiGen-Paradigm软件打开汽车模型图,对其加入纹理。如图4.7,修改list Textures中得路径即可。
 
图4.7    修改纹理路径
 
图4.8    加入纹理后效果图
4.2.3  房子实体导入
房子实体的导入与汽车模型的导入原理是基本相同的,其关键代码为:
import file=flt/farmhouse.flt name=FARMHOUSE
在gvsint.gvc中将房子模型赋给对象FARMHOUSE。
然后在程序中将房子加入到地形中:
GV_obi_instance_by_name( "FARMHOUSE", &farmhouse );//为对象取名
GV_scn_add_object( scene, farmhouse );//将房子加入到场景当中
但这样加入房子实体是没有纹理的,其运行的效果图如图4.9:
 
图4.9    房子实体效果图
用MultiGen-Paradigm软件打开房子模型图,对其加入纹理。如图4.10,修改list  Textures中得路径即可。
 
图4.10    房子实体加入纹理路径
 
图4.11    修改纹理路径后房子实体效果图
4.3  鼠标的控制
利用鼠标控制汽车前进比用键盘控制汽车前进更加灵活,可以使汽车沿着任何一个方向前进。同时可以利用鼠标控制汽车的速度。
鼠标控制汽车前进的关键技术是实时获取鼠标的位置,OpenGVS为我们提供了特定的函数GV_chn_inq_cursor_position( channel, &cursor),其中cursor记录着鼠标的位置。通过获知鼠标位置的变化情况,反馈到汽车上,将两者之间建立一种关联关系。
在本系统中,汽车的速度由鼠标的高度决定,即driving_speed = max_driving_speed * cursor.y * cursor.y * cursor.y,汽车的方向由鼠标的x姿态角决定rotation = max_rotation * cursor.x * cursor.x * cursor.x。
具体的关键代码为:
/获取鼠标的属性,包括位置和角度/
GV_chn_inq_cursor_position( channel, &cursor);//获取鼠标坐标 基于OpenGVS的虚拟汽车驾驶模拟系统的开发(9):http://www.youerw.com/tongxin/lunwen_1612.html
------分隔线----------------------------
推荐内容