Опрос

Что такое, по вашему мнению, «демократия»?













Функциональные особенности

15.01.2010 11:44 Администратор
Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
Функциональные особенности
Страница 2

Поскольку интерфейс на основе C++ сложнее по сравнению с языком MEL, нетрудно предположить, что именно C++ API должен обеспечивать больше возможностей доступа и управления. Отчасти это так. Пользуясь интерфейсом на основе C++, можно создавать подключаемые модули и писать программы, обеспечивающие более тесную интеграцию с ядром Maya. Но все же неверно было бы полагать, что C++ API является надмножеством функций языка MEL. На самом деле, они дополняют друг друга. Существует определенный набор функций, к которым можно обратиться из MEL, но нельзя обратиться из C++ API, и наоборот. Так что при выполнении ряда задач разработчик не имеет выбора и должен сочетать использование обоих языков.

В действительности подобная практика весьма распространена и вы вполне можете встретить подключаемый модуль на C++, в котором иногда используются вызовы команд MEL. Однако чаще MEL обеспечивает достаточную функциональность, и написание модулей на C++ становится ненужным. Но такое не всегда возможно. Интерфейс на основе C++ обладает некоторыми функциями, которые просто не имеют аналогов в арсенале MEL. Только посредством C++ API вы можете создавать свои собственные узлы. Создание подобных узлов позволяет разрабатывать нестандартные инструменты, деформаторы, формы, шейдеры, локаторы, манипуляторы и т. д. К тому же MEL не позволяет описывать пользовательские команды, хотя и поддерживает создание процедур, действие которые подобно действию некоторых команд.

Независимо от того, какой интерфейс программирования вы выберете для разработки ядра своих функций, вам придется использовать MEL, когда вы приступите к работе с любым графическим интерфейсом пользователя, поскольку MEL - это единственное средство управления интерфейсом. К счастью, команды MEL можно выполнять из интерфейса C++ API. Межплатформенная переносимость Учитывая широкое распространение Maya на многих вычислительных платформах, важно решить, имеет ли значение возможность переноса программы. Если ваша разработка ограничена одной платформой, это становится не столь существенным. Однако если не забывать о повсеместном использовании смешанных платформ для обработки данных и рендеринга, то. пожалуй, было бы разумным подумать о возможных последствиях решения, принятого сегодня Язык MEL является интерпретируемым, поэтому он был разработан с расчетом на легкую переносимость на другие платформы.

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

При помощи MEL вы можете разработать интерфейс на одной из платформ и знать о том, что на других он будет выглядеть и работать аналогично. Хорошо известно, что разработка межплатформенных программных средств на C++ представляет трудности по целому ряду причин. Проблемы начинаются с того, что различные компиляторы C++ обладают собственными несовместимыми элементами. К тому же они в различной степени соответствуют стандарт)' ANSI C++. Наконец, не все компиляторы используют одни и те же стандартные библиотеки С. Применение только С++-классов Maya и библиотек, которые слабо зависят от других внешних наборов функций и расширенных свойств языка, должно облегчить разработку продуктов для нескольких платформ. В тех случаях, когда межплатформенная совместимость играет немаловажную роль, попытайтесь как можно больше функций написать на языке MEL.



Добавить комментарий


Защитный код
Обновить

Поиск

В закладку

 
 

Авторизация



Погода