
GIS三维地景仿真设计之雾化和纹理
发布时间:2006-08-09 11:03:18 来源:天极网 网友评论 0 条
引言
通过本系列前几篇文章的介绍,读者已经能够实现一个功能基本完备的数字高程模型(DEM)OpenGL三维仿真软件。本文作为本系列的最后一篇文章将对雾化、纹理等高级技术的使用进行介绍,通过本文,读者能够在前面的基础上实现一个完整的GIS地景仿真应用软件。
雾化效果
在真实世界中观察地面目标并不是在真空中进行的,而是有大气的存在,无论空气是干燥还是湿润,总会有或多或少的水蒸汽存在,而且还有少量的尘埃存在。它们的存在使得我们在观察远景目标时将不可避免地产生白茫茫的模糊效果,这种效果在OpenGL中也被称为"雾化"。虽然在现实世界中雾化现象妨碍了我们对远景目标的观察效果,但在仿真处理上如果缺少此效果反而会令人感觉不是那么真实。因此,这里就对雾化效果的实现做一个简单的介绍:
这段代码允许使能或禁用雾化效果。如果需要启用雾化效果,首先需要通过glEnable()函数使能雾化效果(调用GL_FOG参数),并需通过glFogi()和glFogfv()指定采用何种方式的雾化效果和雾化颜色。这里采用的是线性变化方式,因此还要通过glFogf()指定按线性变化时计算公式的参量。最后调用的glHint()函数将对雾化效果的质量作出规定。如果需要禁用雾化效果,只需简单的调用glDisable()将GL_FOG选项禁用即可。下图分别为未使用雾化效果和使用了雾化效果的场景。可以看出,启用了雾化效果后的场景更加逼真:
通过本系列前几篇文章的介绍,读者已经能够实现一个功能基本完备的数字高程模型(DEM)OpenGL三维仿真软件。本文作为本系列的最后一篇文章将对雾化、纹理等高级技术的使用进行介绍,通过本文,读者能够在前面的基础上实现一个完整的GIS地景仿真应用软件。
雾化效果
在真实世界中观察地面目标并不是在真空中进行的,而是有大气的存在,无论空气是干燥还是湿润,总会有或多或少的水蒸汽存在,而且还有少量的尘埃存在。它们的存在使得我们在观察远景目标时将不可避免地产生白茫茫的模糊效果,这种效果在OpenGL中也被称为"雾化"。虽然在现实世界中雾化现象妨碍了我们对远景目标的观察效果,但在仿真处理上如果缺少此效果反而会令人感觉不是那么真实。因此,这里就对雾化效果的实现做一个简单的介绍:
| if (m_bFogMode == FALSE){ // 雾化效果启用切换 m_bFogMode = TRUE; // 启用雾化处理 glEnable(GL_FOG); glFogi(GL_FOG_MODE, GL_LINEAR); // 采用线性变化的雾化效果 GLfloat fogColor[] = {0.8f, 0.8f, 0.8f, 1.0}; // 指定雾化颜色 glFogfv(GL_FOG_COLOR, fogColor); glFogf(GL_FOG_START, 1.0); // 指定按线性变化时计算公式的参量 glFogf(GL_FOG_END, 10000.0); glHint(GL_FOG_HINT, GL_DONT_CARE); //规定雾化效果的质量 }else{ m_bFogMode = FALSE; // 禁用雾化处理 glDisable(GL_FOG); } |
这段代码允许使能或禁用雾化效果。如果需要启用雾化效果,首先需要通过glEnable()函数使能雾化效果(调用GL_FOG参数),并需通过glFogi()和glFogfv()指定采用何种方式的雾化效果和雾化颜色。这里采用的是线性变化方式,因此还要通过glFogf()指定按线性变化时计算公式的参量。最后调用的glHint()函数将对雾化效果的质量作出规定。如果需要禁用雾化效果,只需简单的调用glDisable()将GL_FOG选项禁用即可。下图分别为未使用雾化效果和使用了雾化效果的场景。可以看出,启用了雾化效果后的场景更加逼真:
![]() |
全站资源
- 微软官方入门教程19:轻松掌握Vista系统的快
- 微软2008大冲击,预借Vista SP1力促Vista市
- 在收件箱中获得 Windows Vista 的最新更新
- 微软官方Vista入门教程全集19篇(Vista学院
- Windows Vista 的成功将势不可挡
- 快快抛弃Vista,拥抱XP SP3!你觉得呢?
- 浅谈Vista系统关闭虚拟内存与使用内存盘加速
- 嘿嘿,按下键盘上面的三个键,马上让你的Vi
- Windows Vista的盗版率只有Windows XP的一半
- 3DMark和PCMark Vantage新版将只支持Vista系
阅读排行
- 3D教程:主持凳制作的简单方法
- 用3Ds MAX体积光制作光芒片头特效
- 3DsMAX实例制作:三维玻璃灯泡
- 在3DS MAX中打造巍巍雪山
- 3Ds MAX制作简单光芒特效文字片头
- 3DsMAX打造叶片上的精致三维蜻蜓
- 制作一个简单的三维片头包装
- 为爱人制作情人节三维玫瑰花田
- 续写辉煌:Autodesk隆重发布MAYA8.0
- 春节添喜庆 3DsMAX绘制立体大红灯笼
最新技术文档
- 教AutoCAD初学者有效提高绘图速度
- 3DsMAX打造叶片上的精致三维蜻蜓
- 3DsMax打造精致珍珠狮头手镯首饰
- Shift键在AUTOCAD中的几招妙用
- 制作一个简单的三维片头包装
- 用3DS MAX打造三维虚拟跑车
- GIS三维地景仿真设计之最后的话
- Guitta Bertaud的Vue作品:三维乡村景色
- GIS三维地景仿真设计之雾化和纹理
- 官方视频教程演示 3DS Max 9 新特性
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏

