本文整理汇总了C++中ogre::MaterialPtr::copyDetailsTo方法的典型用法代码示例。如果您正苦于以下问题:C++ MaterialPtr::copyDetailsTo方法的具体用法?C++ MaterialPtr::copyDetailsTo怎么用?C++ MaterialPtr::copyDetailsTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ogre::MaterialPtr
的用法示例。
在下文中一共展示了MaterialPtr::copyDetailsTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createOrRetrieveHaloMaterial
gkString createOrRetrieveHaloMaterial(const gkString& baseMatName)
{
gkString matName = DEFAULT_HALO_MAT;
try
{
gkString haloMatName = baseMatName + ".halo";
Ogre::MaterialManager& mmgr = Ogre::MaterialManager::getSingleton();
if (mmgr.resourceExists(haloMatName))
matName = haloMatName;
else
{
Ogre::MaterialPtr baseMat = mmgr.getByName(baseMatName);
if (!baseMat.isNull())
{
Ogre::MaterialPtr mat = mmgr.create(haloMatName, baseMat->getGroup());
baseMat->copyDetailsTo(mat);
Ogre::Pass *pass = mat->getTechnique(0)->getPass(0);
pass->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
pass->setAlphaRejectSettings(Ogre::CMPF_GREATER_EQUAL, 150);
pass->setDepthWriteEnabled(false);
Ogre::TextureUnitState* tu = pass->createTextureUnitState(HALO_IMAGE_NAME);
matName = haloMatName;
}
}
}
catch(Ogre::Exception& e)
{
gkLogMessage("gkParticleManager: " << e.getDescription());
}
return matName;
}