1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Дублирование материалов при .fbx-импорте.

Тема в разделе "Maya", создана пользователем bac9-flcl, 26 май 2011.

Модераторы: Dark™, Skif
  1. bac9-flcl

    bac9-flcl Пользователь сайта

    С нами с:
    06.11.2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    2
    Добрый день.

    Столкнулся с неприятной проблемой: при импорте .fbx-моделей в Maya (проверил в 8.5, 2010, 2012, без разницы) появляются дублированные материалы. Если подробнее, то устроено всё так:

    1. Модель изначально была создана в Sketchup, где была разбита на компоненты, т.е. группы с инстансингом и разной там многоуровневой иерархией. Всё корректно затекстурировано, число материалов равно числу текстур.

    2. Модель экспортируется в .fbx.

    3. Модель импортируется в Maya. Всё идеально, компоненты Maya воспринимает как группы: без иерархии (на одном уровне) и инстансинга, но корректно. Проблема только одна: на каждый компонент, использующий такой же материал, как другой компонент, зачем-то был создан дублирующий материал. Ну, то есть, представьте, скажем, здание с сотней окон, у которого при импорте в Maya за каким-то чертом создалось сто материалов от текстуры этого окна.

    Простой пример. Две текстуры, два кубика, две группы, два материала на каждом.

    http://img.gameru.net/img/867ca.jpg
    http://img.gameru.net/img/8c7f3.jpg

    В Hypershade -> Materials их четыре.

    ***

    Собственно, вопрос: как избавиться от этого странного дублирования? Оно мало того что неудобно при настройке модели, но и попросту делает некоторые модели слишком тяжелыми вообще для открытия в Maya. Либо, по-крайней мере, поведайте, как слить эти материалы обратно в один :D

    Заранее спасибо.

    P.S.: Вряд ли проблема в каких-то там экзотических особенностях формата SU, т.к., во-первых, не напрямую из него же импортируется модель, а из родного .fbx, во-вторых, при импорте в 3ds Max ни следа дублированных материалов не было.
     
  2. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15
    В гипершейде Edit > Delete Duplicate Shading Networks
    Только, кажись, перед этим нужно выделить все Shading Groups
     
  3. bac9-flcl

    bac9-flcl Пользователь сайта

    С нами с:
    06.11.2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    2
    http://img.gameru.net/img/336aa.jpg
    ^ К сожалению, не срабатывает.

    Возможно, я не вполне верно понял, как именно выделить Shading Groups. В логе на скрине есть перепробованные четыре варианта.
     
  4. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15
    Собственно в гипершейде есть закладка Shading Groups. Но если их очень много, то можно запустить такой скриптик
    Код:
    string $listSG[] = `ls -typ shadingEngine`;
    select -r -ne $listSG;
    removeDuplicateShadingNetworks( 1 );
     
  5. bac9-flcl

    bac9-flcl Пользователь сайта

    С нами с:
    06.11.2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    2
    О, спасибо, нашел. К сожалению, убрать дубликаты Maya всё еще не соглашается :D
    Код ошибки такого плана:

    Код:
    // Error: No object matches name: Mesh2SG.miMaterialShader //
    Это звучит странно, т.к. объекты, соответствующие этим shading groups, еще как имеются - при удалении одной из них пропадают соответствующие фейсы в модели.

    Скриншоты с ручным выделением и вашим MEL-скриптом:

    http://img.gameru.net/img/230ec.jpg
    http://img.gameru.net/img/cf7f1.jpg

    Либо я в чем-то исключительно туплю, либо эти дубликаты какие-то не совсем дубликаты :D
     
Модераторы: Dark™, Skif

Поделиться этой страницей