顶点声明不包括在 OGRE::VES_DEFFUSE

VertexDeclaration is not included OGRE::VES_DEFFUSE

本文关键字:VES DEFFUSE OGRE 声明 不包括 顶点      更新时间:2023-10-16

我已经在我的食人魔程序中加载了一个实体。然后在顶点声明中列出元素,如下所示。

Ogre::VertexDeclaration::VertexElementList lst = vertex_data->vertexDeclaration->getElements();

在列表中,我只看到了VES_POSITION和VES_NORMAL。因此,当我运行下面的代码时,

const Ogre::VertexElement* posElem = vertex_data->vertexDeclaration->findElementBySemantic(Ogre::VES_DIFFUSE);

posElem 不包含任何内容或空值。如何访问这种不存在的元素?可能吗?然后我已经在我的实体中添加了如下材料。这次模型成功加载了材料和漫反射属性。但问题仍然存在。这意味着 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

}
}
}

我用OgreXmlConverter将我的网格文件转换为xml文件。然后编辑 xml 文件并将colour_diffuse标签添加到每个顶点标签,如下所示(示例):

<vertex>
<position y="2.779611" x="0.272802" z="0.245147"/>
<normal y="-0.291635" x="0.955870" z="0.034669"/>
<colour_diffuse value="1 1 1 1" /></vertex>
<vertex>

然后转换回网格文件。现在在顶点声明中,我们有了VES_DEFFUSE语义元素。

相关文章:
  • 没有找到相关文章