Autodesk 3ds max 2021 sdk что это
Рассматривается технологическая цепочка создания плагина 3ds Max в среде Microsoft Visual Studio с употреблением 3ds Max SDK и языка программирования C++. Также реализуется MAXScript-версия плагина. Предоставляемый материал – это лишь начальная точка на пути освоения техники разработки 3ds Max SDK-плагинов.
Плагин – это программный модуль, подключаемый к основной программе и либо реализующий часть функционала основной программы, либо расширяющий ее возможности.
Так, в 3ds Max к первой группе плагинов относятся стандартные плагины, хранящиеся в папке stdplugs и загружаемые при запуске приложения. Их список отображается в приведенном на рис. 1 диалоге Plug-in Manager (меню Customize – Plug-in Manager).
Рис. 1. Plug-in Manager
Эти плагины, их около 350, реализуют значительную часть функционала 3ds Max. Например, плагин prim.dlo обеспечивает создание стандартных примитивов, сплайнов и стандартных источников света.
Прочие, нестандартные плагины предпочтительнее размещать в других папках и загружать по мере необходимости.
3ds Max SDK (Solution Development Kit, инструментарий разработчика) имеется в профессиональной версии 3ds Max и содержит заголовочные и библиотечные файлы, обеспечивающие доступ к классам и другим данным 3ds Max. Кроме того, в поставке имеется помощник и большое число примеров.
Плагин 3ds Max может быть написан на языке MAXScript и на языке C++ с употреблением 3ds Max SDK.
В первом случае плагин создается в среде 3ds Max, а во втором – в среде Microsoft Visual Studio.
Во многих случаях MAXScript может обеспечить такой же функционал, как и SDK. Однако скорость SDK-плагинов выше.
SDK-плагин – это откомпилированный и собранный dll-файл C++ (DLL, Dynamic Linked Library, динамически подключаемая библиотека). Рекомендованное расширение файла зависит от назначения плагина. В стандартной поставке 3ds Max плагины, оперирующие материалами и их картами, имеют расширение DLT, а плагинам, создающим объекты, дается расширение DLO, плагины-модификаторы выделяются расширением DLM и так далее.
Поставка 3ds Max SDK включает помощник создания плагинов Plug-in Wizard. Он поддерживает (или планирует поддерживать) создание около 40 следующих видов плагинов (в скобках указывается стандартное расширение):
- Anti-Aliasing Filters – фильтры, сглаживающие изображение (DLK);
- Atmospheric – атмосферные эффекты (DLV);
- Cameras – камеры (DLO);
- Color Selector – выбор цвета (DLU);
- Construction Grid Objects – создание сеточных объектов (DLO);
- Controllers – контроллеры (управляющие элементы, DLC);
- File Export, File Import и File List – экспорт, импорт и список файлов (DLE, DLI);
- Global Utility Plug-Ins – глобальные утилиты (GUP);
- Helper Objects – помощники (DLO);
- IK Solvers – решатели инверсной кинематики (DLC);
- Image Filter / Compositor – фильтры (редакторы) образов (FLT);
- Image Loader / Saver – загрузка и сохранение образов (BMI);
- Image Viewer – просмотр образов (DLF);
- Lights – источники света (DLO);
- Manipulators – манипуляторы (DLO);
- Materials – материалы (DLT);
- Modifiers – модификаторы (DLM);
- NURBS Objects – неоднородные рациональные сплайны Безье (DLO);
- Particle Systems / Effects – системы частиц и эффекты на основе частиц (DLO);
- Patch Objects – патчи (кусочные объекты, DLO);
- Procedural Objects – процедурные объекты, например стандартные примитивы (DLO);
- Renderer – воспроизведение изображения (DLR);
- Rendering Effects – эффекты при воспроизведении изображения (DLV);
- Samplers – образцы (DLH);
- Shaders – шейдеры (определяют цветовые характеристики объекта, DLB);
- Shadow Generator – генераторы теней (DLO);
- Skin Deformer Gizmo – контейнеры модификаторов кожи (DLM);
- Sound Plug-ins – звуки (DLO);
- Space Warps – пространственные деформации (DLM);
- Textures 2D, Textures 3D – двумерные и трехмерные текстуры (DLT);
- Track View Utility – утилиты обозревателя дорожек (DLU);
- Utility – утилиты (DLU).
После уяснения задачи написание SDK-плагина, как правило, предполагает создание надлежащего интерфейса пользователя и реализацию намеченных процедур. Например, плагин gSphere.dlo обеспечивает приведенный на рис. 2 интерфейс и программно поддерживает соответствующую реакцию приложения на предусмотренные интерфейсом действия.
Рис. 2. Пользовательский интерфейс плагина gSphere.dlo
При разработке SDK-плагинов каждая версия 3ds Max предполагает использование соответствующей версии Microsoft Visual Studio, что отражено в следующей таблице:
Эффективность рабочего процесса
Smart Extrude
- Поддержка модификатора Edit Poly. Smart Extrude расширили для модификатора Edit Poly, сохранив те же функциональные возможности и добавив возможности, которые понравились пользователям в реализации Editable Poly. Расширение Smart Extrude позволяет получить дополнительные преимущества от метода моделирования произвольных форм и дополнить рабочие процессы полигонального моделирования.
- Реализация Cut Through. Функция Smart Extrude, впервые представленная в 3ds Max 2021.2, позволила художникам выполнять Extrude с меньшим количеством ограничений в процессе моделирования. Cut Through еще больше расширяет эту функциональность, повышая удобство экструдирования.
- При выполнении Smart Extrusion внутрь или наружу (Shift + LMB на Edit Poly или Editable Poly) нужный результат будет получен автоматически за счет добавления, объединения или удаления создаваемых face, учитывая исходный mesh. Это усовершенствование позволит вам свободно создавать унифицированную геометрию сетки, расширяя возможности полигонального моделирования в 3ds Max.
Slice модификатор
Эти улучшения и новые функции мощно дополняют рабочие процессы 3ds Max, сокращая количество операций обработки данных для инструментов Autodesk Retopology.
- Capping: открытые отверстия, созданные с помощью функции Slice, теперь можно закрывать по краям границ на объектах Mesh и Poly.
- Multi-Axis Cutting: добавлена возможность выполнять выравнивание по X, Y и/или Z планарного среза сетки в зависимости от положения гизмо-среза с помощью одного модификатора.
- Radial Slice: новая операция радиального среза позволяет контролировать результаты резки на основе набора минимальных и максимальных значений, определяемых пользователем.
- Alignment options: быстрое выравнивание режущего гизмо по граням объекта или создание ссылки на другой анимируемый объект в сцене.
Extrude модификатор
Увеличена скорость первоначального расчета операции Extrude и пересчета результата при изменении параметра amount. Это позволяет за считанные секунды создавать сложные сплайны, на обработку которых раньше уходили минуты.
Symmetry модификатор
Модификатор симметрии включает в себя новые функции и усовершенствования, которые улучшают процессы моделирования и ретопологии в 3ds Max.
- Multi-Axis Symmetry: Planar symmetry была обновлена, X, Y и/или Z симметрии доступны на Symmetry гизмо.
- Radial Symmetry: Новая функция радиальной симметрии позволяет быстро дублировать и повторять геометрию вокруг центра гизмо.
- Alignment опции: Выровняйте симметрию гизмо по face объекта или reference другой анимируемый объект в вашей сцене.
AutoSmooth
Операции AutoSmooth, которые используются для сглаживания меша, были обновлены, чтобы генерировать новые данные сглаживания быстрее, независимо от того, сглаживаете ли вы тысячи или миллионы граней. Это поможет вам при настройке сглаживающих данных на таких объектах, как Mesh, Poly или Spline.
Relax модификатор
Модификатору Relax добавили опцию Volume Preserve. Когда она активна, алгоритм Relax будет выполнять дополнительные вычисления, чтобы отфильтровать мелкие детали и шумы из моделей, сохраняя при этом форму и определение общей сетки модели, к которой был применен модификатор.
Эта функция особенно полезна при работе с данными, содержащими большое количество нежелательных мелких или микроповерхностных деталей, как это бывает на Scan- и Sculp-данных. Предварительное сокращение таких шумов поможет сократить время вычислений при последующем использовании инструментов Autodesk Retopology Tools for 3ds Max.
Загрузите и установите 3dsMax и SDK
Точка3dsMax Просто войдите на эту страницу для загрузки и переходите к следующему шагу.
Нажмите здесьИнструменты и утилиты для установкиВы также можете скачать SDK
точкаАдрес загрузки 3dsMax SDKПерейдите на эту страницу, чтобы скачать
Тогда просто переходите к следующему шагу
3. Когда все будет установлено, в соответствующей папке появятся эти две новые папки.
Интеллектуальная рекомендация
Улучшения Viewport
- параметры отображения viewport’а могут быть сохранены в preset’ы;
- Ambient Occlusion всегда отображается при манипулировании во viewport’е;
- поддержка roughness для Physical Material;
- тени включены по умолчанию.
Безопасность
Вы будете получать уведомление всякий раз, когда новая версия инструментов безопасности станет доступна в Autodesk App Store.
Инструменты для разработчиков
Совместимость плагинов с 3ds Max 2020 и форматом Plugin Package.
- 3ds Max 2021 поддерживает плагины, скомпилированные для 3ds Max 2020;
- формат Plugin Package теперь поддерживает AMG- и OSL-шейдеры, а также Scene Converter extensions;
- формат Plugin Package упрощает разработку и размещение плагинов на Autodesk App Store.
Уже сейчас вы можете обновить свой 3ds Max и испытать в работе все нововведения. Делитесь впечатлениями в нашей официальной группе и всегда оставайтесь на связи с единомышленниками!
Улучшения, вошедшие в последнюю версию 3ds Max, работают на повышение производительности, включают простые в использовании инструменты, обеспечивают безопасное и надежное пространство для работы и хранения ваших проектов. В этом обзоре познакомимся с новыми возможностями Arnold, функцией Bake to Texture и инструментами для моделирования, способными качественно улучшить творческий процесс.
Substance
Новый тип карты Substance2, улучшение производительности и множество новых возможностей:
- обновление до актуальной версии Substance engine для нативной поддержки SBSAR-файлов;
- поддержка текстур до 8К;
- поддержка всех рендеров, поставляемых с 3ds Max: Arnold, Scanline, Quicksilver, ART;
- новые настраиваемые инструменты для автоматического назначения Substance на определенный шейдер в 3ds Max или для запекания карт в файлы.
Заключение
Создание дополнительного инструмента 3ds Max – это достаточно трудоемкая работа. Поэтому должна быть серьезная мотивация для ее выполнения. Например, наличие идеи расширения функционала 3ds Max, интересной широкому кругу пользователей приложения. Удачное расширение может быть либо направлено Autodesk и затем включено в состав его стандартной поставки, либо тиражироваться как самостоятельное решение на условиях, приемлемых и для разработчика, и для потребителя.
При реализации расширения у разработчика имеется выбор между MAXScript и 3ds Max SDK.
nata73
Просмотр профиля
Pamir
Просмотр профиля
nata73 - а зачем тебе это.
Вообще-то SDK - это self development kit - "пакет саморазработчика", а проще говоря програмный набор для самотоятельного написания своих модулей.
Allocer
Просмотр профиля
Вот только не Self, а Software Documentation Kit.
А нужен он, если вы не любите МАКСскрипт и больше доверяете старому доброму С++. Ну, или если зарабатываете на скромную жизнь программиста разработкой коммерческих плагинов (хотя, если посмотреть на суммы доходов CHAOS Software (они написали VRay), то понимаешь, что жизнь не такая уж и скромная. )
nata73
Просмотр профиля
дело в том, что у меня полетел макс6 и пришлось переставлять, при инсталяции все (архитектура, character studio и т.д.) стояло в инсталяции, а SDK в разделе "Remove" ну я оставила как есть, но хотела знать важно ли это?
как я понимаю для начинающего в максе SDK не нужен, спасибо за ответы!
Pamir
Просмотр профиля
На лицевой стороне написано: Недавно, благодаря проекту, мы начали изучать содержимое 3dsMax-SDK, поэтому первое, что нам нужно сделать перед программированием, - это создать среду.
1. Основная функция 3dsMax-SDK - позволить программистам использоватьC ++ расширяет функции, возможности и интерфейсы 3ds Max. В частности, он содержит богатый набор абстрактных классов (интерфейсов) и библиотек C ++. Некоторые интерфейсы, предоставляемые 3ds Max, предоставляют дополнительные службы для облегчения использования 3ds Max. Эти службы обычно называются 3ds Max «Core».
2. Другие интерфейсы должны реализовывать службы своего подключаемого модуля, чтобы он работал в 3ds Max, и подключаемый модуль также должен быть связан с библиотекой 3ds Max SDK.
3. 3ds Max SDK не полагается на сторонние библиотеки, за исключением различных стандартных API Microsoft Windows, необходимых для разработки приложений для последней версии операционной системы Microsoft Windows. Версия SDK развивается с развитием каждой версии 3ds Max. Поскольку это объектно-ориентированный SDK с абстрактными классами C ++ и предоставляет виртуальные методы, некоторые изменения могут привести к несовместимости двоичных файлов SDK с надстройками, созданными для более ранних версий SDK. Следовательно, 3ds Max SDK управляется версиями, что позволяет 3ds Max обнаруживать плагины, созданные с несовместимыми версиями SDK. Плагины, бинарно несовместимые с некоторыми версиями 3ds Max, необходимо перекомпилировать с соответствующей версией SDK.
На приведенной выше схеме архитектуры показана взаимосвязь между основными функциями 3dsmax, SD и подключаемых модулей.
Из-за проблем с совместимостью версий я попробовал несколько словосочетаний и выбрал одно, на котором я хотел бы сосредоточиться.
Мы можем видеть соответствие версий между программным обеспечением, рекомендуется загрузить в соответствии с рекомендованной версией, которую он дал, я использовал рекомендацию в среднем красном поле.
Добавить содержимое:
Найдите эти функции в файле project.cpp:
Я столкнулся только с одной проблемой после установки официально рекомендованной версии:
Свойства (Properties) проекта Cube
Практически все свойства проекта Cube будут установлены помощником. Наша задача просмотреть эти свойства и внести незначительные коррективы.
На вкладке Solution Explorer расположится дерево решения (рис. 11).
Рис. 11. Дерево решения Cube
Первый заголовочный файл 3dsmaxsdk_preinclude.h удален, а файл cube.h приведен к следующему виду:
Рис. 12. Добавление конфигурации Hybrid
Далее все настройки будут выполнены для этой конфигурации.
Ветвь Configuration Properties – General после внесенных изменений будет содержать следующие сведения (рис. 13):
Рис. 13. Ветвь Configuration Properties – General
Переместимся в ветвь C++ – General. В поле Additional Include Directories проверим путь к include-директории 3ds Max SDK:
"C:\Program Files\Autodesk\3ds Max 2009 SDK\maxsdk\include"
В вашем случае путь может быть иным. Если путь содержит пробелы, то его нужно заключить в кавычки.
Прочие поля диалога оставим без изменений. Нажмем на кнопку Применить.
В ветви C++ – Command Line поле Additional options (дополнительные опции) вставим следующие значения:
/GR /we4706 /we4390 /we4557 /we4546 /we4545 /we4295 /we4310 /we4130 /we4611 /we4213 /we4121 /w34701 /wd4244 /wd4018
Они взяты из файла AdditionalCompilerOptions.txt, имеющегося в поставке 3ds Max SDK. Применить.
Имя выходного файла (создаваемого плагина) найдем в ветви Linker – General – Output File. В рассматриваемом примере помощник указал имя C:\sdk\cube.dlo.
Проверим путь к SDK библиотекам (Additional Library Directories):
"C:\Program Files\Autodesk\3ds Max 2009 SDK\maxsdk\lib"
Если путь имеет пробелы, то его следует заключить в кавычки. Применить.
Прочие значения свойств проекта оставим без изменений.
Измените 3dsmaxPluginWizard.vsz
Щелкните файл, чтобы открыть каталог maxsdk, установленный выше, найдите папку с инструкциями, а затем папку 3dsmaxPluginWizard, откройте файл 3dsmaxPluginWizard.vsz и измените два места.
Версия неверна, измените версию, а затем измените абсолютный путь на собственный путь к папке 3dsmaxPluginWizard maxsdk.
Основные характеристики примитива
Создаваемый куб имеет следующие особенности:
- имя класса в 3ds Max – Cube;
- число вершин – 8;
- число треугольных граней – 12;
- имеет невидимые диагональные ребра (если взять сторону куба);
- базовая точка расположена в центре куба;
- группы сглаживания сформированы по аналогии с примитивом Box;
- индекс материала всех граней равен 1;
- имеет UVW-координаты;
- может быть преобразован в Editable Mesh, Editable Poly или Editable Patch;
- может быть тиражирован всеми доступными способами (Copy, Instance или Reference);
- объект можно анимировать по его размеру (по параметру Size).
Файл resource.h
Сохраним все изменения и убедимся, что этот файл содержит, кроме прочих, следующие данные (значения идентификаторов могут быть иными):
Иными словами, файл должен содержать идентификаторы таблицы символов и диалогов ресурса. Прочие определения из файла могут быть удалены.
Чтение и запись сцен
Теперь время сохранения файлов сцен с очень большим количеством ассетов сократилось до 50%.
Создать плагин
Установите некоторую подробную информацию о плагине, включая имя класса, имя базового класса, каталог и описание и т. Д.
Мы тестируем и используемFile ExportЭкспортируйте файл и нажмите Далее.
- Во-первых, путь к 3dsmaxsdk устанавливается в папку maxsdk пути установки SDK;
- Путь вывода - это путь вывода плагина, рекомендуется этот каталог.
- Путь к 3dsmax - это путь установки 3ds Max 2014.
Загрузка и вызов плагина
Созданный плагин, файл cube.dlo следует загружать в начале сеанса работы с 3ds Max, открыв меню Customize – Plug-in Manager – табличная часть диалога – правая кнопка мыши – Load New Plug-in – найти загружаемый файл.
Загруженный плагин доступен в командном окне: вкладка Create – Geometry – SDK simple object (рис. 22).
Рис. 22. Вызов плагина Cube
Если загружать плагин не вначале сеанса, а позже, то может возникнуть указанная на рис. 23 ошибка.
Рис. 23. Ошибка инициализации плагина
Связанная конфигурация
Рекомендации компьютерной системыWin10Если это win7, вам необходимо скачать Service Pack 1.
Предложение VSИздание 2015 г.По сравнению с версиями VS, такими как 2017 и 2019, путь к файлу ближе к официальной версии.
Содержимое загрузки Qt такое же
Выпекать до консистенции
Прямолинейный, интуитивный и полностью скриптуемый процесс запекания текстур с поддержкой PBR (Physically Based Rendering), Overrides и OSL.
- в Arnold добавлены Roughness и Metalness maps;
- осуществлена поддержка MikkT Normal maps;
- New baked element map override позволяет использовать OSL и процедурные текстуры;
- инструменты для настройки параметров бэйкинга расположены удобно и последовательно;
- процесс бэйкинга можно кастомизировать и автоматизировать при помощи скриптов.
Модернизация
Моделирование
Chamfer modifier теперь можно применить, выбрав vertex, edge или face в режимах Edit Poly modifier и Editable Poly.
- сохраняет UV, генерируя новый;
- добавлены типы Uniform, Radial и Patch;
- добавлены настройки Edge Depth, End Bias, и Radial Bias для тонкой настройки.
Weighted Normals modifier автоматически генерирует нормали на объекте таким образом, чтобы минимизировать артефакты при освещении объектов. Существуют следующие опции:
- возможность выбрать алгоритм генерации нормалей: Area, Angle или Largest Face weight;
- возможность генерировать hard edge normals по заранее заданным Smoothing Groups, UV seams и Edge Angle;
- управляемый smoothing/blending результата с исходным mesh’ем.
Installer
Переработанные онлайн- и оффлайн-процессы установки стали более быстрыми и простыми для пользователя.
- теперь для установки 3ds Max требуется меньше кликов;
- тестирование показало ускорение установки до 50%, но результаты могут разниться в зависимости от технических характеристик компьютера и скорости интернет-соединения;
- уведомления внутри 3ds Max предложат пользователю установить отсутствующие или опциональные компоненты.
Удобная работа
Переключатель Kotlin
В Котлине нет оператора коммутатора, и это DESI. Способ Джавы: Котлин написание: .
Практика работы с регулярными выражениями
MAXScript реализация плагина
Одну и ту же задачу можно решить средствами 3ds Max SDK и MAXScript. Для иллюстрации этого положения реализуем прежде плагин создания куба на MAXScript, дав плагину имя CubeMS.
Программа содержит секцию (Rollout) params, обеспечивающую задание размера куба (счетчик Size). Значение счетчика связано с одноименным параметром, заданным в блоке Parameters.
Инструмент создания куба (мышка) задается блоком Tool Create. После выбора позиции (событие mousePoint с параметром click = 1) определяется часть Translation (перемещение) матрицы аффинных преобразований куба (nodeTM.Translation = gridPoint). Далее при нажатой левой кнопке мыши фиксируется ее перемещение в видовом порте; величина перемещения определяет размер куба.
После освобождения мыши сцена может принять очередной куб.
Родительским классом куба является класс SimpleObject. Класс куба имеет имя CubeMS.
Для получения идентификатора класса classID следует употребить имеющуюся в папке ..\Autodesk\3ds Max 20хх SDK\maxsdk\help программу gencid.exe (рис. 4).
Рис. 4. Генератор идентификатора класса плагина
Параметризованный куб создается обработчиком buildMesh в результате применения метода SetMesh, получающего массив arrVrts с координатами вершин примитива и массив его граней arrFcs. Размер куба определяется значением параметра Size. Сглаживающие группы и нормали куба заданы по аналогии с примитивом Box.
После копирования и запуска кода в MAXScript Editor, плагин будет доступен на вкладке Create – Geometry – Scripted Primitives (рис. 5).
Рис. 5. Вызов плагина CubeMS
Категория (Scripted Primitives) и положение элемента в командном окне определяются параметрами выражения Plugin. Так, класс SimpleObject указывает на принадлежность примитива к геометрическим объектам, понятно и назначение свойства Category.
После загрузки плагина кубом можно оперировать средствами языка MAXScript, например:
delete $*
cb = cubeMS size:40
animate on at time 100 (
cb.Size = 60
rotate cb 360 [0, 0, 1]
)
playAnimation()
Заметим, что созданный объект не имеет текстурных координат, поэтому при употреблении материала следует позаботиться о создании таких координат, например при помощи модификатора UVWmap:
delete $*
cb = cubeMS size:50
addModifier cb (UVWmap maptype:4 ui:on)
chk = checker()
chk.Coordinates.U_Tiling = chk.Coordinates.V_Tiling = 2
std = standard diffuseMap:chk showInViewport:true diffuseMapEnable:true
cb.Material = std
Файл ресурсов cube.rc
В этом файле создадим указанные на вышеприведенном рис. 7 диалоги Keyboard Entry и Parameters. Также отредактируем таблицу символов (String Table) с идентификаторами ресурса.
Перейдем в Visual Studio на вкладку Resource View. Откроем созданную помощником заготовку диалога IDD_PANEL, выберем форму диалога, в окне свойств изменим его идентификатор (свойство ID) на IDD_KBRD, а саму форму диалога приведем к следующему виду (рис. 14):
Рис. 14. Форма диалога IDD_KBRD
Этот диалог будет употреблен для ручного ввода примитива. Его размер 108*63 единицы (пикселя).
Свойства (ID и Caption) существующих в заготовке элементов (текст, поле ввода и счетчик) установим в соответствии с рис 15.
Рис. 15. Свойства элементов диалога IDD_KBRD
Ниже этих полей добавим кнопку класса CustButton (пользовательский класс). Это можно сделать, употребив инструмент Custom Control и приведя свойства (Caption, Class, ID и Style) добавленного элемента в соответствие с рис. 16.
Рис. 16. Добавление и настройка кнопки Create
Выделим теперь в дереве файла cube.rc ветвь IDD_KBRD, выполним ее копирование и вставку. Изменим идентификатор добавленного диалога на IDD_PARAMS (рис. 17), а его форму и свойства его элементов установим в соответствии с рис. 18.
Рис. 17. Добавлен диалог IDD_PARAMS
Рис. 18. Свойства элементов диалога IDD_PARAMS
Диалог IDD_PARAMS отражает текущее значение параметра Size и может быть, в частности, употреблен для изменения размера куба на вкладке Modify.
Откроем теперь таблицу символов ресурса и приведем ее в соответствие с рис. 19.
Рис. 19. Таблица символов ресурса cube.rc
Таблица символов содержит используемые плагином свойства ресурса (детали см. ниже).
В диалогах ресурса использованы следующие пользовательские элементы управления:
- Custom Edit control класса CustEdit;
- Custom Spinner Control класса SpinnerControl;
- Custom Button control класса CustButton.
Импорт SketchUp
Основываясь на отзывах пользователей, разработчики добавили следующие опции:
- возможность полностью пропустить импорт скрытых элементов из файла SketchUp;
- возможность переносить информацию о слоях из файла SketchUp и автоматически назначать импортированные объекты на соответствующие слои в 3ds Max.
Постановка задачи
Порядок разработки плагина рассмотрим на следующем примере: создать плагин, формирующий примитив куб (Cube).
Такой простой объект отвечает цели работы, заключающейся в демонстрации технологической цепочки разработки SDK-плагинов.
Примитив имеет один параметр Size, для управления которым используется редактируемое поле со счетчиком (рис. 3).
Рис. 3. Интерфейс плагина Cube
Как и другие примитивы, куб вводится в сцену мышкой с прижатой левой кнопкой.
Файл cube.def
Файл cube.def генерируется помощником. Он содержит имя dll-файла и используемые плагином виды определений (описание библиотеки, число классов, описание классов, версия библиотеки, инициализация и закрытие библиотеки):
LIBRARY cube.dlo
EXPORTS
SECTIONS
.data READ WRITE
При изменении в свойствах проекта имени библиотеки соответствующую правку нужно выполнить и в def-файле.
LeetCode 595. Big Countries
LeetCode 595. Big Countries тема There is a table World A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million. Write a SQL solution to output bi.
Мир стремительно меняется, требования и ожидания клиентов возрастают, а проекты становятся все более масштабными и сложными. Значит, необходимо совершенствовать рабочие процессы, чтобы соответствовать этим высоким стандартам.
Autodesk представляет обновленный 3ds Max версии 2021. При его создании разработчики сфокусировались на модернизации, производительности и удобстве работы. Компания предлагает совершенно новый подход к запеканию текстур, улучшенную работу с инструментами Substance и отображением материалов во Viewport’е, повышение скорости на всех этапах работы, от установки до рендеринга, а также 3ds Max Python 3!
Теперь поговорим подробнее об этих и других изменениях.
ProSound
Улучшена поддержка звуковых файлов:
- поддержка файлов 24bit .wav;
- поддержка частот семплирования 88.2kHz и 96khz;
- исправлена проблема со звуком, приводящая к воспроизведению звука на 50% громкости после кадра 100.
Создание нового проекта
Запустим Visual Studio и используем для создания проекта помощник 3ds Max Plug-in Wizard (см. рис. 6). В поле Name введем имя Cube, а в поле Location укажем, например, имя папки C:\sdk. Снимем флажок Create directory for solution. Нажмем на ОК и в открывшемся диалоге выберем Procedural Objects (процедурные объекты, рис. 8).
Рис. 8. Выбор вида плагина
Нажмем на Next и введем в появившемся диалоге указанные на рис. 9 значения.
Рис. 9. Детализация описания плагина Cube. В качестве базового выбран класс SimpleObject2
Нажмем на Next и в появившемся диалоге проверим наличие указанных на рис. 10 значений.
Рис. 10. Некоторые детали проекта
В поле MAXSDK path указан путь
C:\Program Files\Autodesk\3ds Max 9 SDK\maxsdk
а в поле 3dsmax.exe path указан путь
C:\Program Files\Autodesk\3ds Max 2009
Ваши значения могут быть иными.
Нажмем на кнопку Finish.
Не удалось открыть файл "core.lib":
Ошибка подключения к библиотеке времени выполнения, обычно из-за того, что каталог, содержащий эти файлы в дополнительном каталоге, не находит эти файлы, просто добавьте атрибут файла в папку Release библиотеки SDK lib. Причина в том, что Это путь «Отладка» максимального пакета SDK, указанный в «Дополнительном каталоге» коннектора.
Arnold как основной рендер
Компания предоставляет пользователям современный и высококачественный рендеринг прямо из коробки.
- 3ds Max 2021 поставляется с Arnold 6.0;
- осуществлена поддержка нового Bake to Texture workflow;
- новые скрипты Scene Converter позволяют преобразовать материалы V-Ray и Corona в Physical Material 3ds Max.
Создайте успешную структуру каталогов
Каталог проектаЭто примерно так:
Обычно нам нужно изменить имя проекта файла .cpp.
- .Project name .def: файл DEF описывает различные атрибуты файла DLL.
- DllEntry.cpp: этот файл включает реализацию функций, описанных в «Подключаемом модуле для начала работы с записью» (также объявленном в файле .def), а также функцию точки входа DLL (DllMain ()), которая необходима MS Windows. из всех DLL. VS вызовет эту функцию при загрузке библиотеки DLL, а также может вызывать эту функцию несколько раз в таких операциях, как рендеринг.
- Project .cpp: В качестве подключаемого модуля утилит, который мы используем, является расширением класса UtilityObj. Поскольку все функции-члены UtilityObj являются чисто виртуальными функциями, все эти функции должны быть реализованы так, чтобы подключаемый модуль можно было скомпилировать и загрузить в 3ds Max. Но мастер надстройки поможет нам сгенерировать часть кода, реализующего эти функции-члены.
Код плагина cube.dlo
С позиции пользователя код, в частности, должен решать две следующие задачи:
- создавать куб заданного размера после нажатия на кнопку Create;
- обеспечивать ввод в сцену куба посредством мыши.
Сгенерированное помощником решение включает два cpp-файла с исходным кодом – это DllEntry.cpp и cube.cpp. Первый файл содержит код, обслуживающий dll-библиотеку. Это файл в нашем случае практически не требует изменений:
- cube;
- cubeClassDesc;
- cubeKBDlgProc;
- cubeCreateCallBack.
На рис. 20 и 21 показаны иерархии классов, лежащих в основе классов cube и cubeClassDesc.
Рис. 20. Класс cube: иерархия родительских классов
Рис. 21. Класс cubeClassDesc: иерархия родительских классов
Приведенный код можно скопировать в созданный помощником проект Visual Studio. При этом следует копировать коды обоих файлов – и DllEntry.cpp, и cube.cpp.
Построение DLL осуществляется после нажатия на F7 (меню Build - Build Solution).
Скопируйте файлы в каталог VS
- После изменения следующих трех файлов сохраните, а затемУбрать галочку только для чтения атрибута файла, Иначе проект не может быть создан.
- Скопируйте эти три файлаПерейдите в каталог установки VSVC \ VCProjectsx. Мой - (C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcprojects).
Если у вас нет этого каталога или версия VS вышеC: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ VC. Либо чего-то не хватает, см. Флажок в VS2015. ,
Код файла cube.rc
Перейдем на вкладку Solution Explorer и просмотрим код файла cube.rc (выбрать имя cube.rc – правая кнопка мыши – View Code). Код должен, помимо прочих, содержать следующие определения:
// Dialog
//
IDD_KBRD DIALOGEX 0, 0, 108, 63
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
IDD_PARAMS DIALOGEX 0, 0, 108, 48
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
…
// String Table
//
STRINGTABLE
BEGIN
После просмотра окно с кодом следует закрыть, чтобы не создавать препятствий для работы с ресурсом на вкладке Resource View.
Написание скриптов с Python 3
Autodesk инвестирует в улучшение поддержки Python, чтобы предложить разработчикам и техническим художникам современный инструмент для интеграции 3ds Max в пайплайн.
- 3ds Max 2021 поставляется с Python 3 и улучшенным pymxs API, который предоставляет доступ ко всем функциям 3ds Max;
- интеграция PySide2 позволяет разработчикам создавать универсальные пользовательские интерфейсы, которые легко работают в 3ds Max;
- 3ds Max полностью поддерживает стандартные библиотеки Python 3, расширяя охват и мощь инструментов, которые может создать пользователь.
Порядок создания 3ds Max SDK-плагина
После разработки проекта плагина и оформления проекта, например, в виде технического задания запускается Microsoft Visual Studio, где и выполняются все последующие действия.
В проекте SDK-плагина полезно указать следующие характеристики:
Интерфейс пользователя, предоставляемый плагином, сформируем в соответствии с рис. 7, добавив возможность ручного ввода (Keyboard Entry) примитива Cube.
Рис. 7. Уточненный пользовательский интерфейс плагина
При вводе посредством нажатия на кнопку Create центр куба будет размещен в начале мировой системы координат.
Создадим теперь в Microsoft Visual Studio проект C++ Win32, компиляция и сборка которого (Compile and Link) обеспечат создание запрошенного плагина.
Проект создается как многониточная библиотека (Multy-threaded DLL). Используется гибридная (Hybrid) конфигурация, пригодная и для отладки (Debugging), и для построения готового решения (Solution).
Посмотреть руководство 3dnmax
После открытия VS вы можете увидеть мастер, создав новый проект -> проект.
Производительность
FBX
- теперь в пользовательском интерфейсе есть возможность экспортировать только анимацию в FBX;
- добавлена поддержка экспорта в FBX Shell-материала – оригинальный материал, до бэйкинга;
- наряду с поддержкой Physical Material, FBX поддерживает импорт и экспорт OSL-нод;
- Post-Sampling key reduction можно отключить скриптом – функция может быть полезна при импорте данных анимации, которые могут значительно измениться в результате ресемплинга.
Physically Based Rendering (PBR)
В 3ds Max 2021 добавлены несколько функций для упрощения PBR workflow. Изменения включают отображение во viewport’е, при рендеринге и при работе с движками реального времени.
- универсальный Physical Material используется по умолчанию, вне зависимости от выбранного рендера;
- добавлены новые PBR-материалы для работы с движками;
- поверхности с назначенным Physical Material отображаются во viewport’е максимально приближенно к тому, как они будут визуализированы в движках;
- поддержан экспорт/импорт Physical Material в FBX-формат.
Настройка помощника Plug-in Wizard
Необходимые для использования помощника файлы расположены в папке MAXSDK\Howto\3DSMaxPluginWizard.
Откроем в текстовом редакторе имеющийся в этой папке файл 3dsmaxPluginWizard.vsz и определим в нем следующее значение параметра:
Param="ABSOLUTE_PATH = C:\Program Files\Autodesk\3ds Max 2009 SDK\maxsdk\howto\3dsmaxPluginWizard"
То есть укажем полный путь к папке с файлами помощника. Сохраним изменения и закроем файл.
Оставаясь в этой папке, скопируем три следующие файла:
- 3dsmaxPluginWizard.ico;
- 3dsmaxPluginWizard.vsdir;
- 3dsmaxPluginWizard.vsz
и вставим их в VC/vcprojects директорию установки Microsoft Visual Studio (это может быть C:\Program Files\Microsoft Visual Studio 5\VC\vcprojects).
Этого достаточно, чтобы 3ds Max Plug-in Wizard оказался доступным как шаблон в Microsoft Visual Studio.
Проверим это, запустив Visual Studio и выбрав File > New:Projects > Visual C++ > 3ds Max Plug-in Wizard (рис. 6).
Рис. 6. Создание проекта Visual C++ с помощью 3ds Max Plug-in Wizard
Сеть Внимания пирамиды для сегментации сегментации
Сеть Внимания пирамиды для сегментации сегментации Эта статья предлагает сковороду, предлагая функцию модуля привлечения пирамиды (FPA) и Global Module Atterty Upsample (GAU), вводящий очаговый ключ д.
TIDB Двоичного Источник чтение Чтение статья (7) Drainer сервер Введение
Автор: Хуан Jiahao В предыдущей статье вводится насос сервер, давайте познакомимся реализация Drainer сервера, главная роль Drainer сервера, чтобы получить Двоичный от каждого сервера насоса, и анализ.
OSL-материалы
Улучшенный пользовательский интерфейс и новые OSL-шейдеры, такие как:
- Color Correction;
- HDRI Environment;
- HDRI Lights;
- Float and Color Curves;
- Camera Projection;
- Object Projection;
- Spherical Projection;
- Uber Noise.
Доступное текстурирование и рендеринг
Рендеринг
- Новое окно конфигурации рендеринга: более быстрый, основанный на QT пользовательский интерфейс.
- Настройки рендеринга Quicksilver теперь основаны на QT, что обеспечивает более быструю работу. Настройки Bloom во вьюпорте теперь также синхронизированы с настройками Quicksilver.
- Viewport Ambient Occlusion sampling value в настройках конфигурации вьюпорта позволяет настроить качество просчета Ambient Occlusion.
Arnold
- ‘Auto-tx’ теперь можно использовать для автоматизации процесса конвертации текстур в формат .tx во время рендеринга.
- Imagers теперь можно применять, удалять, переупорядочивать и редактировать на специальной вкладке Arnold RenderView для последующей постобработки рендеринга без временных затрат.
- Light Mixer. Нода позволяет интерактивно редактировать вклад каждого light group AOVs в процессе и после рендеринга. С ней становится удобно контролировать освещение, используя при этом совсем немного времени. Максимальное количество light group AOVs было увеличено до 256.
- Bloom. В imager lens_effect добавили новый параметр. Bloom или Glow – это эффект постобработки, который размывает пиксели выше заданного порога, чтобы имитировать засветку ярких областей, как это происходит в реальной съемке.
- OptiX и Noice Denoiser теперь реализованы как imagers, что позволяет включать / выключать денойзер интерактивно при каждом рендеринге сцены.
Bake to Texture
Интерфейс Bake to Texture был упрощен, чтобы облегчить навигацию и выбор типов запеченных карт путем группировки элементов рендеринга под общими названиями карт. Теперь вам не нужно запоминать конкретное имя элемента в движке рендеринга, который вы используете для создания часто используемых типов карт, таких как color maps, normal maps, и других карт, совместимых с PBR. Bake to Texture теперь включает в себя несколько служебных карт, таких как Rounded Corners и Material ID. Ранее требовались дополнительные настройки материала перед бэйкингом.
Viewport
Переведите любое окно вьюпорта в полноэкранный вид без полей. При использовании Presentation Mode все гизмо будут скрыты. Чтобы перейти в полноэкранный режим презентации, используйте CTRL+Пробел.
Читайте также: