Комплект разработчика Вердж3Д

Комплект разработчика «Вердж3Д» (англ. Developer Kit, DevKit) — это набор примеров, инструментов и исходного кода, которые поставляются с корпоративными версиями «Вердж3Д». Этот набор поможет вам выполнять различные задачи разработчика, такие как:

Комплект разработчика предназначен для опытных программистов, желающих изучать или модифицировать движок. Он не нужен для создания приложений «Вердж3Д» со стандартным набором функций (с помощью пазлов или «Ява Скрипта»).

Установка и настройка

Скачайте архив DevKit из раздела загрузок вашей учетной записи. Распакуйте этот архив в выбранную вами директорию.

Если вы собираетесь собрать движок «Вердж3Д» или редактор пазлов из исходного кода, вам понадобится утилита npm, которая является частью среды разработки Node.js. Вы можете установить ее с помощью этих инструкций.

Структура комплекта разработчика

DevKit включает следующие папки:

Папка DevKit Описание
addons/verge3d Исходный код расширения для «Блендера» («Вердж3Д для Блендера» или «Вердж3Д Максимальная»).
build Готовые скрипты движка «Вердж3Д» и дополнительные модули (ammo.js и т.д.).
ktx Исходный код модуля текстурной компрессии.
max_plugin Исходный код плагина для «3дс Макса» («Вердж3Д для 3дс Макса» или «Вердж3Д Максимальная»).
maya_plugin Исходный код плагина для «Майи» («Вердж3Д для Майи» или «Вердж3Д Максимальная»).
puzzles Собранные скрипты и исходный код редактора пазлов.
python Python 3 и служебные модули.
python/maxPlugin Исходный код плагина для «3дс Макса» («Вердж3Д для 3дс Макса» или «Вердж3Д Максимальная»).
src Исходный код движка «Вердж3Д».
templates Шаблоны приложений «Вердж3Д».
utils Различные утилиты.
wordpress Исходный код плагина «Вердж3Д для Вордпресса» (написан на PHP).
xz Исходный код модуля сжатия XZ.

В папке build, DevKit предоставляет 4 варианта рантайма «Вердж3Д»:

v3d.js
Минифицированная (оптимизированная) версия, пригодная для большинства приложений. Этот рантайм предоставляет классы/функции/константы в виде глобального пространства имён v3d. Данная версия используется в диспетчере приложений и большинстве демо-приложений из магазина ассетов.
v3d.unminified.js
Неминифицированная (неоптимизированная) версия рантайма выше. Чтобы воспользоваться её, скопируйте данный файл в папку с приложением и переименуйте в v3d.js, заменяя существующий файл с тем же именем.
v3d.module.js
Минифицированная (оптимизированная) версия, предоставляющая ES6 модули вместо глобального пространства имён v3d.
v3d.module.unminified.js
Неминифицированная (неоптимизированная) версия рантайма выше.

Сборка «Вердж3Д»

Перед компиляцией «Вердж3Д», пожалуйста, убедитесь что вы установили npm, как описано выше.

После установки npm, перейдите в распакованную папку с DevKit и выполните следующую команду для установки зависимостей:

npm install

Чтобы скомпилировать неоптимизированный билд «Вердж3Д», что хорошо подходит для целей тестирования и отладки, выполните следующую команду в директории DevKit:

npm run build

Вы можете найти скомпилированные модули в директории build вашего DevKit. Чтобы протестировать их работу, просто скопируйте модуль движка v3d.js в папку с вашим приложением, например:

cp build/v3d.js APPS_FOLDER/my_awesome_application

Чтобы скомпилировать оптимизированную версию «Вердж3Д» (она же релизная версия), выполните следующую команду в директории DevKit:

npm run build-release

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

npm run build-puzzles

Чтобы собрать оптимизированную версию, выполните команду:

npm run build-puzzles-release

Скомпилированный скрипт редактора пазлов находится в директории puzzles вашего DevKit. Чтобы применить его к «Вердж3Д», скопируйте все содержимое этого каталога в каталог puzzles в вашей директории «Вердж3Д» (заменяя уже существующие там файлы).

Активация модуля движка

Для подписывания скомпилированного модуля движка лицензионным ключом, используется утилита keymanager.py, расположенная в папке utils (требуется установленный «Питон»):

./keymanager activate ../build/v3d.js XXXXXXXXXX

Где XXXXXXXXXX — ваш лицензионный ключ. Поскольку утилита не выводит никакой информации в случае успеха или неудачи, убедитесь, что активация прошла успешно, скопировав модуль движка в какое-нибудь приложение и проверив что водяной знак MADE WITH VERGE3D TRIAL больше не выводится.

Добавление нового метода в «Ява Скрипт» API

Допустим, вы хотите добавить еще один метод в класс App. Например, метод printHelloWorld() должен вывести что-то на консоль браузера:

App.printHelloWorld()

Класс App реализован в модуле, расположенном по адресу src/extras/App.js Откройте его и добавьте следующий код в конец файла, прямо перед закрывающими скобками класса App.

printHelloWorld() { console.log('Привет, Мир!'); }

Соберите и скопируйте рантайм «Вердж3Д» v3d.js пазлов в папку с приложением. Чтобы протестировать новый метод, откройте браузерную консоль и введите:

v3d.apps[0].printHelloWorld()

Проверьте что строка "Привет, Мир!" выводится строчкой ниже.

Добавление нового класса в «Ява Скрипт» API

Чтобы дополнить API «Вердж3Д» каким-либо пользовательским классом, создайте .js файл с именем вашего класса в соответствующем подкаталоге папки src DevKit (например, src/extras/MyAwesomeClass.js). В этом .js-файле реализуйте свой класс - вы можете вдохновиться уже существующими классами. Наконец, зарегистрируйте свой класс в глобальном пространстве имен v3d, добавив следующую строку в файл src/v3d.js:

export { MyAwesomeClass } from './extras/MyAwesomeClass.js';

Соберите и скопируйте среду выполнения «Вердж3Д» v3d.js в ваше приложение и попробуйте воспользоваться новым классом в консоли браузера.

const myAwesomeStuff = new v3d.MyAwesomeClass(); myAwesomeStuff.whatEver();

Добавление новых пазлов

Чтобы создать собственный блок пазлов, отредактируйте файл puzzles/src/puzzles_blocks.js Вы можете вдохновиться уже существующими пазлами. Зарегистрируйте его в соответствующей категории панели инструментов в верхней части файла.

Соберите и скопируйте среду выполнения пазлов в папку с установленным «Вердж3Д». Теперь вы должны найти свой новый пазл в панели инструментов редактора пазлов.

Вместо редактирования файла puzzles_blocks.js, вы можете оформить ваш код в виде плагина, что сделает его более универсальным.

Удаление строки с версией «Вердж3Д» из браузерной консоли

Каждый раз при запуске «Вердж3Д»-приложения пользователь может наблюдать следующую строку в браузерной консоли:

Строка содержит информацию о версии рантайма «Вердж3Д», о статусе лицензирования, а также об используемой версии WebGL.

Если по каким-то причинам вывод данной информации нежелателен, вам потребуется модифицировать исходники движка. Откройте файл src/renderers/WebGLRenderer.js. Найдите следующую строку:

const PRINT_VERGE3D_LINE = true;

и установите данную константу в false:

const PRINT_VERGE3D_LINE = false;

Соберите и скопируйте рантайм «Вердж3Д» v3d.js пазлов в папку с приложением. Убедитесь, что строка с версией больше не выводится.

Добавление поддержки новых платформ и архитектур

«Вердж3Д» является кроссплатформенным программным обеспечением и может быть запущен на любой платформе, способной запустить «Блендер», «3дс Макс» или «Майю». Тем не менее, встроенные glTF-экспортеры требуют наличия утилиты текстурной компрессии toktx (часть набора программ KTX texture compression tools).

Дистрибутивы «Вердж3Д» поставляются с уже собранной утилитой для большинства платформ: «Виндоус» (Интел 64 бита), «Мак ОС» (Интел 64 бита и «Эпл Силикон»), «Линукс» (Интел/АРМ 64 бита) и «Хром ОС» (Интел/АРМ 64 бита). Для других, например «Виндоус АРМ», «БСД»-системы, «Лунгсон»/«Лунгарч»», «Распберри ПИ», «РИСК-5» и т.д., вам может потребуется собрать набор программ KTX вручную, с помощью инструкций, указанных здесь (англ.).

После сборки и проверки утилиты toktx, поместите её в папку ktx/АРХИТЕКТУРА внутри установочной папки «Вердж3Д». Замените значение АРХИТЕКТУРА на имя нужной платформы. Чтобы узнать это имя, запустите простой «Питон»-скрипт, расположенный в папке ktx комплекта разработчика «Вердж3Д»:

./show_arch.py

для систем «ЮНИКС» или

python show_arch.py

для систем «Виндоус».

Остались вопросы?

Задайте их на нашем форуме!