Пазлы сцены (Scenes)
Пазлы из этой категории выполняют различные операции со сценами и рендерингом.
![](files/puzzles/puzzles-scenes.jpg)
Содержание
Перечень пазлов
load scene + percentage
При срабатывании этого пазла текущая сцена выгружается, после чего загружается новая из указанного .gltf-файла.
![](files/puzzles/puzzles-scenes-load-scene.jpg)
Данная функциональность используется в демо-приложении «Загрузи-выгрузи» (исходные файлы доступны в магазине ассетов).
После завершения загрузки запускаются пазлы слота when loaded do. Кроме того, существует дополнительный слот on progress do, пазлы которого постоянно запускаются во время загрузки и могут задействовать пазл percentage. После загрузки сцены ей присваивается имя, которое можно использовать для доступа и манипулирования сценой с помощью различных пазлов, связанных с объектами. По умолчанию присвоенное имя равно указанному УРЛ сцены (например, "path/to/scene.gltf"
). Опция alias, если она включена, позволяет задать имя вручную.
Еще один дополнительный слот on error do срабатывает в случае ошибок загрузки (например, при отсутствующем .gltf-файле).
![](files/puzzles/puzzles-scenes-load-scene-example.jpg)
append scene + percentage
При срабатывании этого пазла загружается сцена из указанного .gltf-файла и добавляется к текущей сцене.
![](files/puzzles/puzzles-scenes-append-scene.jpg)
Данная функциональность используется в демо-приложении «Загрузи-выгрузи» (исходные файлы доступны в магазине ассетов).
После завершения загрузки запускаются пазлы слота when loaded do. Кроме того, существует дополнительный слот on progress do, пазлы которого постоянно запускаются во время загрузки и могут задействовать пазл percentage. Пазл "append scene" по умолчанию не загружает камеры и свет из новой сцены. Это можно изменить в настройках пазла.
После добавления сцены ей присваивается имя, которое может быть использовано для доступа и манипулирования сценой с помощью различных пазлов, связанных с объектами. По умолчанию присвоенное имя равно указанному УРЛ сцены (например, "path/to/scene.gltf"
). Опция alias, если она включена, позволяет задать имя вручную.
Еще один дополнительный слот on error do срабатывает в случае ошибок загрузки (например, при отсутствующем .gltf-файле).
![](files/puzzles/puzzles-scenes-append-scene-example.jpg)
unload scene
Выгружает указанную сцену или ее часть из приложения. Используйте пустое текстовое значение для выгрузки всех сцен.
![](files/puzzles/puzzles-scenes-unload-scene.jpg)
is scene loaded
Проверяет, загружена ли указанная сцена. Укажите пустую строку чтобы проверить главную сцену.
![](files/puzzles/puzzles-scenes-is-scene-loaded.jpg)
enable rendering
Возобновляет ранее отключенный рендеринг.
![](files/puzzles/puzzles-scenes-enable-rendering.jpg)
disable rendering
Отключает рендеринг. Графика не будет обновляться, но пользовательские события будут происходить, а временная шкала анимации будет прогрессировать.
![](files/puzzles/puzzles-scenes-disable-rendering.jpg)
Вы можете использовать отключение рендеринга с целью экономии заряда батареи на мобильных устройствах или ноутбуках и избавления от шума вентилятора на настольных компьютерах. Вы также можете включить опцию anti-alias, чтобы значительно повысить качество рендеринга и компенсировать потерю производительности. Рендеринг сцены с анти-алиасингом произойдёт на следующий кадр после остановки рендеринга.
![](files/puzzles/puzzles-scenes-enable-disable-rendering-example.jpg)
create environment
Создаёт новое освещение на основе изображения и назначает фон сцены. Этот пазл также создает новый материал с именем, указанным в качестве первого параметра, и добавляет его в сцену. Вы можете использовать этот материал для замены текстур или цветов окружения.
Второй параметр может быть:
- color — освещение окружения будет основано на встроенном HDR-изображении 256×128, цвет фона будет установлен в серый.
- texture — и освещение среды, и фон будут основаны на встроенном HDR-изображении 256×128.
![](files/puzzles/puzzles-scenes-create-environment-example.jpg)
batch geometry
Объединяет геометрию указанной группы мешей для повышения производительности рендеринга. При выполнении пазл собирает меши с похожими свойствами, такими как используемый материал, настройки теней, порядок рендеринга и т.д., а затем создает и добавляет новый пакет в сцену. Объекты, которые не могут быть объединены вместе, остаются нетронутыми.
![](files/puzzles/puzzles-scenes-batch-geometry.jpg)
Чтобы увидеть, как работает это объединение, откройте браузерную консоль:
![](files/puzzles/puzzles-scenes-batch-geometry-console.jpg)
В каждой строке "Adding batch object..." можно увидеть имя создаваемого пакетного объекта. Это имя состоит из названия материала, образующего пакет, коэффициента 'x', представляющего количество мешей, объединенных вместе, и окончанияё "_batch".
Например:
Adding batch object: big_table_wood_x6_batch
эта строка означает, что 6 мешей с материалом "big_table_wood" были объединены в новый пакетный объект "big_table_wood_x6_batch".
Поскольку части пакета становятся "закрепленными" вместе (операция не может быть отменена), убедитесь, что вы не объединяете в пакет объекты, которые планируется перемещать, анимировать или изменять отдельно от пакета.
export to gltf
Экспортирует сцену, модель или группу моделей в формат glTF 2.0. Укажите опцию only visible для экспорта только видимых объектов, опция binary используется для экспорта в бинарный формат GLB (glTF Binary).
![Визуальный блок программирования для экспорта в формат glTF](files/puzzles/puzzles-scenes-export-to-gltf.jpg)
Для достижения наилучших результатов мы рекомендуем вам использовать материалы, совместимые с glTF. Читайте об их создании в «Блендере», «3дс Максе» и «Майе».
Данная функциональность используется в демо-приложении GLTF Compat (исходные файлы доступны в магазине ассетов).
export to usdz
Экспортировать сцену или модель в формат USDZ (Universal Scene Description).
![Визуальный блок программирования для экспорта в формат USDZ](files/puzzles/puzzles-scenes-export-to-usdz.jpg)
Этот формат позволяет просматривать сцену или модель на устройствах «Эпл» в режиме дополненной реальности. Для этого вам потребуется создать HTML-элемент <a>
где-нибудь на странице приложения и указать ссылку на экспортированный ресурс в виде параметра href
этого элемента.
Данная функциональность используется в демо-приложении «Дополненная реальность» (исходные файлы доступны в магазине ассетов).
Для достижения наилучших результатов мы рекомендуем вам использовать материалы, совместимые с glTF. Читайте об их создании в «Блендере», «3дс Максе» и «Майе».
raycast
Проводит луч из исходной точки (или объекта) в заданном направлении и отображает список всех пересечений (если они есть). Третий параметр пазла используется для уменьшения количества пересекаемых объектов. Оставьте <none>
или укажите имя вашей сцены, чтобы пересечь все объекты, расположенные в загруженной сцене.
Отображаемый список содержит последовательность словарей со следующей информацией:
- object — имя пересекаемого объекта
- distance — расстояние до точки пересечения
- point — XYZ координаты (вектор) точки пересечения
- normal — XYZ координаты (вектор) нормали в точке пересечения
- uv — UV координаты точки пересечения
Список пересечений отсортирован по расстоянию, первый — ближайший.
![](files/puzzles/puzzles-scenes-raycast.jpg)
add fog
Добавляет эффект тумана на сцену. Этот эффект обычно используется для наружных сцен для улучшения визуального восприятия удалённых объектов, для сокрытия дальних объектов, а также для закрытия несоответствий сцены реальному миру (например краёв меша земли).
![](files/puzzles/puzzles-scenes-add-fog.jpg)
Exponential (экспоненциальный) туман определяется свойством density (насыщенность). Используется нулевое значение density для выключения тумана.
Linear (линейны) туман определяется свойствами near (ближняя граница) и far (дальняя граница). Используйте нулевое значение near и любое отрицательное значение для far для выключения тумана.
Проблемы с пазлами?
Обращайтесь за помощью на наш форум!