Extruded Shape в Babylon.js — это объект, который
создаётся путём вытягивания 2D формы вдоль третьей оси (оси Z). Этот
подход позволяет создавать сложные 3D-объекты на основе простых
геометрий, таких как многоугольники. В Babylon.js этот процесс
автоматизируется через класс ExtrudeShape.
Чтобы создать extruded shape, необходимо задать форму, которая будет использоваться как база для экструдирования, и параметры вытягивания. Обычно форма представляет собой контур, состоящий из массива точек (2D-полигон).
Пример создания extruded shape:
var scene = new BABYLON.Scene(engine);
var shape = [
new BABYLON.Vector3(0, 0, 0),
new BABYLON.Vector3(1, 0, 0),
new BABYLON.Vector3(1, 1, 0),
new BABYLON.Vector3(0, 1, 0)
];
var extrudedShape = BABYLON.MeshBuilder.ExtrudeShape("extrudedShape", {shape: shape, depth: 2}, scene);
В этом примере создаётся форма, которая имеет четыре вершины, образующие квадрат, и она экструдируется на глубину 2 вдоль оси Z.
Параметры ExtrudeShape:
shape: Массив вершин, описывающий 2D форму.depth: Глубина, на которую будет экструдироваться
форма.cap: Может быть установлен в
BABYLON.Mesh.CAP_NONE, BABYLON.Mesh.CAP_START,
или BABYLON.Mesh.CAP_END, чтобы указать, закрывать ли
экструдированный объект на концах.rotate: Вектор для поворота формы во время
экструдирования.faceUV: Массив, который задаёт текстуры для каждого из
граней объекта.Возможности extruded shape варьируются от простых геометрических форм до сложных объектов с отверстиями и изгибами. Например, можно создать сложный объект, который имитирует трубы, окна или даже компоненты архитектурных моделей.
Extruded Polygon представляет собой разновидность
extruded shape, где 2D форма имеет произвольную многоугольную геометрию.
Для этого используется метод ExtrudePolygon, который
позволяет создавать многоугольники любой формы, а затем экструзировать
их по оси Z.
Для создания экструзированного многоугольника необходимо задать не только контур многоугольника, но и глубину, на которую будет производиться экструзия.
Пример кода для создания экструзированного многоугольника:
var polygon = [
new BABYLON.Vector3(0, 0, 0),
new BABYLON.Vector3(1, 0, 0),
new BABYLON.Vector3(1, 1, 0),
new BABYLON.Vector3(0, 1, 0)
];
var extrudedPolygon = BABYLON.MeshBuilder.ExtrudePolygon("extrudedPolygon", {polygon: polygon, depth: 2}, scene);
В этом примере задаётся простой квадратный многоугольник, который затем экструзируется на глубину 2.
polygon: Массив вершин, описывающих форму
многоугольника.depth: Глубина экструзии.cap: Определяет, будет ли экструзия иметь закрытые
концы.rotate: Угол поворота многоугольника во время
экструзии.Примечание: В отличие от обычной экструзии формы, экструзия многоугольника позволяет создавать более сложные фигуры с произвольной геометрией, что полезно при моделировании нестандартных объектов.
Extruded Polygon используется для создания объектов с многоугольными основаниями. Это может быть полезно для симуляции объектов с различной топологией, например, стен, крыш, оснований для различных конструкций.
Обе технологии позволяют значительно ускорить процесс создания сложных 3D-объектов. При моделировании объектов, таких как здания, трубопроводы или механизмы, экструзия из 2D-форм даёт возможность легко управлять глубиной, шириной и углами объектов, экономя время на моделировании.
Основное различие между этими двумя подходами заключается в типе начальной геометрии. Extruded Shape используется для более простых форм, таких как прямоугольники, круги или эллипсы, в то время как Extruded Polygon применим для произвольных многоугольников, что даёт больше свободы в проектировании.
Экструзированные объекты в Babylon.js играют ключевую роль в создании интерактивных 3D-сцен и могут быть использованы в самых различных областях — от игр до архитектурных визуализаций.