MeshBuilder: Box, Sphere, Cylinder, Plane, Ground

Библиотека Babylon.js предоставляет мощный инструмент для создания 3D-объектов на веб-странице с использованием WebGL. Один из ключевых компонентов этой библиотеки — класс MeshBuilder, который облегчает создание базовых геометрических форм, таких как кубы, сферы, цилиндры и другие объекты. В этой главе рассмотрим, как использовать MeshBuilder для создания стандартных примитивов: Box, Sphere, Cylinder, Plane и Ground.

1. Создание Box

Метод MeshBuilder.CreateBox позволяет создать трёхмерный куб или прямоугольный параллелепипед. Он принимает несколько параметров, позволяющих детализировать размеры, положение и материал объекта.

var box = BABYLON.MeshBuilder.CreateBox("box", {
    size: 2, // Размер стороны куба
    width: 4, // Ширина (для прямоугольного параллелепипеда)
    height: 3, // Высота
    depth: 1, // Глубина
}, scene);
  • size — если указан только этот параметр, то создаётся куб с равными сторонами.
  • width, height, depth — используются для создания прямоугольного параллелепипеда с заданными размерами по каждой из осей.

При создании объекта можно также указать дополнительные параметры, такие как updatable (обновляемость объекта), sideOrientation (ориентация сторон) и другие.

2. Создание Sphere

Метод MeshBuilder.CreateSphere используется для создания сферы. Он поддерживает различные параметры, которые позволяют точно настроить радиус, сегментацию и другие аспекты объекта.

var sphere = BABYLON.MeshBuilder.CreateSphere("sphere", {
    diameter: 3, // Диаметр сферы
    segments: 16, // Количество сегментов, определяющее гладкость
}, scene);
  • diameter — определяет диаметр сферы. Это основной параметр для задания её размера.
  • segments — количество вертикальных и горизонтальных сегментов, влияющих на геометрию объекта. Чем больше сегментов, тем более гладкой будет выглядеть сфера.
  • arc — параметр для создания только части сферы, а не целой.

Сфера, созданная этим методом, идеально подходит для визуализации планет, шаров и других круглых объектов.

3. Создание Cylinder

Метод MeshBuilder.CreateCylinder позволяет создавать цилиндры. Этот объект может быть полезен для создания колонн, труб или других объектов с круглыми основаниями.

var cylinder = BABYLON.MeshBuilder.CreateCylinder("cylinder", {
    diameterTop: 2, // Диаметр верхней части
    diameterBottom: 4, // Диаметр нижней части
    height: 5, // Высота цилиндра
    tessellation: 16, // Количество сечений, определяющее плавность объекта
}, scene);
  • diameterTop и diameterBottom — задают диаметр верхней и нижней частей цилиндра. Если они равны, цилиндр будет сужаться кверху или расширяться в зависимости от значений.
  • height — высота цилиндра.
  • tessellation — количество сечений цилиндра, определяющее его детализацию. Чем выше это значение, тем более плавной будет поверхность объекта.

4. Создание Plane

Метод MeshBuilder.CreatePlane используется для создания плоской поверхности. Это может быть полезно для создания экранов, пола или любых других плоских объектов.

var plane = BABYLON.MeshBuilder.CreatePlane("plane", {
    size: 10, // Размер стороны квадрата
    updatable: false, // Если true, объект можно будет изменять
}, scene);
  • size — задаёт длину стороны квадрата. Плоскость будет иметь размер size x size.
  • updatable — указывает, можно ли изменять геометрию плоскости после её создания.

Параметр sideOrientation позволяет определить, с какой стороны будет направлена поверхность. Это важно при создании объектов с двухсторонними текстурами или при необходимости обратной ориентации.

5. Создание Ground

Метод MeshBuilder.CreateGround предназначен для создания земли или большого плоского объекта, обычно используемого в качестве основы сцены.

var ground = BABYLON.MeshBuilder.CreateGround("ground", {
    width: 50, // Ширина земли
    height: 50, // Длина земли
    subdivisions: 1, // Количество сегментов для детали поверхности
}, scene);
  • width и height — задают размеры земли.
  • subdivisions — параметр, определяющий количество разделений поверхности на более мелкие части. Он позволяет создавать более детализированные текстуры на большой плоскости.

Кроме того, метод поддерживает параметры для создания неровностей на поверхности, такие как updatable, который позволяет обновлять поверхность земли в реальном времени.

6. Работа с параметрами

Каждый из методов MeshBuilder имеет обширные возможности для настройки объектов. Например, можно указать параметры для изменения ориентации, создание прозрачных объектов, текстурирование и добавление материалов.

Пример использования материалов:

var material = new BABYLON.StandardMaterial("material", scene);
material.diffuseColor = new BABYLON.Color3(0, 0, 1); // Синий цвет
sphere.material = material;

Здесь создается стандартный материал с синим цветом, который затем применяется к сфере.

7. Заключение

MeshBuilder — это мощный инструмент для создания стандартных геометрических форм в Babylon.js. Он предоставляет разработчикам простоту использования, при этом сохраняя гибкость в настройке объектов. Благодаря многочисленным параметрам, таким как размеры, сегментация, ориентация и возможности для текстурирования, библиотека позволяет создавать как простые, так и сложные 3D-объекты для веб-приложений.