Вспомогательные объекты (хелперы или 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 - идентификационный номер объекта