Не работает мультитекстура в 3д макс

Обновлено: 06.07.2024

Установлен мультитекстур для 2020. Если присоединить или отсоединить узел тут же крашиться макс.

Как решить проблему кроме удаления макса с компа? Мультитекстур нужен.

Не имеет значения в интерактиве или нет. Плагин только для 2020 так себя ведет.

Мне давно удобно работать только через нод редактор.

Макс с годами все больший и больший инвалид. В дальнейшем видимо, вообще будет открывать макс не лучшей идеей.

В 2020 и 2021 максе такой фокус не проходит! Поменять битмап конечно можно, надо не отсоединять а поверх существующего прицеплять другой (они местами поменяются просто) тогда не слетит макс, но при этом Multitexture или сам Макс не позволяет более одного раза использовать одну текстуру для Multitexture

Плагин MultiTexture Map

В прошлой статье про Floor Generator мы упоминали еще один полезный плагин, который лучше всего работает в связке с первым. Сегодня мы поподробнее разберемся в том, как работает MultiTexture Map и чем он так полезен.

Как скачать плагин MultiTexture Map для 3ds Max 2021

Как установить плагин MultiTexture в 3ds Max

Давайте быстро разберемся как установить данный плагин:

  1. После окончания загрузки, у вас появится папка с одинаковыми файлами формата .dlt. Отличаются они только годом для вашей версии 3ds Max, что указано в их названии. Выберите подходящий вам вариант и скопируйте.
  2. Найдите папку с предустановленным 3ds Max у вас на компьютере. В ней будет папка Plugins. Вставьте скопированный ранее файл MultiTexture в папку Plugins.
  3.  Запустите 3ds Max и откройте Material Editor (по умолчанию горячая клавиша – английская буква M). В столбце слева будет раздел Maps, а в подразделе General вы сможете выбрать установленный нами ранее MultiTexture. Также можно вбить название плагина в поисковую строку слева в верхнем углу данного столбца.

Что делать, если MultiTexture не работает

В зависимости от версии плагина могут возникнуть разного рода проблемы с установкой. Даже если вы установили все по инструкции, то иногда плагин может не отображаться в редакторе материалов. Решить данный вопрос можно несколькими путями:

  1. Для начала убедитесь, что вы все сделали по инструкции и перезапустили 3ds Max. Если ничего не изменилось и плагин не отображается в редакторе материалов, то переходите к следующему пункту.
  2. Если вы пользуетесь рендер–движком Corona Render, то возможно при перезапуске 3ds Max он заменился на один из предустановленных рендер–движков программы автоматически. Редактор материалов отображает именно те наборы материалов, текстур и тд., которые поддерживает активный в данный момент рендер–движок. Для того чтобы вернуть Corona Render, найдите вкладку Rendering на панели инструментов в самом верху, затем кликнете на раздел Render Setup… (по умолчанию горячая клавиша – F10) и выберете Corona Render в пункте Renderer. После проделанных выше действий откройте редактор материалов и попробуйте найти плагин MultiTexture снова.
  3. Если вы пользуетесь рендер–движком V–Ray, то возможно при перезапуске 3ds Max он заменился на один из предустановленных рендер–движков программы автоматически. Редактор материалов отображает именно те наборы материалов, текстур и тд., которые поддерживает активный в данный момент рендер–движок. Для того чтобы вернуть V–Ray, найдите вкладку Rendering на панели инструментов в самом верху, затем кликнете на раздел Render Setup… (по умолчанию горячая клавиша – F10) и выберете V–Ray в пункте Renderer. После проделанных выше действий откройте редактор материалов и попробуйте найти плагин MultiTexture снова.
  4. Если способы выше не дали результата и плагин не хочет появляться в редакторе материалов, то попробуйте включить его вручную. Для этого найдите вкладку Customize на панели инструментов в самом верху, а затем кликнете на раздел Plug–in Manager… В открвышемся окне кликнете правой кнопкой мыши по темно–серой области и в появившемся окошке нажмите на Load New Plug–in. Далее найдите установленный ранее плагин, находящийся по пути Autodesk/3ds Max 2020 (или ваша версия)/Plugins и кликнете по нему двойным кликом левой кнопки мыши. Таким образом вы заставите MultiTexture активироваться, если по какой–либо причине он загрузился, но отказывался работать. После проделанных выше действий откройте редактор материалов и попробуйте найти плагин MultiTexture снова.

FloorGenerator + MultiTexture не корректно ложатся текстуры

Здравствуйте, коллеги! Установил эту связку, скачал качественные текстуры. Но, счастья нет.

Читал подобные темы на форуме, решения не нашел.

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



Даже, если взять однополосный паркет, эффект тот же. Размер текстуры и самой доски в генераторе практически совпадает.

В данном случае похоже задействована вообще только 1 текстурка. А их в наборе на самом деле 10!




Даже, если взять однополосный паркет, эффект тот же. Размер текстуры и самой доски в генераторе практически совпадает.

В данном случае похоже задействована вообще только 1 текстурка. А их в наборе на самом деле 10!

1. Как и сказали , всегда нарезайте по плашке

2. Во вьюпорте всегда отображается только одна текстура, при рендере будут разные, во вьюпорте можно только увидеть, что текстура случайно повернута, но будет только одна, еще в настройках можно задать процентное соотношение каждой плашки.

Поверните текстуру на 90 градусов и все станет ок.

Была такая проблема

Да, получилось! Нужно все текстуры прямо в папке, где они хранятся развернуть на 90гр.

Есть там значение: задать размер. Я так понимаю это общие габариты помещения, а как задать рамер плашек? Нет там такой функции, или чего не вижу?



Да, получилось! Нужно все текстуры прямо в папке, где они хранятся развернуть на 90гр.

Да, получилось! Нужно все текстуры прямо в папке, где они хранятся развернуть на 90гр.

Спасибо за совет обновить MT!

Поверните текстуру на 90 градусов и все станет ок.

Была такая проблема

Поверните текстуру на 90 градусов и все станет ок.

Была такая проблема

Поверните текстуру на 90 градусов и все станет ок.

Была такая проблема

Поверните текстуру на 90 градусов и все станет ок.

Была такая проблема

Про переворот текстуры на 90 градусов. Текстуры перевернула горизонтально в папке ,НО в 3д макс почему-то она отображалась всё-таки вертикально!Соответственно, некорректно отображалась при рендере-очень растянутой.

Очень удивило это меня,но и из этой ситуации есть выход-нужно пересохранить в фотошопе текстуры,назначив им новые имена.


и не нужно в других программах поворачивать

Всем здравствуйте, никак не могу понять почему мультитекстура на рендере зажовывается , что -то с настройками не то? может кто-то сталкивался с этим


вот так она выглядит во вьюпорте



В случае с неквадратными текстурами я всегда использую real-world просто потому, что нет заморочек с пропорциями UV. Если конечно речь не идёт о чем-нибудь примитивном, когда текстура и плоскость сами по себе совпадают по размерам (напр. экран телевизора).

Хотя в случае с флоргеном скейл под риалворлд без скриптов будет даже сложнее, чем отскейлить под пропорции новой битмапы.

Проблемы с multi sub\object и MultiTexture

Помогите решить проблему.



А не мультисаб? Вы уж что то одно выберите. Если мультисаб, то на пол еще модификатор нужно накинуть Матайди. Мультитекстуры не вижу.

DoCentttt

у меня такая история и с мультисаб и мультитекстурой

antht

нет стоит по id, раньше такой проблемы не было вообще , все накладывалось отлично.

antht

нет стоит по id, раньше такой проблемы не было вообще , все накладывалось отлично.

Так делайте как раньше и будет отлично 🙂

grdesigner

так и делаю как раньше, не могу понять в чем дело, и в интернете нет ответа на вопрос


В одном из наших недавних уроков мы говорили о том, как очень быстро создавать реалистичные полы в 3ds max с помощью бесплатного плагина Floor Generator. В этом уроке мы разберем, как его красиво затекстурировать с помощью скрипта MultiTexture. Скрипт подходит как для Corona, так и для Vray.


MultiTexture позволяет загрузить набор текстур и раскидать их случайным образом, что позволяет получить дощечки или плитки с неповторяющимся рисунком. В настройках скрипта можно задать рандомную корректировку гаммы, оттенка и насыщенности цвета. Все это позволяет получить на рендере действительно реалистичное напольное покрытие. Ну что ж, рассказываем, где скачать MultiTexture Map, как установить и как работать с ним.

MultiTexture Map: скачиваем и устанавливаем


  • Для 3ds max 2015, 2016 и 2017, а также последний 2018 рассчитан MultiTexture Map Version 2.01;
  • Для 3ds max 2012, 2013 и 2014 предлагается скачать Version 1.02;
  • Для 3d-редактора версии 2010 подойдет Version 1.01.

Теперь краткая инструкция по установке:

Инструкция по работе с MultiTexture

Теперь расскажу, как пользоваться этим скриптом и чем он так хорош. Будем текстурировать пол, созданный с помощью Floor Generator, ведь этот скрипт был создан специально для генератора полов.

Cуществуют специальные материалы, сделанные специально под MultiTexture Map. Их можно скачать на сайтах для 3д моделлеров или на некоторых сайтах производителей полов. Выглядят они как набор из нескольких досочек (или плиток) с разным рисунком дерева (или камня), а еще к ним часто прилагаются карты Bump и другие карты.


Как пользоваться в Corona Renderer

Открываем редактор, загружаем одну из досок в слот Diffuse и начинаем настраивать материал дерева так, как мы это делаем обычно. Как настроить красивый материал дерева для Vray и Corona читайте в этом уроке. Если вы привыкли собирать материал с картами рельефа и отражений (тем более, если они есть в вашем архиве), смело добавляйте и настраивайте их на этом этапе.


Я работаю с Corona Renderer и выставила такие параметры для своего пола:


Если текстура отображается некорректно, поверните ее в настройках Bitmap.


Но текстура доски повторяется и потому выглядит не слишком реалистично.


Поэтому переходим к добавлению мультитекстуры, стираем нашу Bitmap в Diffuse и вместо него добавляем карту MultiTexture. Настройки оставляем.


Жмем кнопку Manage Textures, затем, в открывшемся окне, кнопку Add Bitmap.


Выбираем все цветные доски, предназначенные для Diffuse.


Они добавились в список, теперь его можно закрыть.


После добавления списка текстур, дощечки распределяются по полотну и рендер выглядит уже куда более реалистичным:


По такому же принципу добавляются мультитекстуры для Bump, Reflection, Glossiness.


Как пользоваться в Vray

По аналогии можно пользоваться скриптом и в Vray. Floor Generator и MultiTexture отлично работают в обоих визуализаторах. Настраиваем материал дерева, кидаем одну планку в Diffuse через Bitmap.


Выставляем настройки, используемые для дерева. Если требуется и есть в наличии, подгружаем карты (bump, reflect).




Сейчас все дощечки имеют одинаковую текстуру, будем их разнообразить. Стираем карту Diffuse и вместо нее выбираем MultiTexture.


Жмем кнопку Manage Texture, а затем Add Bitmap.


Выбираем текстуры досок на компьютере, они будут внесены в список, закрываем менеджер.


Ту же процедуру проводим для других карт, если они будут использоваться. Применяем материал и оцениваем результат.


Настройка рандома

В этом скрипте можно настроить значения рандома по гамме, оттенку и насыщенности. Для этого предусмотрен блок, показанный на скриншоте, строка Random.


Столбик Gamma отвечает за гамму. К сожалению, окно превью не показывает результат изменений параметра, итог можно увидеть только на рендере.


Hue — отвечает рандом по оттенку цвета, то есть некоторые плитки могут быть более зеленые, другие красноватые и т. п.


Saturation — за насыщенность цвета. Часть досок становится более серыми, другие же — наоборот, «набирают» цвета.


Параметр Distribution для каждого столбца указывает процент планок, на который будет воздействовать параметр рандома. То есть, при значении 10, разность в цвете или оттенке будут иметь лишь 10% от общего числа досок, остальные же 90% останутся с базовыми параметрами.


Таким образом, можно настроить небольшой разброс цвета или оттенка и получить действительно красивый пол.

alt

С помощью наложения текстур можно легко и быстро создавать высококачественные материалы. Для этого можно использовать практически любые 2D изображения. Их можно создавать самому в графических редакторах или искать в Сети. Ниже мы разберем, как задавать свойства материала CoronaMtl с помощью текстур и различные способы настройки.

1. Создание материала

Прежде всего необходимо создать объект, на который будет применен материал с текстурами. Также сразу стоит создать пол и источник света для рендеринга. Для тестовой сцены в качестве пола используется Plane, а в качестве света CoronaLight. Объектом будет полусфера, на которую будет накладываться материал плетенной корзины. Для удобства можно также поставить Standard Camera.

Standard Camera

Перейдите в Material Editor, нажав клавишу «M» или кнопку на панели Main Toolbar, и создайте материал CoronaMtl. Добавьте все карты в рабочую область перетаскиванием картинок или создавая карту Maps – General – Bitmap.

Скачивая карты из Сети, они часто именуются по свойствам, за которые отвечают. В данной статье применялись карты: Diffuse, Ambient Occlusion (AO), Roughness, Normal и Height. В других материалах можно встретиться с названиями: Base color, Metallic, Glossiness, Specular.
Diffuse = Base color, Roughness = Glossiness, Metallic = Specular.
Названия это только ориентиры. Помните, что автор мог ошибиться и неправильно назвать карту.

Material Editor

2. Подключение текстурных карт

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

1. Color Correction – к ней подключается карта Diffuse. Эта карта нужна для изменения картинки с базовым цветом.

Color Correction

2. Composite объединяет между собой две карты Diffuse (через Color Correction) и Ambient Occlusion. Чтобы их объединить, в карте Composite нужно добавить новый слой (Layer 2) кнопкой Add A New Layer. Карта Ambient Occlusion подключается к Layer 2 и ему назначается тип Multiply. Diffuse подключается к Layer 1.

Composite

3. CoronaNormal – карта для активации работы и настройки карт нормалей. Для включения карты нужно зайти в ее настройки и установить флажок Add gamma to input. В случае неудовлетворительного результата можно изменить множитель выдавливания Strength mult, изменить красный (Red) и зеленый (Green) цветовые каналы. Эту карту нужно подключать только к картам нормалей. Если в слот Bump будет назначена другая карта, то ее не нужно подключать таким же образом.

CoronaNormal

Теперь сформированные текстуры можно устанавливать в слоты материала.

Composite подключается к Diffuse color.

Roughness подключается к Refl. gloss. При этом нужно установить Reflection Level = 1.

CoronaNormal подключается к Bump. Значение Bump в CoronaMtl – Maps можно увеличить или уменьшить, в зависимости от результата.

Height подключается к Displacement.

Reflection Level

Большинство карт свойств представлены в черно-белом виде. Если вам недостает как-либо карт, то можно назначить одну и ту же разным свойствам. Можно изменить их с помощью карт Color Correction и Output. Причем, назначить в любое из свойств можно и карту цвета Diffuse color, и она будет работать. А другие полезные карты можно узнать в статье «10 самых нужных карт 3Ds Max».

Теперь можно выбрать объект и назначить ему материал кнопкой Assign Material to Selection.

3. Настройка размера и UVW Map

Создав материал, можно переходить к его настройке. Для начала стоит отобразить материал на объекте, чтобы видеть его наличие и положение. Отображается только цвет материала, а точнее любая из назначенных карт. Поэтому в данном случае мы выделяем карту Color Correction и отображаем ее кнопкой Show Shaded Material in Viewport.

Show Shaded Material in Viewport

Теперь можно видеть, что текстура слишком крупная и ее следует уменьшить. Сделать это можно в настройках карт Bitmap, которые были загружены из памяти компьютера. Перейдя в Material Editor – Bitmap (Diffuse) – Coordinates, вы сможете настраивать положение текстуры и повторение. Offset смещает положение текстуры по оси U (вправо/влево) и V (вверх/вниз). Tiling увеличивает количество повторений текстуры по тем же осям. Angle поворачивает текстуру по осям U, V и W (по диагонали).

Coordinates

У такого метода настройки есть большой недостаток – каждую карту Bitmap придется настраивать отдельно. Если какую-то пропустить, то финальный вид материала может испортиться. Для того, чтобы изменять все используемые карты одновременно, воспользуйтесь модификатором UVW Map.

Примените модификатор к объекту, перейдя в Modify – Modifier List – UVW Map. В разделе Parameters – Mapping выберете наиболее подходящую форму для вашего объекта. В данном случае – Spherical.

Значениями Length, Width и Height настраивается размер проецирующего контейнера. Рекомендуется, чтобы все его края находились снаружи объекта.

С помощью параметров U/V/W Tile можно настроить повторения всех карта. Благодаря увеличению этих значений, текстура уменьшится.

UVW Map

На этом настройка материала и объекта закончена. Можно запускать рендер и использовать объект в сцене. Все настройки уникальны для каждого отдельного материала и текстуры. Поэтому, чтобы хорошо настроить материал, нужно потратить много времени на подбор параметров. Описанный метод подойдет для большинства материалов. Однако, для очень сложных моделей есть более продвинутые инструменты текстурирования. К таким относятся «запекание» и создание развертки Unwrap UVW.

Если я установлю current_method=0 , я получу ожидаемый вывод, все грани куба будут использовать различную текстуру (как и предполагалось):

enter image description here

Если я установлю current_method=1 , только одна грань будет текстурирована правильно, это неверный вывод:

enter image description here

Если я установлю current_method=2 , все грани будут текстурированы с одинаковой текстурой [0], что также является неправильным выводом:

enter image description here

Я хотел бы понять, почему методы 1 и 2 не дают такой же вывод, как метод 0. Я знаю, что при правильном использовании шейдеров использование glActiveTexture становится тривиальным, но я хотел бы понять, что не так при использовании этих методов в старом фиксированном конвейере.

2 ответа

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

Мультитекстурирование применяет несколько текстур одновременно к одним и тем же примитивам. Вы хотите применять разные текстуры, по одной текстуре за раз к разным примитивам. Из этого должно быть ясно, что мультитекстурирование не делает то, что вы хотите, поэтому нет смысла его использовать.

Как работает мультитекстурирование

При мультитекстурировании несколько текстурных блоков объединяют свои результаты, используя функции смешивания наложения.

Функция смешивания для каждого этапа задается glTexEnv и может быть чем-то вроде GL_MODULATE , GL_DECAL или GL_ADD . Вот как карты света были объединены с текстурами того времени: одна текстура будет иметь диффузную текстуру, а одна текстура будет иметь текстуру карты света.

Опять же, это полностью отличается от эффекта, которого вы хотите достичь, поэтому мультитекстурирование не имеет смысла в вашем приложении.

Как работает glActiveTexture

glActiveTexture не меняет, какой текстурный блок отображается на экране. По умолчанию только текстурный блок № 0 будет рисовать на экране.

Решения

Итак, у вас есть рабочий код, который не использует мультитекстурирование. Большой! Вы сделали Вы не получаете бонусных баллов за использование дополнительных функций OpenGL.

В качестве альтернативы, вы можете нарисовать весь куб за один вызов отрисовки, если вы используете текстуру 2D-массива. Вы просто загружаете свои существующие текстуры в виде плоскостей в текстуру 2D-массива и используете координаты 3D-текстуры вместо координат 2D-текстуры. Опять же, мультитекстурирование не требуется.

Если я установлю current_method=1 , только одна грань будет текстурирована правильно, это неверный вывод.

Нет, это не неправильный вывод. Это совершенно правильный вывод. Вы никогда не устанавливали свое состояние конвейера с фиксированной функцией для выполнения какого-либо мультитекстурирования (подробности см. В ответе @Dietrich Epp). То, к чему настроен ваш конвейер рендеринга, это просто:

  • возьмите значение цвета цвета вершины для каждого фрагмента (который вы никогда не устанавливали, iirc по умолчанию - белый)
  • выборка текстуры, которая в настоящее время привязана к единице текстуры 0, с интерполированными координатами текстуры для каждого фрагмента для набора координат текстуры 0
  • смешайте результаты вместе, используя альфа-канал текстуры (режим GL_DECAL )
  • используйте это как окончательный цвет фрагмента.

Итак, ясно, что вы никогда не увидите ничего от текстур, связанных с текстурными единицами> 0. Так что же вы видите?

Когда current_method==0 , вы видите, что ожидаете.

Если current_method==1 , вы видите один образец , взятый из первой текстуры - который все время привязан к единице 0. Поскольку вы не устанавливаете никакие текс-координаты для единицы 0, GL просто повторяет самое последнее установленное значение, которое является (0,1) для последней вершины вашего первого лица. Это, конечно, будет использоваться для всех вершин новых граней, поэтому интерполяция даст постоянное значение, что приведет к постоянному результату выборки текстуры, в результате чего будет получен постоянный цвет.

Теперь с current_method=2 у вас все еще есть первая текстура, связанная с текстурой 0 для всех граней. Но так как вы теперь предоставляете правильные текстовые координаты для каждой вершины для текстурного блока 0 снова, выборка на самом деле снова приведет к выборке текстуры в разных областях, так что вы получите правильное отображение этой текстуры на примитивы.

Читайте также: