0
我已經在我的Ogre程序中加載了一個實體。然後像下面那樣列出vertexDeclaration中的元素。VertexDeclaration不包含OGRE :: VES_DEFFUSE
Ogre::VertexDeclaration::VertexElementList lst = vertex_data->vertexDeclaration->getElements();
在列表中我只看到了VES_POSITION和VES_NORMAL。因此,當我運行下面的代碼,
const Ogre::VertexElement* posElem = vertex_data->vertexDeclaration->findElementBySemantic(Ogre::VES_DIFFUSE);
posElem不包含任何內容或null。如何訪問這種不存在的元素?這是可能的嗎?那麼我已經添加了像下面的材料到我的實體。這次模型成功加載了材質和漫反射屬性。但問題依然存在。這意味着VertexDeclaration不包含具有VES_DEFFUSE語義的元素(僅VES_POSITION和VES_NORMAL)。另外我加載了一些其他模型,但他們中沒有一個具有VES_DEFFUSE語義的元素。
material base_mesh
{
technique
{
pass
{
lighting on
ambient 0.3 0.3 0.3 1
diffuse 0.1 0.7 0.2 1
emissive 0 0 0 1
}
}
}
如果mesh沒有特定的屬性 - 它爲什麼會出現在運行時?你有什麼樣的網格數據和具體問題? – keltar