Ogre中设置.scene文件中所有实体、子实体以及各个LOD层级的材质
2015-04-01 13:45
513 查看
在Ogre中,当我们装载进来.scene文件(Ogremax导出的文件格式)后,可能有时候需要设置这些文件中包含的所有实体的材质,这时,我们可以通过下面这段代码来获取其中的所有实体,并为其设置材质:
<span style="font-family:Courier New;font-size:14px;">Ogre::int32 numChildNode = mMaxScene->GetRootNode()->numChildren();
for (int i = 0; i < numChildNode; ++i)
{
Ogre::SceneNode* childNode = (Ogre::SceneNode*)mMaxScene->GetRootNode()->getChild(i);
Ogre::int32 numAttachObj = childNode->numAttachedObjects();
for (int j = 0; j < numAttachObj; ++j)
{
Ogre::Entity* ent = (Ogre::Entity*)childNode->getAttachedObject(j);
//设置子实体的材质
Ogre::SubEntity* subEnt = ent->getSubEntity(0);
subEnt->setMaterial(newMatPtr);
//设置各个层级LOD的材质
Ogre::int32 numMannualLodLevel = ent->getNumManualLodLevels();
for (int k = 0; k < numMannualLodLevel; ++k )
{
ent->getManualLodLevel(i)->getSubEntity(0)->setMaterial(entMaterialPtr);
}
}
}</span>
<span style="font-family:Courier New;font-size:14px;">Ogre::int32 numChildNode = mMaxScene->GetRootNode()->numChildren();
for (int i = 0; i < numChildNode; ++i)
{
Ogre::SceneNode* childNode = (Ogre::SceneNode*)mMaxScene->GetRootNode()->getChild(i);
Ogre::int32 numAttachObj = childNode->numAttachedObjects();
for (int j = 0; j < numAttachObj; ++j)
{
Ogre::Entity* ent = (Ogre::Entity*)childNode->getAttachedObject(j);
//设置子实体的材质
Ogre::SubEntity* subEnt = ent->getSubEntity(0);
subEnt->setMaterial(newMatPtr);
//设置各个层级LOD的材质
Ogre::int32 numMannualLodLevel = ent->getNumManualLodLevels();
for (int k = 0; k < numMannualLodLevel; ++k )
{
ent->getManualLodLevel(i)->getSubEntity(0)->setMaterial(entMaterialPtr);
}
}
}</span>
相关文章推荐
- ogre 获取实体中的所有材质
- 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印
- winXP以及win2003缺省文件搜索功能都比2000差(按包含文字搜索文件),需设置
- "显示所有文件和文件夹"无论如何 无法被设置 caused by some files under the folder c:\windows\prefect\,
- ogre:在运行时,为entity添加骨骼文件,以及合并骨骼文件的方法
- 当url中未明确指定文件名时,是否列出相关目录下所有文件的开关设置
- 从批处理文件中抽取作业号以及所有调用的JAVA CLASS名--AWK处理不周,DEBUG
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- asp.net 删除文件夹,指定文件夹,删除文件夹和所有文件,删除权限设置,递归删除文件夹目录及文件
- SQL: SSIS的配置文件设置以及ssis包在web中的调用
- MyEclipse设置JSP页面默认编码方式以及设置在Java文件中作者、日期等说明
- 删除文件夹以及文件夹下的所有文件
- 通过文件夹选项设置不能显示所有文件
- 文件萃取器-针对VTK、ITK等软件工程设置,以及文件提取
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 解决在查看里无法设置“显示所有文件和文件夹”及“隐藏受保护的操作系统文件”的问题
- Visual C# - 读者询问如何复制目录以及目录下所有的子目录与文件
- "显示所有文件和文件夹"无论如何 无法被设置
- 删除文件夹以及文件夹下的所有文件
- 检查MSSQL服务器中所有数据库的MDF文件的总大小以及已用大小