Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Как правильно выгрузить 3ds из MAX-а? | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Как правильно выгрузить 3ds из MAX-а?»
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Надеюсь что не промахнулся с каналом.

Решили с сынишкой нарисовать простенькие "астероиды" 3D. За основу взяли движок irrLicht. Почитали несколько статей по моделингу на gamedev-е, попробовали намоделить, но что-то не получается выгрузить в 3ds. Такое ощущение, что выгружаются не все полигоны.

В максе все нормально http://prolib.ru/.closed/aster_max.jpg
Вот та же самая модель загруженная движком http://prolib.ru/.closed/aster.jpg

Взяли модель попроще - куб. После загрузки выглядит так http://prolib.ru/.closed/cube.jpg То есть видимы только top и bottom грани.

Скорее всего мы что-то не учли при выгрузке, так как другие модели загружаются нормально (брали меши с примеров к движку, со статей gamedev и еще несколько бесплатных моделей с инета).

Выгрузку делаем через File -> Export. Сначала думали что макс глючит - перепробовали на 3х версиях: 2.5, 6 и 8. Подскажите где тут собака порылась?
    Добавлено: 14:30 02-12-2006   
-=Hed_GE_hoG=-
 371 EGP


Рейтинг канала: 1(3)
Репутация: 135
Сообщения: 2528
Откуда: Минск
Зарегистрирован: 11.06.2005
А обратный импорт из здс, в макс? Всё на месте? Если всё на месте, то экспортнулось нормально... А что за движок? Он тока 3дс читает?
_________________
Пришлёл, задрал майку. Ушёл не отодрав ни майку ни зайку (с)
    Добавлено: 20:42 02-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Разобрались - это был глюк движка. Обновили до последней - заработало. Движок вроде неплохой, много хороших отзывов. Сайт здесь http://irrlicht.sourceforge.net/ поддерживает дофига чего, но экзамплы слишком простые, приходится методом проб и ошибок. Сейчас не можем от flat затенения избавиться. Не въедем то-ли это в модели с нормалями где-то шаманится, то ли программно.
    Добавлено: 23:07 02-12-2006   
-=Hed_GE_hoG=-
 371 EGP


Рейтинг канала: 1(3)
Репутация: 135
Сообщения: 2528
Откуда: Минск
Зарегистрирован: 11.06.2005
Ну, с затенением врядли врублю... Ну а нормалиж в максе можно покрутить Улыбка
_________________
Пришлёл, задрал майку. Ушёл не отодрав ни майку ни зайку (с)
    Добавлено: 23:26 02-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
> Ну а нормалиж в максе можно покрутить
Дык не врубаюсь где крутить Гы-гы судя по картинке в максе - все гладенько. Делаю сферу дефолтом, выгружаю в меш - та же фигня - полигончики плоские. Хотя в экземплах сфера сглаженная, но там пример пиксельшейдеров. Вот и не врублюсь, то ли это шейдерами сделали, толи моделька с правильными нормалями Совсем запутался...
    Добавлено: 23:37 02-12-2006   
-=Hed_GE_hoG=-
 371 EGP


Рейтинг канала: 1(3)
Репутация: 135
Сообщения: 2528
Откуда: Минск
Зарегистрирован: 11.06.2005
Всмысле сфера не сглаженная? Видны полики? Эт не нормали, это группы сглаживания... Они вроде должны нармально экспортироватся... Сами по себе...
_________________
Пришлёл, задрал майку. Ушёл не отодрав ни майку ни зайку (с)
    Добавлено: 23:55 02-12-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
whirlwind :
Дык не врубаюсь где крутитьсудя по картинке в максе - все гладенько. Делаю сферу дефолтом, выгружаю в меш - та же фигня - полигончики плоские. Хотя в экземплах сфера сглаженная, но там пример пиксельшейдеров. Вот и не врублюсь, то ли это шейдерами сделали, толи моделька с правильными нормалями

В 3дс не выгружаються нормали. Т.е. движок их пересчитывает сам. Даже если он и правильно пересчитывает может быть такое, что есть запрет на мягкие нормали.

Но всё равно - выход искать решение в irrLicht и только там.
_________________
MOV topka, C++
    Добавлено: 00:16 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Использую 6-й макс - проблем никаких, кроме названий текстур, они при экспорте должны быть в формате 8.3. К тому же когда экспортируешь нужно выделить полностью всю модельку.
Возможная проблема то, что не применен модификатор "Reset XForm". Это описано в гайде по лоу-поли моделингу, размещенному где-то на этом форуме (http://www.elite-games.ru/art/start - Звездный арт - Раздел eроков - Создание текстурной развёртки в 3D Max 7). Дело в том, что после применения всех модификаций реальный координаты вершин могут отличаться от того, как они отображаются (я так это понимаю). А после применения модификатора все приводится в норму.
Если необходимо, могу выслать на почту кубик в 3DS с текстурами к нему, чисто на пробу. Но вообще у меня возникли проблемы с наложением нескольких текстур. Почему-то остается только последняя текстура. Расстроен
Может подскажете как Вы решаете эту проблему?

P.S. Таки может быть это поправит положение с тенями. Вектором указывается направление освещения. Колором я так понимаю цвет, относительно которого обрабатывается амбиент текстура, а Шайнес регулирует степень освещенности.
Код:

      node->setMaterialFlag(EMF_LIGHTING, true);
      node->getMaterial(0).Shininess = 255.0f;
      ILightSceneNode* light = smgr->addLightSceneNode(0,
            vector3df(5,-15,5), SColorf(127.0f, 127.0f, 127.0f));
      node->setMaterialTexture( 2, driver->getTexture("cube/cube_t_a.bmp") );

_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 00:21 03-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
>Может подскажете как Вы решаете эту проблему?

Нам бы с одной справиться Ой, не могу!.. Вот например для того, что бы из макса выгрузить текстуру астероида додумались отрендерить ее на бокс а потом вырезать. Получилось честно говоря не очень. А про скайбокс звездного неба я ваще молчу Гы-гы


С Shininess очень интересный эффект получился. Самые освещенные полигончики сияют как стальные или ледяные. В общем круто, надо будет в дальнейшем использовать, однако проблему это не решило. Вот все настройки модельки

Код:

   IAnimatedMeshSceneNode* aster = smgr->addAnimatedMeshSceneNode(
      smgr->getMesh("asteroid_04.3ds"));
   aster->setPosition(vector3df(0,0,0));
   aster->setMaterialTexture(0,driver->getTexture("ast.jpg"));
   aster->setMaterialFlag(EMF_GOURAUD_SHADING,true);
   aster->setMaterialFlag(EMF_LIGHTING,true);
   aster->getMaterial(0).Shininess = 255.0f;


хотя в API reference сказано что EMF_GOURAUD_SHADING дефолтом стоит true, к тому же не помогает. Где еще можно копаться, если не в материале, я просто не представляю. Ну не в камере же и не в источнике освещения наконец. В итоге имеем вот такой вид
http://prolib.ru/.closed/aster02.JPG
    Добавлено: 00:55 03-12-2006   
-=Hed_GE_hoG=-
 371 EGP


Рейтинг канала: 1(3)
Репутация: 135
Сообщения: 2528
Откуда: Минск
Зарегистрирован: 11.06.2005
Ужость, а где группы сглаживания?
_________________
Пришлёл, задрал майку. Ушёл не отодрав ни майку ни зайку (с)
    Добавлено: 01:03 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Таки это проблемы с самой моделькой. Хм, Вы грузите анимейтед меш. А он реально анимированный или статичный?
А эффект металлического блеска - это настройки текстур в максе, по-моему.
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 01:40 03-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
> А он реально анимированный или статичный?
Статичный

В общем плюнул я на 3ds и скачал экспортер в X. Все стало сглаженным, но насчет материалов я думал будет поумнее, раз уж не 3ds.
    Добавлено: 02:12 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Сейчас попробую статик меш загрузить как анимированный, посмотрю что из этого получится. И результат сообщу.
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 02:37 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Проверил, у меня от кубика вообще ничего не осталось, хотя ирллихт в логах говорит, что все нормально загрузилось. Так что дело именно в подгрузке меша.
Надо делать таким образом:
smgr->addOctTreeSceneNode(mesh->getMesh(0))
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 02:42 03-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
>хотя ирллихт в логах говорит

какая версия?
    Добавлено: 03:05 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Версия 1.1
Но меня больше интересует как накладывать несколько текстур. У меня, почему-то, не получается:
Код:

      node->setMaterialType(EMT_REFLECTION_2_LAYER);
      node->setMaterialTexture( 3, driver->getTexture("cube/Lakerem.bmp") );

      node->setMaterialFlag(EMF_LIGHTING, true);
      node->getMaterial(0).Shininess = 255.0f;
      ILightSceneNode* light = smgr->addLightSceneNode(0,
            vector3df(5,-15,5), SColorf(127.0f, 127.0f, 127.0f));
      node->setMaterialTexture( 2, driver->getTexture("cube/cube_t_a.bmp") );

      node->setMaterialTexture( 2, driver->getTexture("ship/PLATF_A.bmp") );*/

      node->setMaterialType(EMT_SOLID);
      node->setMaterialTexture( 0, driver->getTexture("cube/cube_t_d.bmp") );

      node->setMaterialType(EMT_DETAIL_MAP);
      node->setMaterialTexture( 1, driver->getTexture("cube/cube_t_b.bmp") );

В результате остается только последняя текстура. Расстроен
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 04:35 03-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Насколько я понимаю, дело в неверных настройках. setMaterialType устанавливает режим интерпретации всех 4 текстур.

для EMT_DETAIL_MAP
Цитата:

The first texture is diffuse color map, the second is added to this and usually displayed with a bigger...


это значит что используется текстуры 0 и 1, а они у тебя судя по коду обе соответствуют cube/cube_t_d.bmp

Тип-то материала м.б. один. Значит после

Код:

node->setMaterialType(EMT_REFLECTION_2_LAYER);
node->setMaterialType(EMT_SOLID);
node->setMaterialType(EMT_DETAIL_MAP);


в результате будет EMT_DETAIL_MAP
    Добавлено: 15:38 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Таки последняя мною накладываемая EMT_SOLID:
Код:

      node->setMaterialType(EMT_SOLID);
      node->setMaterialTexture( 0, driver->getTexture("cube/cube_t_d.bmp") );

А предпоследняя EMT_DETAIL_MAP:
Код:

      node->setMaterialType(EMT_DETAIL_MAP);
      node->setMaterialTexture( 1, driver->getTexture("cube/cube_t_b.bmp") );

И получается что они каким-то образом смешиваются??? Или я чего-то недопонял?
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 16:32 03-12-2006   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Не смешиваются они. Каждый тип материала требует от 1 до 4 текстур. Какому материалу сколько текстур соответствует, и за что отвечает каждая текстура для конкретного типа материала написано здесь http://irrlicht.sourceforge.net/docu/namespaceirr_1_1video.html#a129

EMT_SOLID - Standard solid material. Only first texture is used, which is supposed to be the diffuse material.

UPD:

Увы, проблема затенения методом гуру до сих пор актуальна. Сделали пробный модификатор для генерации сурфейса путем случаного масштабирования векторов от центра до вершины. Результат таков http://prolib.ru/.closed/aster_wire.JPG свойства материала
Код:

   obj->setMaterialFlag(video::EMF_WIREFRAME,true);
   obj->setMaterialFlag(video::EMF_LIGHTING,true);
   obj->setMaterialFlag(video::EMF_GOURAUD_SHADING,true);
   obj->setMaterialFlag(video::EMF_NORMALIZE_NORMALS,true);

Даже после
Код:

smgr->getMeshManipulator()->recalculateNormals(meshBuffer,true);

нифига гуру не получается. Результат такой http://prolib.ru/.closed/aster_invl.JPG .в коде закоменчен EMF_WIREFRAME. Где еще можно порыцо на предмет организации нормального сглаживания, у кого мож какие идеи есть?
    Добавлено: 16:44 03-12-2006   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2193
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
А обязательно астероид курочить в виде меша? Может проще будет бамп наложить сверху? Или хочется чего-то более рельефного и с "дырочками"?

P.S. Сейчас сам попробую рельефненький весь из себя астер запузырить, посмотрю что получится и отпишусь.
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 04:55 09-12-2006   
Канал Игры Мечты: «Как правильно выгрузить 3ds из MAX-а?»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Маленький, толстый и абсолютно лысый негр Рыб. (подпись Рыба)

  » Как правильно выгрузить 3ds из MAX-а? | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18