Cocos3D - Текстура не отображается

Я сталкиваюсь с трудностями, пытаясь заставить текстуру работать в Cocos3D. Вот что я сделал.

ШАГ 1. С помощью MakeHuman я создал мужскую модель из материалов, включающих джинсы, волосы и футболку.

ШАГ 2: я экспортировал файл Blender Exchange Tarzen.mhx, содержащий изображения текстур.

ШАГ 3: Через Blender я импортировал файл Tarzen.mhx и сохранил это рабочее пространство в том же каталоге, что и изображения текстур, как Tarzen.blend. Это позволило файлу Tarzen.pod символически указывать на путь к изображениям текстуры относительно.

ШАГ 4. Без каких-либо дальнейших изменений в Blender я экспортировал файл Tarzen.pod. PVRShaman корректно отображает модель со всеми текстурами.

ШАГ 5: я скопировал Tarzen.pod и все изображения текстур в папку ресурсов xCode и выполнил код. Интересно, что только цвет кожи и цвет волос выглядят правильно, но джинсы и футболка всегда отображаются черными.

Есть идеи, почему? Спасибо.


person Loc Pham    schedule 05.12.2014    source источник
comment
Этот вопрос лучше подходит для gamedev.stackexchange.com, поскольку на SO основное внимание уделяется задачам/проблемам программирования.   -  person LearnCocos2D    schedule 05.12.2014
comment
Я разместил этот вопрос на games.stackoverflow, и он отложен как не по теме. Хм, gamedev.stackexchange.com/questions/88226/   -  person Loc Pham    schedule 06.12.2014
comment
Если PVRShaman показывает это правильно, это может быть проблема с настройкой Cocos3D. Иногда POD экспортируется с отключенной непрозрачностью, поэтому попробуйте включить myModel.opacity = kCCOpacityFull; после его загрузки. Если у вас все еще есть проблема, заархивируйте простой проект Xcode, который демонстрирует его (или только вашу модель POD и текстуры), отправьте его по электронной почте на [email protected], и я посмотрю на него.   -  person Bill Hollings    schedule 06.12.2014
comment
Билл, у меня установлен kCCOpacityFull, но текстура все равно не отображается. Я отправил вам электронное письмо на адрес brenwill. Я очень ценю вашу помощь, так как я застрял уже более суток. Спасибо.   -  person Loc Pham    schedule 06.12.2014
comment
Помимо отправки проекта xCode на support@brenwill, я также разместил его копию здесь. Спасибо. dl.dropboxusercontent.com/u/66024121/iOS/Cocos3dTexture/   -  person Loc Pham    schedule 07.12.2014
comment
Проблема решена, см. принятый ответ ниже.   -  person Loc Pham    schedule 07.12.2014


Ответы (1)


«Без The» помог мне решить эту проблему, сначала удалив текстуру, а затем вернув ее, используя следующий код:

CC3MeshNode * jeans = [rezNode getMeshNodeNamed:@"Bison:jeans01"];
[jeans.material removeAllTextures];
[jeans.material addTexture:[CC3Texture textureFromFile:@"jeans_basic_diffuse.png"]];
person Loc Pham    schedule 07.12.2014
comment
Я рад, что ты разобрался. Материал джинсов имеет две текстуры, одна из которых является картой нормалей. Но ваша сетка не содержит касательных вершин, поэтому шейдерам нечего использовать на карте нормалей. Удалив текстуру карты нормалей, как здесь, вы просто отобразите текстуру цвета джинсов. Вы также можете изменить шейдеры, чтобы адаптировать их к исходным условиям. - person Bill Hollings; 08.12.2014