Ogre初级教程里给的是模板阴影
模板阴影
----优点:
模板阴影比较方便,阴影比较逼真
----缺点:
需要创建边界列表(导出模型时候勾选选项:maya中在mesh中有一项:for shadow(EdgeList);3dmax中OgreMax->SceneSetting->mesh->Generic EdgeList。或者在程序中用
Ogre::Entity->getMesh()->setAutoBuildEdgeLists(true),或者用Ogre::Entity->getMesh()->buildEdgeLists(void)创建边界列表。)
不适合做复杂的模型,否则提示边界列表越界
纹理阴影
跟模板阴影相反
-----优点:
能显示复杂模型的阴影
-----缺点
锯齿比较明显,
用Ogre::SceneManager->setShadowTextureSettings(4096/*纹理尺寸,越大,锯齿越不明显,不过比较占用内存*/,1/*大概是纹理个数*/);可以优化一部分。
以上说的是Ogre::SHADOWTYPE_TEXTURE_ADDITIVE
对于Ogre::SHADOWTYPE_TEXTURE_MODULATIVE不知道为什么出来的阴影是红色的,暂时我也不知道呢 呵呵………^_^
等有新进展再更新
注:纹理阴影有比较多的设置,下面是一些大大的学习总结或经验 或分析 对我帮助很大。
英文教程也有 鉴于本人英语比较次 所以没看 在docs那部分 不再教程部分好像。
http://www.cppblog.com/yuanyajie/archive/2007/03/21/20302.html
http://hi.baidu.com/ton666/blog/item/dfab4b27f4c7d40d918f9dba.html 这个里面有例子 比较关键啊
http://apps.hi.baidu.com/share/detail/15402944
最近的心得的就是:要多看相关的资料,资料比较少的 有些需要看好几遍才能明白意思,要是有例子就更好了噢 一下子能醒悟为啥自己的不能实现的原因。
2011-12-16 更新:
修改
mSceneMgr->setShadowTextureSettings(4096,1);
一般情况下是1024,不过锯齿太明显,阴影周围太粗糙,这个值越大锯齿越小。不过显卡可能负担比较中
感觉有些卡卡哦