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

Material

Тема в разделе "MAXScript", создана пользователем -, 6 фев 2004.

Модераторы: Savin Denis
  1. Guest

    допустим есть такая задача:
    в сцене есть кубик с материалом Standart, нужно скриптом создать новый материал Directx9 shader, перенести некоторые настройки с Standart на DX9
    и сообственно заменить старый материал новым.
    Проблема возникла в следующем, во первых поместить материал нужно не с помощью кнопочки assign material to selection а с помошью кнопочки put material to scene. Естественно до этого шага я уже присвоил имя стандартного материала директиксовому и данная кнопочка в редакторе загорелась. Пересмотрел хелп, но там этого не нашёл, попробовал сам использовать PutMtltoScene, ошибки ни какой невыдаёт но и не работает, в рекордере данная кнопочка тоже не регистриться. Кто знает как всё таки поместить материал в сцену ?

    и ещё вопросик как определить- макс работает под OGL или DX

    Всем спасибо.
    ICQ 309684979
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    На счет матерьяла
    Такого метода в скрипте нет, но вполне можеш написать и сам
    такую функцию:
    тебе нужно просто в цикле проверить имена всех обьектов в сцене
    и поменять матерьял с совпадающим именем
     
  3. Guest

    Это то понятно, но тогда придётся заморачиватьсяуже не с выделеныыми объектами а с ID материала, а если у меня ещё буду и группы то вобще засада .
    Жаль , такой простенький скрипт, а написать почеловечески нельзя...придётся возится с ID и все группы разгруппировывать.
     
  4. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Все можно только болтать меньше надо давно бы написал
    ладно лови на 3dcentre там вроде сайт поправок в код не вносит :)
     
  5. Guest

    Я его уже и написал почти, всё делается кроме функции putmtltoscene. Её напишу надеюсь сегодня. Посмотрел я твой скрипт на 3дцентре. Ну что я могу сказать, да ничего. Я со скриптами знаком 4 день всего и хотя суть мне слегка понятна я всё таки до этого ещё не дошёл, узлы, классы и т.д. пока решаю проблеммы более простым кодом :) Спасибо огромное за помощь, щас буду разбираться с твоим кодом, хотя пока я опять встрял с диалогом выбора файлов. Я научился открывать макс-файл, научился открывать текстовый файл и растровые изображения, но как вызвать окно выбора файлов не привязанное к типам я не понял. Используется это здесь: Создаём directx9_shader и самой первой кнопочкой мы можем выбрать *.fx файл, то есть сам шейдер. Пока я прописал жёсткий путь без возможности его смены, но не у всех же макс стоит там же где и у меня.

    Ещё раз огромное спасибо за помощь.
     
  6. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Незабывай F1 полезная клавиша я все-таки не ходячий хелп ;)
    это ты и сам был способен найти

    getOpenFileName [ caption:<title> ] \

    [ filename:<seed_filename_string> ] \

    [ types:<description1>|<pattern1>|<description2>|<pattern2>|...| ]

    getSaveFileName [ caption:<title>] \

    [ filename:<seed_filename_string> ] \

    [ types:<description1>|<pattern1>|<description2>|<pattern2>|...| ]

    For example:

    f = getOpenFileName \

    types:"Data(*.dat)|*.dat|Excel(*.csv)|*.csv|All|*.*|"
     
  7. Guest

    Премного благодарен в очередной раз. F1 вообще не отпускаю, читаю хелп день и ночь, просто этот скрипт нужен срочно, скоро сдача этапа и переделывать все используемые материалы ручками в напряг. вот и решил облегчить жизнь коллегам, я допустим сразу с директиксовыми шейдерами работаю но это один сплошной глюк, поэтому нужно помочь всем страждующим, да и на будущее пригодится. Вообще я занимаюсь моделированием. Но это всё лирика. спасибо ещё раз. Кстати врубился в классы, до узлов пока не дошёл :)
     
  8. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Молодец, теперь можеш проних завыть :)
    и смело стирать строчки типа ocls=classof origMtl
    избыточный код остался, для шестерки не требуется.

    Node это и есть класс обьекта в сцене проще говоря
    любой обьект.
     
  9. Guest

    Вот именно из-за проблем DX и возникла необходимость написания данного скрипта :)
    Работаю на geforce 4200 ti с 64mb, с ATI какие то проблеммы даже при использовании сочетания ALT+TAB, но это вопрос в принципе не ко мне а к программерам, я так, краем уха слышал и ососбо не вникал.
    Да софт есть. MaxTreme называется, на официальном сайте можно скачать, НО т.к. он работает только под quadro то приходится с помошью различных ухищрений програмно переделывать карту, ну или как то читал, это уже для слишком больших энтузиастов, можно и паяльником поработать. С помошью утилиты Rivatuner и дополнительного скрипта, он там же где и тюнер лежит можно попробовать карту переделать, но так так за пару минут возни у меня ничего не получилось я это дело забросил, и так в принципе всё нормально работает и не тормозит. Короче специальный софт я не ставлю. Работаю щас под детонатором 52.14 до этого работал на 53.03 особой разницы не видел, баги везде одни и теже и везде они присутствуют, и в DX и в OGL.
    Моделю под DX, только по той причине что в будущем будет лень переделывать все материалы, хотя с этим скриптом следующий этап попробую делать, наверное, под OGL. и со стандартными материалами
    Под DX есть 2 типа проблеммы , как я понял,с невидимыми гранями.
    1: Когда делаешь один мульти материал и ко всем объектам применяешь разный ID, в итоге после ID=20 возникает эта самая проблемма.- не лечиться хотя периодически проблемма на время пропадает
    2: когда делаешь разные материалы, не заморачиваешься с ID, конечно для этого приходится дробить сцену на объекты, то проблемма периодически возникает случайным образом. Лечится просто - рестарт и возникает вообще крайне редко. Вывод: DX не любит мульти материалы.ну или большое кол-во ID что в принципе одно и тоже
    Провели мы здесь маленький тест на эту тему и пришли к выводу что если на карте есть аппаратная поддержка dx9 то эти проблеммы не возникают, то есть линейка от nvidia - FX всё отображает нормально.
    Ещё под DX возникает проблемма увеличения размера окна, но это только если одновременно с максом запущена игра, например я часто запускал раньше wolfenstain для просмотра некоторых деталей и работал одновременно в максе - сущий ужас.
    Шейдеры сам не пишу, для этого есть программеры, вот они то всё это дело и пишут, я как говорил - моделер, но так как по образованию программист решил вот облегчить немного трудовые будни с помощью скриптов. Хотя потом хочу как-нить с шейдерами попробовать, но это уже под mental ray.
    От себя смогу добавить то что проблемы есть везде и под dx и под ogl, придётся выбирать что меньше нервирует, да и ещё dx пошустрее будет.
     
  10. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    http://www.3dcenter.ru/forum/index.php?showtopic=11172&st=0&#entry107574
     
  11. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Я так понял ты работаеш под DX, тут накопиолось
    несколько вопрос по этому делу
    заодно может ты меня просветиш ?
    Прошу прошения за оффтоп.

    Вопервых какя утебя карточка NV или ATI ,др ... ?
    пользуешся ли дополнительным софтом или дровами ?(у NV помнится какойто софт под это дело на макс ставился)
    Пишеш ли сами шейдеры ? какими пользуешся ?
    Моделируеш тоже под DX? как при этом обходиш проблему с невидемыми гранями ?
    Что еще от себя можеш добавить хорошего/плохого по этому поводу ? ;)
    Вобщем проблема интересует.
     
Модераторы: Savin Denis

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