Вопросы и ответы по Вердж3Д — Софт Эйт Софт
Description: Ответы на некоторые общие вопросы, касающиеся использования «Вердж3Д» и 3Д-веб-технологий.

# Вопросы и ответы

Ниже приведены ответы на наиболее часто встречающиеся вопросы по «Вердж3Д» и связанным с ним технологиям.

- Лицензирование и поддержка
  - Я купил «Вердж3Д». Как мне скачать версию без водяных знаков?
  - На сколько компьютеров можно установить «Вердж3Д»? Сколько пользователей могут использовать одну лицензию?
  - Каковы ограничения пробной версии «Вердж3Д»? Я могу сделать ... ?
  - Как мне получить техническую поддержку?
- Основные вопросы
  - Что такое WebGL?
  - В чем разница между WebGL и WebGPU?
  - Что означают выражения «на стороне клиента» и «на стороне сервера»?
  - Где я могу найти план разработки «Вердж3Д»?
  - Требуется ли мне подключение к интернету для работы с «Вердж3Д»?
  - Мое приложение не загружается, когда я открываю его в «Хроме», но оно работает при запуске из диспетчера приложений
  - Не удается загрузить приложение, когда я кликаю по файлу .html.
  - Могу ли я экспортировать свою сцену в HTML-файл?
  - Работают ли приложения «Вердж3Д» в «Интернет Эксплорер» 11?
  - Можно ли запустить диспетчер приложений без «Блендера», «3дс Макса» или «Майи»?
  - Как скопировать пазлы в другой проект?
  - Не воспроизводятся звуки в «Ай ОС»...
  - Мое приложение тормозит. Как мне увеличить его производительность?
  - Как открыть консоль браузера?
  - Приложение отлично работает в диспетчере приложений, но не работает при загрузке на удаленный сервер (например, в «Вердж3Д Нетворк»)
  - Как правильно переименовать приложение?
- Моделирование и создание контента
  - Что такое glTF?
  - В каких случаях следует использовать материалы, совместимые с glTF?
  - Какой 3Д-формат лучше, .gltf или .glb?
  - Я ничего не вижу, когда экспортирую свою сцену в «Вердж3Д».
  - Какие 3Д-форматы можно использовать в «Вердж3Д»?
  - Поддерживаются ли пакеты «Майя ЛТ» и «Майя Креатив»?
  - Есть ли планы по поддержке «Максон Синема 4Д»? «Скетчап»?
  - Как преобразовать модель «Солид Воркс» в WebGL с помощью вашего программного обеспечения?
  - Как создать интерактивную браузерную визуализацию на основе модели из «Ревита»?
- Электронная коммерция
  - Как мне сделать 3Д-конфигуратор с помощью «Вердж3Д», учитывая что мои навыки веб-разработки крайне ограничены?
  - Требуется создать 3Д-интернет-магазин с минимальным бюджетом. Что посоветуете?
  - Как мне сделать базовую систему CPQ (конфигурация, цена, предложение) с настраиваемыми продуктами, показываемыми в 3Д?
  - Имеется бюджет на разработку 3Д-сайта, но нет соответствующих компетенций. Что можете предложить в этом случае?
  - Я разработал платный «Вердж3Д»-плагин, как лучше организовать его продажи?
- Программирование с помощью пазлов
  - Какие пазлы стоит изучить в первую очередь?
  - Как защитить моё приложение паролем?
  - Как сделать управление от первого лица на мобильных устройствах?
  - Почему пазлы show/hide не работают для аннотаций?
  - Можно ли отключить (скрыть) луч/прицел в режиме виртуальной реальности?
- Вопросы по программированию
  - Совместим ли «Вердж3Д» с фреймворком «Три Джей Эс»?
  - Как рассчитать использование памяти текстурой?
  - Окно моего приложения бесконечно растет на устройствах «Ай ОС». Как это исправить?
  - Элементы управления с клавиатуры не работают для приложения, встроенного в iframe.

#

## Лицензирование и поддержка

#

### Я купил «Вердж3Д». Как мне скачать версию без водяных знаков?

После покупки (через несколько минут или часов в зависимости от вашего часового пояса) вам будет отправлено электронное письмо с лицензионным ключом. Скопируйте этот ключ и вставьте его в диалоговом окне Licensing Manager диспетчера приложений. Это сделает уже установленную копию «Вердж3Д» лицензионной и удалит водяной знак из ваших приложений.

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

#

### На сколько компьютеров можно установить «Вердж3Д»? Сколько пользователей могут использовать одну лицензию?

Лицензия назначается на человека («Фриланс») либо на организацию («Малый бизнес», «Корпоративная»). Количество установок не ограничено. В случае варианта «Фриланс» только один человек может использовать ПО «Вердж3Д». Для лицензий «Малый Бизнес», «Корпоративная» или «Максимальная» ПО может использовать до 5 разработчиков.

#

### Каковы ограничения пробной версии «Вердж3Д»? Я могу сделать ... ?

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

В частности, вы можете использовать «Вердж3Д» для ознакомления, оттачивания навыков работы, либо для показа предварительных результатов начальству внутри компании. Если вы работаете в образовательном учреждении, вам потребуется специальная лицензия, которую мы предоставляем со значительной скидкой (запросить тут). Также учтите, создание персонального портфолио не входит в число разрешённых применений пробной версии. В этом случае вам понадобится приобрести «Фриланс»-лицензию.

Посмотрите эту страницу для получения дополнительной информации о преимуществах и ограничениях пробной версии «Вердж3Д».

#

### Как мне получить техническую поддержку?

Услуга технической поддержки предоставляется вместе с корпоративными пакетами «Вердж3Д». Если у вас лицензия «Вердж3Д Фриланс» или «Малый Бизнес», воспользуйтесь форумом.

#

## Основные вопросы

#

### Что такое WebGL?

WebGL (англ. WebGL) — это технология для визуализации интерактивной 3Д-графики в браузерах. Графика отображается прямо на сайте, без необходимости что-либо устанавливать, причём неважно с какого устройства заходит пользователь: мобильного или настольного. Технология WebGL требует высокой квалификации и ресурсов для реализации рендеринга даже простейших моделей, в силу чего требует использования трёхмерных движков, таких как «Вердж3Д». Скрывая сложности и экономя время, «Вердж3Д» позволяет не-программисту (художнику, инженеру или преподавателю) с легкостью создавать интерактивные веб-приложения.

#

### В чем разница между WebGL и WebGPU?

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

Несмотря на то, что WebGPU призван стать низкоуровневой и более производительной альтернативой WebGL, для типичных случаев использования «Вердж3Д» данная технология не дает каких-либо существенных преимуществ. В настоящее время движок рендеринга «Вердж3Д» использует WebGL, но мы держим руку на пульсе и внимательно следим за разработкой WebGPU.

#

### Что означают выражения «на стороне клиента» и «на стороне сервера»?

В контексте веб-разработки термин «на стороне клиента» означает, что что-то происходит в браузере, работающем на устройстве пользователя. «На стороне сервера» означает, что что-то выполняется удалённо, на веб-сервере.

Если мы говорим о том, что «Вердж3Д» это клиентское решение, это означает, что ваше 3Д-приложение работает в браузере, поэтому для его запуска и работы не требуется серверное программирование или использование сторонних платформ. Это ключевая особенность «Вердж3Д», которая делает его таким простым в использовании. Однако, поскольку мы говорим о веб-разработке, наличие примитивной серверной инфраструктуры всё же потребуется. В большинстве случаев эта функциональность ограничивается передачей файлов приложения в браузер.

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

1. Диспетчер приложений предоставляет сервер, который позволяет запускать приложения и использовать функцию Sneak Peek на локальном компьютере.
2. «Вердж3Д Нетворк» — облачный сервер, который можно использовать для распространения приложений среди ваших пользователей одним щелчком мыши.
3. «Вердж3Д для Вордпресса» — плагин, используемый для размещения «Вердж3Д»-приложений в «Вордпрессе», самой популярной и простой в использовании системе управления контентом.

Кроме того, вы всегда можете использовать собственный веб-сервер, например Apache, Nginx, IIS, либо выбрать стороннюю хостинговую платформу, например «Яндекс Облако», Amazon AWS, Digital Ocean или GoDaddy.

#

### Где я могу найти план разработки «Вердж3Д»?

«Вердж3Д» — это продукт ориентированный на клиентов, поэтому мы движемся в направлении их потребностей. В целом, наши основные приоритеты — электронная коммерция, электронное обучение и приложения виртуальной и дополненной реальности. Если у вас есть особая функция, которую вы хотели бы видеть в «Вердж3Д», мы можем добавить ее на контрактной основе. Свяжитесь с нами, чтобы обсудить детали.

#

### Требуется ли мне подключение к интернету для работы с «Вердж3Д»?

Инструментарий «Вердж3Д» устанавливается на ваш локальный компьютер и в общем случае не требует подключения к интернету. Единственная функция, для которой требуется интернет — публикация готовых приложений в «Вердж3Д Нетворк».

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

#

### Мое приложение не загружается, когда я открываю его в «Хроме», но оно работает при запуске из диспетчера приложений

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

Если вам нужно сделать настольное или мобильное приложение, вы можете преобразовать имеющийся проект с помощью диспетчера приложений. Для этого вам потребуется «Электрон» или «Кордова»).

#

### Не удается загрузить приложение, когда я кликаю по файлу .html.

Ответ на этот вопрос смотрите здесь.

#

### Могу ли я экспортировать свою сцену в HTML-файл?

Да, «Вердж3Д» предлагает опцию конвертации сцен в HTML-формат. Тем не менее мы рекомендуем преобразовывать приложения с помощью «Электрона».

#

### Работают ли приложения «Вердж3Д» в «Интернет Эксплорер» 11?

Отчасти да. Версии «Вердж3Д» до 4-ой включали в себя модуль совместимости с «Интернет Эксплорером», который активируется на панели создания приложения:

Чтобы скачать нужную вам версию воспользуйтесь архивом закачек (англ.).

#

### Можно ли запустить диспетчер приложений без «Блендера», «3дс Макса» или «Майи»?

Конечно, вы можете запустить диспетчер приложений в автономном режиме. Просто щелкните соответствующий значок Verge3D на рабочем столе или в меню «Пуск». Это откроет браузер, назначенный по умолчанию в системе, и автоматически перейдет в диспетчер приложений.

#

### Как скопировать пазлы в другой проект?

Для переноса пазлов воспользуйтесь библиотекой.

#

### Не воспроизводятся звуки в «Ай ОС»...

Как это исправить, смотрите здесь.

#

### Мое приложение тормозит. Как мне увеличить его производительность?

Ознакомьтесь с руководством по обнаружению проблем с производительностью и руководством по оптимизации ресурсов.

#

### Как открыть консоль браузера?

«Гугл Хром»

  Menu → More Tools → Developer Tools или

  Клавиша F12 на «Виндоус»/«Линукс» или Option + ⌘ + J для «Мак ОС».

  В окне Developer Tools, выберите вкладку Console.

«Файрфокс»

  Menu → More Tools → Browser Console or

  Клавиша F12 на «Виндоус»/«Линукс» или Shift + ⌘ + J для «Мак ОС».

«Эпл Сафари»

  Включите Developer Menu в настройках (Advanced Tab), затем Develop → Show JavaScript Console или нажмите

  Option + ⌘ + C shortcut.

«Майкрософт Эдж»

  Menu → F12 Developer Tools или

  Клавиша F12.

  В окне Developer Tool выберите вкладку Console.

«Хром» для «Андроида»
  Непосредственно отобразить консоль браузера на устройстве «Андроид» нельзя. Вместо этого используйте функцию отладки по УСБ.
«Сафари» на «Ай ОС» и «Айпад ОС»
  Непосредственно отобразить консоль браузера на устройствах с «Ай ОС» и Айпад ОС» невозможно. Вам потребуется система с «Мак ОС» и веб-инспектор — специальный инструмент для доступа к содержимому консоли.
«Майкрософт Интернет Эксплорер»
  Браузер устарел и больше не поддерживается в «Вердж3Д».

#

### Приложение отлично работает в диспетчере приложений, но не работает при загрузке на удаленный сервер (например, в «Вердж3Д Нетворк»)

Среди возможных причин, вызывающих данную проблему:

1. Локальная система нечувствительна к регистру файлов, а удаленная чувствительна.
2. Вы неверно указали абсолютный путь к файлу .html или .gltf.

Пример первого случая: если вы используете «Виндоус» или «Мак ОС» (обе используют файловые системы нечувствительные к регистру), вы можете случайно переименовать файлы при экспорте. Но поскольку большинство серверов работают на «Линуксе» (включая «Вердж3Д Нетворк»), они используют файловые системы чувствительные к регистру, что может вызывать проблемы при получении файлов с сервера.

Например, вы создали приложение «Мой Конфигуратор». По умолчанию это приложение будет включать в себя следующие файлы:

`Мой Конфигуратор.blend (или Мой Конфигуратор.max или Мой Конфигуратор.mb) Мой Конфигуратор.html Мой Конфигуратор.js Мой Конфигуратор.css Мой Конфигуратор.gltf Мой Конфигуратор.bin`

Предположим, вы открываете файл сцены в инструменте моделирования (в «Виндоус» или «Мак ОС») и экспортируете его как `мой конфигуратор.gltf`.

Таким образом, папка вашего приложения будет выглядеть следующим образом (обратите внимание на регистр двух нижних строк):

`Мой Конфигуратор.blend (или Мой Конфигуратор.max или Мой Конфигуратор.mb) Мой Конфигуратор.html Мой Конфигуратор.js Мой Конфигуратор.css мой конфигуратор.gltf мой конфигуратор.bin`

Если вы откроете основной «Ява Скрипт»-файл вашего приложения (Мой Конфигуратор.js в нашем примере), вы увидите, что он пытается загрузить `Мой Конфигуратор.gltf`, а не `мой конфигуратор.gltf`. Это совершенно нормально для «Виндоус» или «Мак ОС», поскольку эти два имени представляют один и тот же файл! Однако, когда вы загрузите ваше приложение на сервер, оно не запустится.

Чтобы избежать этого, всегда сохраняйте и экспортируйте файлы в правильном регистре. Альтернативным решением будет переименовать файл в главном .js файле приложения.

Второй причиной данной ошибки может быть указание абсолютного пути к загружаемому ресурсу в вашем js-файле, например:

`/applications/моё_приложение/моё_приложение.gltf`

или

`http://localhost:8668/applications/моё_приложение/моё_приложение.gltf`

В таком случае укажите относительный путь, чтобы устранить проблему:

`моё_приложение.gltf`

или

`./моё_приложение.gltf`

#

### Как правильно переименовать приложение?

Перейдите в папку с приложениями, найдите и переименуйте папку, содержащую ваше приложение (например, «моё_приложение» в «крутая_визуализация»).

Не путайте имя папки с названием, отображаемым в диспетчере приложений. Например, приложение «моё_приложение» получает заголовок «Моё Приложение». Этот заголовок генерируется автоматически путем замены символов подчеркивания пробелами и перевода начальных символов слов в верхний регистр.

Если вы также хотите переименовать файлы внутри вашего приложения, сделайте следующее:

1. Перейдите в папку приложения.
2. Назначьте новые имена всем ресурсам html/css/js/gltf/bin/blend/max/ma/mb (подробнее см. здесь). Не трогайте файлы v3d.js, visual_logic.xml и visual_logic.js!
3. Откройте и переэкспортируйте сцены, чтобы обновить пути внутри экспортированных glTF-ресурсов.
4. Откройте основной .html-файл (например, моё_приложение.html) и обновите следующие пути .js/.css: `<script src="моё_приложение.js"></script> <link rel="stylesheet" type="text/css" href="моё_приложение.css">` Допустим, вы хотите переименовать «моё_приложение» в «крутая_визуализация». В этом случае пути становятся: `<script src="крутая_визуализация.js"></script> <link rel="stylesheet" type="text/css" href="крутая_визуализация.css">`
5. Откройте основной .js-файл (например, моё_приложение.js) и обновите следующую строку, указав предпочтительное имя приложения: `sceneURL: params.load || 'моё_приложение.gltf',` Допустим, вы хотите переименовать моё_приложение в крутая_визуализация. В этом случае строка SceneURL будет выглядеть так: `sceneURL: params.load || 'крутая_визуализация.gltf',`
6. Запустите приложение в диспетчере приложений. Если приложение не работает, откройте консоль браузера, чтобы проверить наличие ошибок.

Кроме того, не забудьте обновить метаданные в переименованном приложении. Информацию о том, как это сделать, смотрите здесь.

#

## Моделирование и создание контента

#

### Что такое glTF?

glTF (glTF, Graphics Language Transmission Format) - это универсальный формат файлов, используемый в интернете для хранения и обмена 3Д-визуализацией. Данный формат используется в «Вердж3Д» и другом программном обеспечении для работы с графикой. Он может хранить не только модели, но и целые сцены, включая геометрические данные (меши), положение объектов, анимацию, данные камеры, источники света, материалы, текстуры и другую информацию.

Поскольку формат glTF определяет только базовый набор функций, мы дополнили его нашими собственными расширениями (имеют префикс S8S). Подмножество glTF «Вердж3Д» поддерживает не только основные PBR-материалы, но также материалы на основе нод «Блендера», «3дс Макса» или «Майи», камеры, источники света, окружающую среду и другие вещи, что упрощает и повышает эффективность рабочих процессов.

В «Вердж3Д» мы используем версию 2.0 формата glTF. Старая версия стандарта 1.0 не поддерживается.

#

### В каких случаях следует использовать материалы, совместимые с glTF?

Основные отличия glTF-совместимых материалов от штатных, основанных на нодах «Блендера», «3дс Макса» и «Майи»:

- Вы можете экспортировать их во время выполнения приложения с помощью пазла export to gltf или «Ява Скрипта».
- Вы можете экспортировать их в формат USDZ (.usdz) с помощью пазла export to usdz, а затем просматривать в режиме дополненной реальности на устройствах «Эпл» («Айфон», «Айпад»).

Главный недостаток glTF-материалов заключается в том, что вы не сможете использовать «родную» систему материалов, предоставляемую пакетом моделирования. Таким образом, вы не сможете получить тот же уровень контроля над разработкой материала, а следовательно достичь сопоставимого качества визуализации.

Ознакомьтесь со следующими руководствами для получения дополнительной информации:

- Создание glTF-совместимых материалов в «Блендере»
- Создание glTF-совместимых материалов в «3дс Максе»
- Создание glTF-совместимых материалов в «Майе»

#

### Какой 3Д-формат лучше, .gltf или .glb?

Это два варианта одного и того же формата glTF 2.0. Контейнер *.gltf более популярен и эффективен, поскольку он хранит только метаданные (параметры ваших сцен/объектов/материалов и т. д.). Все внешние данные, такие как геометрия, анимация и текстуры, хранятся отдельно (в файлах *.bin, *.jpeg, *.png).

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

#

### Я ничего не вижу, когда экспортирую свою сцену в «Вердж3Д».

Это может произойти по разным причинам:

- Ваша камера неправильно настроена. Проверьте параметры ближнего и дальнего отсечения камеры (near, far), а также место куда смотрит камера (если ваша камера имеет тип управления Orbit).
- Это может быть backface culling или нормали, указывающие в неправильном направлении. Проверьте свои материалы и нормали.
- Иногда это может быть проблема с оборудованием или программная ошибка, мешающая визуализации геометрии. Просмотрите консоль браузера и изучите сообщения об ошибках.

#

### Какие 3Д-форматы можно использовать в «Вердж3Д»?

С помощью сторонних библиотек импорта «Вердж3Д» может загружать различные 3Д-форматы. Тем не менее, предпочтительным способом создания трехмерного веб-контента является использование формата glTF 2.0, который поддерживается «Вердж3Д»-плагином для «Блендера», «3дс Макса» или «Майи».

Также скрипт стандартного шаблона приложения основан на классе App, который поддерживает загрузку файлов исключительно в формате glTF.

#

### Поддерживаются ли пакеты «Майя ЛТ» и «Майя Креатив»?

К сожалению нет. Урезанная версия «Майя ЛТ» не позволяет запускать скрипты на «Питоне», поэтому мы не можем реализовать программу экспорта для данного пакета моделирования.

То же самое относится к пакету «Майя Креатив», который вообще не имеет возможности запуска сторонних плагинов.

#

### Есть ли планы по поддержке «Максон Синема 4Д»? «Скетчап»?

Смотрите ответ на этот вопрос на нашем форуме (англ.).

#

### Как преобразовать модель «Солид Воркс» в WebGL с помощью вашего программного обеспечения?

Начиная с версии 2016 года, «3дс Макс» поддерживает ресурсы «Солид Воркс». Просто импортируйте файл «Солид Воркс» в «3дс Макс», а затем экспортируйте в WebGL, как любую другую максовскую сцену.

Примечание. Обратите внимание на оптимизацию геометрии, так как САПР-модели довольно тяжелы для интернета. Настройте параметр Mesh Resolution в диалоговом окне Import Settings при импорте файлов. Вы также можете использовать модификаторы «3дс Макса», чтобы уменьшить количество полигонов в ваших моделях.

#

### Как создать интерактивную браузерную визуализацию на основе модели из «Ревита»?

У вас есть два варианта:

1. Экспортируйте модель «Ревит» в формат FBX, а затем импортируйте в «3дс Макс», «Майю» или «Блендер».
2. Используйте импортер «Ревит», который изначально поддерживается в «3дс Максе». Не забудьте активировать параметр Autodesk Revit Interoperability во время установки «3дс Макса», чтобы включить эту функцию.

В любом случае сохраняйте оптимальную геометрию. Мы рекомендуем использовать 100-500 тысяч полигонов для всей сцены.

#

## Электронная коммерция

#

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

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

Кольцо
  Самый простой пользовательский интерфейс, основанный на объектах, связанных с камерой.
Кресло
  Поставляется с более продвинутым макетом на основе HTML-вёрстки, созданной в визуальном редакторе «Вебфлоу». Содержит рабочий прототип корзины типичного интернет-магазина.
Скутер
  Самое продвинутое приложение, позволяющее настроить более миллиона разных комбинаций. Как и в случае с «Креслом», пользовательский интерфейс был создан с помощью редактора «Вебфлоу».

Кроме того, если на вашем сайте используется система управления контентом «Вордпресс», обратите внимание на расширение WooCommerce Composite Products. С его помощью вы сможете создавать 3Д-веб-конфигураторы максимально быстро.

#

### Требуется создать 3Д-интернет-магазин с минимальным бюджетом. Что посоветуете?

Сначала вам нужно создать 3Д-визуализацию продуктов в «Блендере», «3дс Максе» или «Майе». Далее есть 2 варианта:

- «Ву Коммерц» — платформа электронной коммерции, используемая в миллионах интернет-магазинов. Она поддерживает платёжные системы такие как «Робокасса», полностью бесплатна и работает поверх системы управления контентом «Вордпресс». Загрузите ваш 3Д-контент на сайт с помощью плагина «Вердж3Д для Вордпресс», а затем настройте его для работы с «Ву Коммерц».
- С помощью плагина «Вердж3Д для Вордпресс» вы можете сделать полностью кастомный интернет-магазин. В этом случае заказы будут обрабатываться с помощью пазла place order или place order +. Как и в случае с «Ву Коммерц», для данного решения потребуется веб-сервер или хостинговая платформа с установленной системой «Вордпресс».

#

### Как мне сделать базовую систему CPQ (конфигурация, цена, предложение) с настраиваемыми продуктами, показываемыми в 3Д?

Мы рекомендуем следующий подход:

- 3Д-часть выполняется как обычное «Вердж3Д»-приложение, а конфигурируемость реализуется на пазлах (см. готовые конфигураторы из магазина ассетов). Если у вас слишком много моделей, чтобы грузить их одновременно, вам следует разделить контент на несколько файлов и использовать пазл append scene, загружая их по запросу.
- Цена также может быть рассчитана на пазлах на стороне клиента (что не слишком безопасно) либо определена на сервере. Если вам нужен именно серверный подход, добавьте все части продукта и соответствующие цены в админ-интерфейс плагина «Вордж3Д для Вордпресс», а затем используйте пазлы place order + в вашем приложении для создания заказов.
- Плагин «Вордж3Д для Вордпресс» поставляется с настраиваемым генератором документов, который можно использовать для выставления как коммерческих предложений, так и счетов. Эти документы могут быть загружены менеджером по продажам или отправлены клиентам по электронной почте вручную, либо автоматически.

#

### Имеется бюджет на разработку 3Д-сайта, но нет соответствующих компетенций. Что можете предложить в этом случае?

Мы предлагаем вам связаться с нашими партнерами, среди которых студии и фрилансеры, имеющие большой опыт разработки трёхмерных сайтов.

Вы также можете разместить ваше предложение в соответствующем разделе нашего форума.

#

### Я разработал платный «Вердж3Д»-плагин, как лучше организовать его продажи?

Супер! Для продажи плагина вы можете выбрать одну из следующих торговых площадок:

- Gumroad или аналогичные сервисы (Shopify, SendOwl, Sellfy). Они просты в использовании, но берут комиссию за обслуживание.
- «Ву Коммерц». Потребуется «Вордпресс»-сервер или хостинг, предоставляющий данную систему управления контентом.

#

## Программирование с помощью пазлов

#

### Какие пазлы стоит изучить в первую очередь?

Список довольно короткий:

- when clicked — делает объект интерактивным, то есть позволяет совершить некую последовательность действий по клику;
- hide/show — скрывает или показывает объект (конфигурацию);
- assign material — назначает произвольный материал на объекте;
- play animation — воспроизводит анимацию объекта или материала.

Данная функциональность используется в демо-приложении Simple Configurator (исходные файлы доступны в магазине ассетов).

#

### Как защитить моё приложение паролем?

Если вы не хотите, чтобы ваше приложение показывалось до финальной версии, вы можете использовать следующие пазлы, чтобы защитить его паролем:

Измените «123456» на что-нибудь более безопасное.

Этот метод не является на 100% надежным и может быть легко взломан. Более правильным способом ограничения доступа к вашему приложению будет использование HTTP-аутентификацию, либо авторизации на сервере.

#

### Как сделать управление от первого лица на мобильных устройствах?

По сути вам нужно создать дополнительные элементы, выровненные по экрану, которые будут элементами управления вашим персонажем. Минимальный набор таких элементов — вперед-назад (так как вращение осуществляется касанием/перетаскиванием экрана).

Таким образом, у вас есть два способа отрисовки элементов управления на мобильном устройстве:

1. Используя элементы HTML, расположенные поверх 3Д-сцены. Подробнее об этом методе можно узнать здесь.
2. С помощью плоскостей или подобных 3Д-объектов, связанных с камерой. Для этого вам нужно приперентить их к камере в пакете моделирования.

Создав элементы управления, используйте пазл change local transform, чтобы переместить камеру. Например, для перемещения вперед/назад вы можете использовать следующую логику:

Чтобы реализовать боковое перемещение персонажа, используйте тот же пазл, но двигайтесь по оси X вместо Z.

#

### Почему пазлы show/hide не работают для аннотаций?

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

Вместо этого вам следует использовать CSS-свойство display для элемента аннотации, на который ссылается его идентификатор. Например, чтобы скрыть/показать аннотацию с идентификатором элемента poi1, вы можете использовать следующие два пазлы:

По сути, установка display в none скрывает аннотацию, а установка display в block снова её показывает.

#

### Можно ли отключить (скрыть) луч/прицел в режиме виртуальной реальности?

Используйте пазл get controller property, чтобы получить объект луча/прицела и hide для его сокрытия:

[привязка:how_to_clone_objects_recursivity]

### Как рекурсивно клонировать объекты?

Используйте следующую «Ява Скрипт»-функцию:

#

## Вопросы по программированию

Читайте ниже если имеете навыки работы с «Ява Скриптом».

#

### Совместим ли «Вердж3Д» с фреймворком «Три Джей Эс»?

«Вердж3Д» предоставляет ограниченную совместимость с API фреймворка «Три Джей Эс», что может существенно упростить портирование имеющегося кода. Тем не менее, подобный подход не является оптимальным. Вместо этого мы рекомендуем создавать большую часть контента в пакете 3Д-моделирования и использовать пазлы.

#

### Как рассчитать использование памяти текстурой?

Для хранения обычной (не HDR) текстуры в памяти графического процессора вам потребуется не менее

`ширина x высота x 4 x 1.333 байт`

Где ширина, высота - размеры текстуры в пикселях, 4 - количество байтов на пиксель, а 1,333 - дополнительная память, необходимая для отображения текстуры. Например, текстура размером 2048x2048 будет занимать примерно 22,4 Мб памяти графического процессора. Если вам нужно сохранить HDR-текстуру, умножьте это значение на 2.

Также, в зависимости от реализации WebGL, браузеры могут хранить по крайней мере одну копию текстуры в обычной (системной) памяти.

#

### Окно моего приложения бесконечно растет на устройствах «Ай ОС». Как это исправить?

Если вы встраиваете приложение «Вердж3Д» в элемент iframe, вы можете столкнуться с определенной проблемой на устройствах «Ай ОС», из-за которой окна iframe будут постоянно увеличиваться в размере за пределами окна браузера. Это, в свою очередь, может привести к сбою WebGL.

Чтобы решить эту проблему, вы можете использовать код, который изменяет размер iframe в соответствии с телом страницы (body), предотвращая выход указанного iframe за его пределы.

`<script> if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent)) { var iframe = document.getElementById('myIframe'); function resize() { iframe.style.width = getComputedStyle(document.body).width; iframe.style.height = getComputedStyle(document.body).height; iframe.setAttribute('scrolling', 'no'); } iframe.addEventListener('resize', function(e) { resize(); }); resize(); } </script>`

#

### Элементы управления с клавиатуры не работают для приложения, встроенного в iframe.

Это происходит, когда в фокусе находится какой-то другой HTML на вашей странице. Чтобы решить проблему, попробуйте следующий код:

`document.getElementById("my_iframe_id").focus();`

Где my_iframe_id — ID нужного элемента iframe.

На пазлах этот же код будет выглядеть так:

## Все еще есть вопросы?

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