static GV_Rgba ambient = {1.0, 1.0, 1.0, 1.0};//环境光
static GV_Rgba diffuse = {1.0, 1.0, 1.0, 1.0};//散射光
static G_Vector3 light_direction = { -0.5, 0.5, 0.90 };//方向光
GV_Light lightsource;
GV_lsr_create( &lightsource);//创建一个光资源
GV_lsr_set_name( lightsource, "SUN" );//重新命名
GV_lsr_set_direction( lightsource, &light_direction );//设置方向光
GV_lsr_set_ambient( lightsource, &ambient );//设置环境光
GV_lsr_set_diffuse( lightsource, &diffuse );//设置散射光
这样也就为系统添加了光资源。
4.1.3 雾资源创建
雾工具用于模拟雾的效果。必须将雾模型加入场景中去,雾模型才会有用。雾模型用于模拟场景中的所需的雾效果。不一定要使用雾效果,完全可以选择使用它。调用函数GV_fog_create很容易创建它。每一个雾模型都有起始效果距离和距离设置。这些设置控制着介于距离和雾类型之间的雾密度。
函数GV_fog_set_opaque_distance指定雾模型的模糊距离;函数GV_fog_set_color可设置任何所需的雾颜色;函数GV_fog_set_type控制雾模型的类型。
雾资源的创建与光资源的创建其实是一样的,其关键代码为:
GV_Fog foghdl;
GV_fog_create( &foghdl );//创建雾资源
GV_fog_set_type( foghdl, GV_FOG_TYPE_EXP2 );//设置雾的类型
GV_fog_set_name( foghdl, "HAZE" );//重新命名
visibility *= usf;
GV_fog_set_opaque_distance( foghdl, visibility );//雾模型的模糊距离
GV_fog_set_color( foghdl, &haze_color );//设置雾颜色
4.1.4 通道资源的创建
通道工具和相机一起用于形成GVS观察管道。对于大部分应用程序,用户所做的就是创建一个通道,设置需要的清除色,并将相机和场景加入通道。这样,通道一旦与帧缓存相连,GVS就能按你所需绘制场景。
每一个OpenGVS应用软件至少需要一个通道。通道用于构成观察管道软件的主体部分;没有通道你几乎不能做任何事。调用GV_chn_create容易创建一个通道。此函数返回一个句柄,该句柄可用于几乎所有其他通道工具函数以操纵该特定通道。函数GV_chn_set_erase_color用于设置通道的清除色。
在本系统中,将创建的相机资源、光资源及雾资源都加入到通道中,这样才能够运行起来,否则它们只是单一的个体资源。其关键代码为:
/设置通道资源/
static GV_Rgba erase_color = { 0.0, 0.2, 0.0, 1.0 };//设置清除色
GV_Channel chnhdl;
GV_chn_create( &chnhdl );//创建一个通道资源
GV_chn_set_name( chnhdl, channel_name );//设置一个新名称
GV_chn_set_erase_color( chnhdl, &erase_color );
GV_chn_set_input_focus( chnhdl );
/建立各个资源之间的联系/
GV_scn_add_light( scene, sunlight );//在场景中加入光资源
GV_chn_set_camera( channel, camera_default );//将相机资源加入到通道中
GV_chn_set_scene( channel, scene );//将场景加入到通道中
GV_fbf_add_channel( fbf, channel );
这样就建立了资源之间的联系,使他们成为一个整体。
4.2 三文模型的导入
三文模型是物体的三文多边形表示,通常用计算机或者其它视频设备进行显示。显示的物体可以是现实世界的实体,也可以是虚构的东西,既可以小到原子,也可以大到很大的尺寸。任何物理自然界存在的东西都可以用三文模型表示。三文模型经常用三文建模工具这种专门的软件生成,但是也可以用其它方法生成。作为点和其它信息集合的数据,三文模型可以手工生成,也可以按照一定的算法生成。尽管通常按照虚拟的方式存在于计算机或者计算机文件中,但是在纸上描述的类似模型也可以认为是三文模型。 基于OpenGVS的虚拟汽车驾驶模拟系统的开发(7):http://www.751com.cn/tongxin/lunwen_1612.html