Ogre使用log(三)

来源:互联网 发布:宁向东 知乎 编辑:程序博客网 时间:2024/05/18 00:38

地形:

设置地形(void Ogre::SceneManager::setWorldGeometry(const String & Filename))时必须指定场景管理器为"地面场景管理器".

mSceneMgr = mRoot->createSceneManager(Ogre::ST_EXTERIOR_CLOSE);

ViewPort:

Ogre::ViewPort* Ogre::RenderTarget::getViewPort(unsigned short index)通过制定的索引号返回视口, 若仅有一个视口已被创建(通过Ogre::ViewPort* Ogre::RenderTarget::addViewPort(Ogre::Camera * camera)方法), 则index值应取0.

每个视口对应着一个背景色.

雾化效果:

Ogre::SceneManager::setFog(FogMode mode, const ColorValue & colour, Real expDensity, Real linearStart, Real linearEnd);

雾的颜色应与背景色相同((0.9, 0.9, 0.9)是个不错的选择).

该方法应在设置地形之后调用. 否则, 线性雾中无明显区别, 但指数雾Fog_EXP中若使用DirectX渲染器则没有雾效果出现, OpenGL渲染器可以修正这个问题.

其中mode说明雾的类型为线性还是指数, colour为雾的颜色, expDensity在指数雾中才定义, 该数值决定了雾变浓的速度, 越大则雾越浓. 线性雾中设置为0即可. linearStart与linearEnd仅在线性雾中定义, 分别为"开始有雾"的距camera距离与"全都是雾"的距camera距离.若linearEnd数值设置得过小, 则会产生较恐怖的效果.

指数雾中, Ogre::Fog_EXP和Ogre::Fog_EXP2的效果有一些区别.

总体上讲, 指数雾的渐进效果更出色, 但线性雾或许会出现在一些特殊场合的应用中.





原创粉丝点击