Вспомогательные объекты (хелперы или 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,
"minPanPosition": [-500, 0, -500],
"maxPanPosition": [500, 0, 500]
}
}
target - точка, вокруг которой вращается камера. (Ось Y - направлена вверх, как в three.js.)
enablePan - разрешает или запрещает перемещение камеры. Значение по умолчанию: true.
enableDumping - добавляет инерцию к движению камеры. Значение по умолчанию: false, т.е. инерция выключена.
dampingFactor - величина инерции камеры.
minDistance, maxDistance - минимальное и максимальное разрешенные расстояния камеры от точки target.
minPolarAngle, maxPolarAngle - минимальный и максимальный разрешенный угол
отклонения камеры от горизонтальной плоскости (взгляд вверх-вниз). Указывается в градусах. Значения по умолчанию min = 0, max = 85.
minAzimuthAngle, maxAzimuthAngle - минимальный и максимальный разрешенный угол поворота камеры. Указывается в градусах. Значения по умолчанию min = 0, max = 360, что соответствует вращению без ограничений.
minPanPosition и maxPanPosition - минимальная и максимальная точка от центра, на которую может перемещаться камера при включенном параметре enablePan.
Маркеры
{
"type": "marker",
"selectable": true,
"classId": "building",
"onClick": "centerCamera",
"props": {
"id": 17,
"socialPopup": true
}
}
classId - параметр определяет внешний вид маркера и текста.
onClick - параметр определяет поведение камеры при клике на маркер.
centerCamera - центрирование камеры при клике на маркер.
selectable - параметр определяет будет ли выделяться иконка, при наведении на нее курсора.
socialPopup - параметр определяет будет и всплывать подсказка с текстом при наведении на иконку курсора.
id - идентификационный номер объекта