收集的ogre 技巧
如何设置透明
在.material文件里,你可以设置 scene_blend 为 add, modulate 或 alpha_blend. scene_blend add 你可以使用JPEG 或 PNG文件为纹理 图象全黑的地方为纯透明 在爆炸,光晕,灯光等方面使用
全白的地方是 scene_blend modulate 你可以使用JPEG或PNG文件为纹理, 纹理会根据背景进行想乘,通常它的颜色比图片 要暗. 纹理黑的部分为透明. s ene_blend alpha_blend 你可以使用PNG图象文件为纹理,要在PNG文件里设置透明,你需要用Photoshop来处理它 通过把背景层删除,并 在其他层使用橡皮擦. 被擦掉的地方为透明 投射阴影 一个实体可以投射影子,默认的,光不能投射阴影. 这里有4种阴影渲染的技术 TENCIL or TEXTURE, and ADDITIVE or MODULATIVE. (CPU最适合是的SHADOWTYPE_TEXTURE_MODULATIVE) STENCIL SHADOWS (模板阴影): 这个技术使用CPU来渲染 你可以设置最大距离(调用setShadowFarDistance),来维持一个好的 帧率 投影的网格要是完全的(封闭和无洞). 避免过长的影子 避免对象距离光太近 这个技术允许自投影 这个影子有硬边(在影子和光之间进行硬转化) TEXTURE SHADOWS (纹理阴影): 这个技术使用显卡进行渲染 这个技术只在方向光和聚光等下工作 这个技术不允许自投影 meshes 要定义 shadow caster 和 shadows receiver 避免过长的影子 避免对象距离光太近 影子有一个柔和的边缘 影子的颜色和精确度可以进行定义 例子: mSceneMgr->setShadowsTechnique(SHADOWTYPE_TEXTURE_MODULATIVE); mSceneMgr->setShadowColour( ColourValue(0.5, 0.5, 0.5) ); ... mLight->setCastShadows(true); ... mCastingObject->setCastShadows(true); mReceivingObject->setCastShadows(false); ... myMaterial->setReceiveShadows(true); ... 注释: myMaterial->setReceiveShadows(true)指令可以替代在material文件里的receive_shadows on 在材质的默认设置里是ON, 你可以在在材质里设置为 OFF来不让他接收阴影,这样可以节省一些 帧率 设置Overlay //加载2d图片 OverlayElement* mpicture = OverlayManager::getSingleton().createOverlayElement("Panel","Overlay/Picture"); mpicture->setParameter("metrics_mode","pixels"); mpicture->setParameter("left","0"); mpicture->setParameter("top","0"); mpicture->setParameter("width","400"); mpicture->setParameter("height","250"); mpicture->setMaterialName("Examples/OgreLogo"); Overlay* mOverlay = OverlayManager::getSingleton().create("Overlay"); mOverlay->add2D((OverlayContainer*)mpicture); mOverlay->show(); |