2014-12-26 5 views
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 ничего не содержит или ничего. Как получить доступ к этому элементу, который не существует? возможно ли это? Тогда я добавил материал, как показано ниже, к моей сущности. Эта модель времени успешно загружена материальным и диффузным свойством. но проблема сохраняется. Это означает, что 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 


} 
} 
} 
+0

Если сетка не имеет определенного атрибута - зачем она присутствовала во время выполнения? Каковы ваши данные сетки и конкретные проблемы, которые у вас есть? – keltar

ответ

0

Я конвертирую свой файл сетки с 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> 

Затем преобразовать обратно в сетку file.Now в VertexDeclaration мы имеем VES_DEFFUSE семантический элемент.

 Смежные вопросы

  • Нет связанных вопросов^_^