Вспомогательные объекты (хелперы или dummy)
Код прописывается в object properties для каждого объекта, которому необходимо назначить те или иные свойства.
Ambient light
{
"type": "ambientLight",
"color": "#ffffff"
}
Hemisphere Light
{
"type": "hemisphereLight",
"color": "#ffffff",
"groundColor": "#007000",
"intensity": 0.02
}
HDR карта отражения
Чтобы использовать в сцене одну или несколько HDR текстур отражения, необходимо создать в сцене хелперы со следующими параметрами:
{
"type": "envMap",
"fileName": "HDRI_GP.hdr",
"intensity": 1.0
}
Какая именно текстура будет использоваться для конкретного объекта определяется рефлекшен пробами и их параметрами.
Туман (Fog)
{
"type": "fog",
"color": "#ffffff",
"near": 2200,
"far": 6500,
"algorithm": "algo1",
"slopeScale": 2500,
"nearOffset": -1900,
"farOffset": 1500
}
Если необходимо создать туман, адаптированный специально под сцену типа “Ген. план”, то следует добавить поля algorithm (значение “algo1”), slopeScale, nearOffset, farOffset.
При таком алгоритме тумана значения расстояния начала (Near) и конца тумана (Far) меняются динамически в зависимости от положения камеры, а указанные константные значения “near” и “far” игнорируются.
Расчет выполняется по следующей формуле:
Near = DistanceToTarget + K * slopeScale + nearOffset
Far = DistanceToTarget + K * slopeScale + farOffset
где K – косинус угла наклона камеры к горизонту, ограниченный диапазоном [0.35; 1.0],
DistanceToTarget – расстояние от камеры до таргета камеры.
Камера
{
"cameraType": "orbit",
"orbitSettings":
{
"target": [0, 120, 0],
"enablePan": false,
"enableDamping": true,
"dampingFactor": 0.09,
"minDistance": 1500,
"maxDistance": 3000,
"minPolarAngle": 0,
"maxPolarAngle": 70,
"minAzimuthAngle": 0,
"maxAzimuthAngle": 180
}
}
target - точка, вокруг которой вращается камера. (Ось Y - направлена вверх, как в three.js.)
enablePan - разрешает или запрещает перемещение камеры. Значение по умолчанию: true.
enableDumping - добавляет инерцию к движению камеры. Значение по умолчанию: false, т.е. инерция выключена.
dampingFactor - величина инерции камеры.
minDistance, maxDistance - минимальное и максимальное разрешенные расстояния камеры от точки target.
minPolarAngle, maxPolarAngle - минимальный и максимальный разрешенный угол
отклонения камеры от горизонтальной плоскости (взгляд вверх-вниз). Указывается в градусах. Значения по умолчанию min = 0, max = 85.
minAzimuthAngle, maxAzimuthAngle - минимальный и максимальный разрешенный угол поворота камеры. Указывается в градусах. Значения по умолчанию min = 0, max = 360, что соответствует вращению без ограничений.
Reflection Probe
Рефлекшен проба – это текстура отражения в определенной точке пространства с ограниченной зоной действия.
Рефлекшен пробы можно создать в 3D Max либо в ICraft. Для создания в 3D Max необходимо создать в сцене Point Helper, поставив в его настройках галочку на поле “Box” и указав Size = 100.0cm. Имя объекта значения не имеет. Далее следует изменить размер Box-а инструментом масштабирования (scale) до необходимого.
Чтобы хелпер стал рефлекшен пробой с автоматически генерируемой текстурой, в свойствах объекта надо прописать:
{
"type": "reflectionProbe"
}
В объекте рефлекшен пробы можно опционально указать дополнительные параметры:
{
"type": "reflectionProbe",
"unbound": true,
"envMap": "HDRI_GP.hdr",
"intensity": 1.0
}
unbound - Если равен true, то считается что рефлекшен проба действует на все объекты сцены независимо от размеров ограничивающего бокса.
Для совместимости со старыми версиями сцен рефлекшен пробы с именами хелперов “ReflectionProbe001” или “ ReflectionProbeUnbound” считаются неограниченными, т.е. unbound = true. В связи с этим, настоятельно не рекомендуется использовать данные имена для названий хелперов, чтобы избежать путаницы. Предлагается использовать имя “ReflectionProbe_001” (с подчеркиванием перед номером).
envMap - Если указан данный параметр, то используется заранее отрендеренная HDR текстура. Чтобы работал этот параметр, недостаточно просто указать имя текстуры. Необходимо в сцене создать хелпер для HDR карты отражения (см. выше).
intensity - Определяет общую яркость текстуры отражения. Если параметр не указан, но он берется из хелпера HDR карты отражения.
В сложных по конфигурации помещениях, где необходимо расположить сразу несколько рефлекшен проб, либо при необходимости сместить центр пробы не меняя ее положение, можно указывать произвольный центр камеры для каждой reflection проб через dummy с названием ReflectionProbe_nnn_center, где nnn тот же номер, что и у пробы для которой меняете центр. К примеру, для ReflectionProbe_001 dummy с ее центром будет называться ReflectionProbe_001_center. Это позволит избежать некорректных отражений в сцене.
Переключатель автоматического скрытия стен
{
"type": "objectsAutoHideSwitch",
"enabled": true,
"checked": false
}
Скрытие объектов
{
"hideableObject": true,
"backAxis": "y",
"sideAxis": "x"
}
hideableObject - параметр отвечает за скрытие объекта. true - скрывается, false - не скрывается.
backAxis - ось по направлению которой скрывается объект. Возможные значения: x, negx, y, negy, z, negz
sideAxis - дополнительная ось по направлению которой скрывается объект, параметр опциональный. Возможные значения: x, negx, y, negy, z, negz
Сфера неба за окном
Данные настройки необходимо прописать к сфере неба за окном. (Для других объектов их тоже можно использовать, если необходимо реализовать схожий функционал.)
{
"hideInPanoramicMode": false,
"hideInOverviewMode": true
}
hideInPanoramicMode - параметр определяет, скрывать ли объект в режиме вида из глаз. true - скрывать, false - не скрывать.
hideInOverviewMode - параметр определяет, скрывать ли объект в режиме вида сверху. true - скрывать, false - не скрывать.
Робот пылесос
Робот пылесос перемещается по NavMesh. Обращайте внимание, чтобы NavMesh был расположен на достаточном расстоянии от стен и ножек мебели, чтобы робот пылесос не проезжал сквозь них. Робот пылесос необходимо располагать в границах NavMesh.
{
"components":
[
{
"className": "VacuumCleanerRobot"
}
]
}
Маркеры
{
"type": "marker",
"classId": "icon-expandable-text-small",
"iconId": "school",
"text": "Школа",
"onClick": "centerCamera"
}
classId - параметр определяет внешний вид маркера и текста. По умолчанию (если не указан) используется "shortest-text"
"icon-text" - иконка + текст
"icon-text-small" - иконка + мелкий текст
"icon-expandable-text" - иконка + текст, разворачивающийся при наведении курсора
"icon-expandable-text-small" - иконка + мелкий текст, разворачивающийся при наведении курсора
"icon-expandable-multiline-text" - иконка + многострочный текст, появляющийся рядом с иконкой при наведении курсора
iconId - вид иконки.
iconId | Иконка | iconId | Иконка | iconId | Иконка | iconId | Иконка |
|---|---|---|---|---|---|---|---|
playhub | parking | crosswalk | room | ||||
doghub | hospital | bathroom | office | ||||
fountain | sales-office | bedroom | terrace | ||||
nursery_school | mall | kitchen | hallway | ||||
school | sport | nursery | camera | ||||
empty | bus-stop | poi | nature-object | ||||
bridge | wash | pantry |
text - текст отображающийся в маркере. Может быть любой.
onClick - Параметр определяет поведение камеры при клике на маркер.
centerCamera - центрирование камеры при клике на маркер.
Камеры
{
"cameraType": "freelook",
"classId": "icon-expandable-text",
"iconId": "camera",
"text": "Камера",
"panoramicView": true,
"panoramicImage": "Cam_001.jpg",
}
classId - параметр определяет внешний вид маркера и текста. По умолчанию (если не указан) используется "icon-expandable-text"
"icon-text" - иконка + текст
"icon-text-small" - иконка + мелкий текст
"icon-expandable-text" - иконка + текст, разворачивающийся при наведении курсора
"icon-expandable-text-small" - иконка + мелкий текст, разворачивающийся при наведении курсора
"icon-expandable-multiline-text" - иконка + многострочный текст, появляющийся рядом с иконкой при наведении курсора
iconId - вид иконки. См. Маркеры
text - текст отображающийся в маркере. Может быть любой. Для квартир существуют стандартные наименования к иконкам
bedroom - Спальня
bathroom - Ванная
kitchen - Кухня
hallway - Прихожая
nursery - Детская
room - Гостиная
terrace - Терраса
office - Кабинет
panoramicView - включает режим панорамы в камере. При переходе в камеру будет отображаться изображение, заданное в пункте panoramicImage. По умолчанию (если не указано) не используется.
panoramicImage - 360° изображение в формате jpg или png отображающееся при переходе в камеру, если значение panoramicView - true

















