[OGRE]基础教程来五发:来谈一谈蓝天白云
来源:互联网 发布:淘宝站外活动报名 编辑:程序博客网 时间:2024/04/28 23:17
造完了地面,接下来的任务就是搞定天空啦。
这里主要给大家介绍两种常见的构建天空的方法:
天空盒:始终围绕摄像机一定距离的包围盒
天空穹:没有底的立方体
天空面:一个天空平面
这个要比地形系统简单的多了。
一、天空盒
在OGRE中,在可以用一行代码看到天空盒的效果:
mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox");
这个函数一共可以传四个参数:
参数1:是否启用天空盒子
参数2:天空的材质脚本
参数3:距离摄像机的距离
参数4:是否在场景中其他元素前面渲染
//设置天空盒//参数1:是否启用天空盒子//参数2:天空的材质脚本//参数3:距离摄像机的距离//参数4:是否在场景中其他元素前面渲染mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox", 5000, false);
运行效果如图:
和天空盒稍有区别,注意调用函数的参数代表不同意义:
mSceneMgr->setSkyDome(true, "Examples/CloudySky", 5, 8);
前两个参数和天空盒子一样,
第三个参数表示天空穹的曲率,建议2~65之间,数值越低距离感越强。
第四个参数是纹理贴图的覆盖次数,
第五第六的参数和天空盒子的三四参数的意义一样。
运行效果如图:
三:天空面
其实天空面就是一个Plain,实现的代码如下:
Ogre::Plane plane;plane.d = 1000;plane.normal = Ogre::Vector3::NEGATIVE_UNIT_Y;mSceneMgr->setSkyPlane(true, plane, "Examples/SpaceSkyPlane", 1500, 75);
第四个参数是天空面的大小,第五个是纹理贴图的重复次数。
运行效果如图:
显然这样的运行效果不是很理想,因为离地太近了,将代码作如下修改:
mSceneMgr->setSkyPlane(true, plane, "Examples/SpaceSkyPlane", 1500, 50, true, 1.5f, 150, 150);
第六个参数和前面相似,是否先渲染。
第七个参数可以设置其曲率,第八第九个是xy轴的碎片数目。
再次运行,效果好了很多:
- [OGRE]基础教程来五发:来谈一谈蓝天白云
- [OGRE]基础教程来二发:来谈一谈坐标系统
- [OGRE]基础教程来三发:来谈一谈摄像机吧
- [OGRE]基础教程来四发:来谈一谈地形系统
- [OGRE]基础教程来七发:来谈一谈缓冲绑定
- [OGRE]基础教程来四发:来谈一谈地形系统
- [OGRE]基础教程来一发:来谈一谈基础框架
- [OGRE]基础教程来六发:来谈一谈帧的监听
- 蓝天白云
- 蓝天白云
- 蓝天白云图
- 蓝天和白云
- 讨论风采和蓝天白云的校园
- 蓝天白云青山绿水还有清风吹斜阳......
- 蓝天和白云的故事
- 你是白云我是蓝天小啊小苹果
- 纯CSS3实现的蓝天白云效果
- 孤独时仰望蓝天你是最近那朵白云
- 腾讯后台面试过程
- Java实现Excel中对一列排序,另一列数据相应改变的程序
- 栈——火车出战入站问题
- python unicode字节串转成中文问题
- 正则表达式规则(十一)
- [OGRE]基础教程来五发:来谈一谈蓝天白云
- 关于郭天祥单片机书上第十二页电平特性的相关参数
- 写2013年的国庆
- hadoop 文件分块,block与split关系
- js中undefined,null,NaN的区别
- 02 XNA Framework 常用的类别
- 关于郭天祥单片机书上第十八页89C52内部寄存器地址及头文件
- [Charset]UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别
- 简易版学生成绩管理系统(数组版和链表版都有)