[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 7«123467»
Форум Panda3D - по русски » Panda3D » Общие вопросы » Blender 2.5 Exporter
Blender 2.5 Exporter
ninthДата: Пятница, 17.06.2011, 15:19 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Ранние ревизии:
Rev7 http://panda3d.org.ru/files/blender25_egg_export.py
Rev 10 http://panda3d.org.ru/files/YABEE.zip
Rev 11 http://panda3d.org.ru/files/YABEE_11.zip

Новые версии доступны здесь: https://github.com/09th/YABEE/
https://github.com/09th/YABEE/archive/master.zip

Возможности:
- Экспорт простых мешей (модификаторы игнорируются за исключением арматуры)
- Экспорт UV развёрток.
- Частичный экспорт материалов и текстур
- Экспорт скелетной анимации (Armature)
- Экспорт ShapeKeys и их анимации - морф анимация
- Экспорт тэгов через назначение их в Game logic -> properies
- Экспорт незамкнутых кривых NURBS для использования в качестве Mopath
- Экспериментальная генерация UV слоя с текстурами AO и тени


Дополнительно скрипт для того чтобы была возможность вытащить из блендера анимацию перемещения объектов без использования скелета http://panda3d.org.ru/files/Blender_Motion.zip
 
serg-kkzДата: Понедельник, 11.07.2011, 22:49 | Сообщение # 16
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
Вот Blender экспорт.

Code
<VertexPool> Cube {
       <Vertex> 0 {
         1.0 0.9999999403953552 -1.0
       }


Вот 3d max экспорт.

Code
<Group> Cube {
   <VertexPool> Cube.verts {
     <Vertex> 0 {
       -0.5 0.5 0
       <UV> { 0 1 }
       <Normal> { 0 0 1 }
     }


В случае с Blender нет возможности назначить текстуру программно... так как нет координат, может что то надо в блендере тыкнуть, фиг знает.
Да вот ещё шо, 1.0 0.9999999403953552 -1.0 эт точность или?


ООП  -  
 
serg-kkzДата: Понедельник, 11.07.2011, 23:10 | Сообщение # 17
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
Ещё вот вопрос: Game logic = logic Editor, это одно и тоже, а то пока искал Game logic весь взмок, так и не нашёл, хотя теги прицепил через logic Editor.

Ну ещё вопрос насчет пустышек, экспортнуть пробовал записыватся инфа ввиде:

Code
<Group> Empty {
      <Transform> {
        <Matrix4> {
          1.000000 0.000000 0.000000 0.000000
          0.000000 1.000000 0.000000 0.000000
          0.000000 0.000000 1.000000 0.000000
          0.000000 0.000000 0.000000 1.000000
        }
      }


Я смогу извлечь инфу о положении из этого? спрашиваю потому что, не знаю чё за <Transform>, хотя моно проверить через панду.

Добавленно

Насчет пустышек можешь не отвечать, проверил.


ООП  -  

Сообщение отредактировал serg-kkz - Понедельник, 11.07.2011, 23:22
 
ninthДата: Вторник, 12.07.2011, 08:40 | Сообщение # 18
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
c 0.99 - это обчный прикол питона при преобразовании в float.
Текстурных координат у тебя нет потому, что скорее всего ты не сделал развёртку (Edit Mode (shortkey 'Tab') -> Select all (shortkey 'A') -> UV Mapping (shortkey 'U') -> Unwrap)
Quote (serg-kkz)
Ещё вот вопрос: Game logic = logic Editor, это одно и тоже, а то пока искал Game logic весь взмок, так и не нашёл, хотя теги прицепил через logic Editor.

В принципе да, просто я предустановки рабочего окружения использую - вверху окна рядом с менюшкой выбирается - Animation, Compositing, Default, Game Logic, и т.д. - ИМХО удобнее, чем переключать отдельно окна/панельки.
 
serg-kkzДата: Вторник, 12.07.2011, 13:03 | Сообщение # 19
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
c Unwrap в блендере разобрался. Но проблема осталась, текстура всё равно не напяливается как надо, через программный подход. Единственный вариант это назначение в блендере, всё хорошо, но не всегда нужно назначать модельке текстуру в редакторе, например sky box'у, ведь текстуру неба приходиться менять. Видимо текстуры в экспортере цепляются через полигон, т. е. текстура цепляется к четырем точкам, а можно ли сделать вариант с тремя? Чтоб выбор был либо через полигон(четыре точки), либо треугольник(три точки). Соответственно полигоны строить треугольниками. Хм… возможно я туплю…!?

Могу дать образец egg, из 3d max.


ООП  -  
 
ninthДата: Вторник, 12.07.2011, 14:26 | Сообщение # 20
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Давай. Скорее всего ты пытаешься заменить текстуру, которой нету, а надо новый texture stage вешать. Но давай на всякий случай гляну на обе модельки
 
serg-kkzДата: Вторник, 12.07.2011, 14:53 | Сообщение # 21
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
texture stage? - я раньше думал это слой... хм..

Вот. модель из 3d max, я цветом выделил.
Прикрепления: Tex_test.rar(153Kb)


ООП  -  

Сообщение отредактировал serg-kkz - Вторник, 12.07.2011, 14:54
 
ninthДата: Вторник, 12.07.2011, 16:16 | Сообщение # 22
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Ага, понял. У меня текстурные каналы именованные, поэтому нужно ставить через texture stage
Code
ts = TextureStage('ts1')
ts.setTexcoordName("UVTex")
Object = loader.loadModelCopy('Res/test-Blender.egg')
Object.setTexture(ts, loader.loadTexture('Res/1.png'))


Впрочем, я это поправлю - будет первый канал без имени.
 
serg-kkzДата: Вторник, 12.07.2011, 16:26 | Сообщение # 23
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
Ясно теперь, всё таки я тупил...

ООП  -  
 
ninthДата: Вторник, 12.07.2011, 16:51 | Сообщение # 24
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Не - ты ни при чём - в описании egg формата об этом явно не сказано, но походу все экспортёры по дефолту делают первый uv канал неименованным и дефолтный texture stage, который собсно и применяется, если не указывать ТС явно, использует неименованный канал. Ради эксперимента сделай так:
Code
TextureStage.getDefault().setTexcoordName("UVTex")     
Object = loader.loadModelCopy('Res/test-Blender.egg')     
Object.setTexture(loader.loadTexture('Res/1.png'))

Будет нормально применяться текстура на объект из блендера и криво на максовый.
В общем, не буду отличаться от остальных сделаю так же - первый - неименованный, остальные - с именами
 
serg-kkzДата: Вторник, 12.07.2011, 18:11 | Сообщение # 25
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
Да не, я по поводу полигонов и треугольников, почему то казалось что UV координаты в этом экспортёре рассчитываются для четырёх. а про две ещё точки забываются, и тут тупил, ведь они потом склеиваются и итог 4. А имена по идее должны присваиваться только, если назначены текстуры и равняется имени канала из редактора.

Эксперимент проводить не буду, и так ясно. А имя я потёр в egg файле, и всё стало на свои места.


ООП  -  
 
ninthДата: Вторник, 12.07.2011, 18:19 | Сообщение # 26
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Quote (serg-kkz)
А имена по идее должны присваиваться только, если назначены текстуры и равняется имени канала из редактора.

Канал в блендере и так имеет имя, даже самый первый, я в общем-топросто пытался перенести один к одному.
Текстуры в самом egg файле могут и не иметь ссылку на uv канал, тогда как раз и будет использоваться этот самый дефолтный неименованный.
 
serg-kkzДата: Среда, 13.07.2011, 12:47 | Сообщение # 27
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
Это снова я... Вот такая ситуация получается иногда после создания unwrap'а.



закономерность: вроде, после попытки затаились текстуру.

Насчет преобразований в float, ведь переделали алгоритм с версии 2.7, пытался повторить в консоли блендера(там питон 3.2) не вышло, а вот с 2.6 в панде вышло. Хотя это по сути и не баг т.к. числа равны. Но размер egg разбухает, соответственно и увеличивается время экспорта. Как же это повторить в питоне 3.2?
Прикрепления: 9542943.png(92Kb)


ООП  -  
 
ninthДата: Среда, 13.07.2011, 13:20 | Сообщение # 28
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Не вижу текст ошибки - мелко слишком. Можешь дать из консоли на что ругается?

Х.з. - оно не каждый раз в .9999 превращается - может ещё действительно точность самого блендера. Я думаю сделаю настраиваемой точность записи - кол-во знаков после запятой.
 
serg-kkzДата: Среда, 13.07.2011, 13:40 | Сообщение # 29
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
В консоле блендера пусто. В файл записывется одна строка первая, картику увеличить можно - сохранив на комп, я в полне разглядываю.

ООП  -  
 
serg-kkzДата: Среда, 13.07.2011, 13:44 | Сообщение # 30
Генерал-лейтенант
Группа: Модераторы
Сообщений: 689
Награды: 3
Репутация: 16
Статус: Offline
Python script fail, look in the console for now...

в скрипте указывает на строку.

write_out(FILE_PATH, ANIMATIONS)


ООП  -  
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » Blender 2.5 Exporter
Страница 2 из 7«123467»
Поиск: