Bitbybit Docs
    Preparing search index...

    Class BabylonMeshBuilder

    BabylonJS 自带的网格基本体,直接作为可渲染网格构建到场景中,而不经过 CAD 内核:长方体、球体、圆盘、圆环体、多边形、管、多面体、胶囊体、圆柱体、拉伸体、带状体、车削体和地面。它们创建快速、绘制开销低,但不带精确几何体,因此当形状需要测量、切割或导出时请使用内核。每个构建器都将其网格居中于原点,设置 sideOrientation,并在 enableShadows 不为 false 时将其注册为投射阴影。

    Index

    Constructors

    create simple

    • 构建一个以原点为中心的长方体,width 沿 X,height 沿 Y,depth 沿 Z。

      Parameters

      • inputs: CreateBoxDto

        三个尺寸、面朝向和阴影标志

      Returns Mesh

      长方体网格

      const box = bitbybit.babylon.meshBuilder.createBox({ width: 10, height: 5, depth: 20, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建一个以原点为中心、每条边长为 size 的立方体。

      Parameters

      Returns Mesh

      立方体网格

      const cube = bitbybit.babylon.meshBuilder.createCube({ size: 10, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建一个边长为 size、以原点为中心、位于 XY 平面内且面向 Z 轴的平面正方形;除非 sideOrientation 为双面,否则单面平面从背面看不可见。

      Parameters

      Returns Mesh

      平面网格

      const plane = bitbybit.babylon.meshBuilder.createSquarePlane({ size: 10, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个直径为 diameter、以原点为中心的球体;segments 设置其细分程度,越多越圆也越重。

      Parameters

      Returns Mesh

      球体网格

      const ball = bitbybit.babylon.meshBuilder.createSphere({ diameter: 10, segments: 32, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建一个由大小均匀的三角形组成的球体,由二十面体细分而来,比 createSphere 着色更均匀。

      radiusXradiusYradiusZ 按轴拉伸它,为 0 时回退到 radiusflat 给出分面着色。

      Parameters

      • inputs: CreateIcoSphereDto

        半径、平面着色标志、细分数、面朝向和阴影标志

      Returns Mesh

      二十面体球网格

      const ball = bitbybit.babylon.meshBuilder.createIcoSphere({ radius: 5, radiusX: 0, radiusY: 0, radiusZ: 0, flat: false, subdivisions: 4, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建一个半径为 radius、以原点为中心、位于 XY 平面内的平面圆盘;arc 小于 1 时留下一个扇形,因此 0.5 是半圆盘。

      Parameters

      • inputs: CreateDiscDto

        半径、细分数、圆弧比例、面朝向和阴影标志

      Returns Mesh

      圆盘网格

      const disc = bitbybit.babylon.meshBuilder.createDisc({ radius: 5, tessellation: 32, arc: 1, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个绕原点位于 XZ 平面内的圆环:diameter 是圆环的整体直径,thickness 是其管的直径。

      Parameters

      • inputs: CreateTorusDto

        直径、管厚度、细分数、面朝向和阴影标志

      Returns Mesh

      圆环体网格

      const ring = bitbybit.babylon.meshBuilder.createTorus({ diameter: 10, thickness: 2, tessellation: 32, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建一根绕原点缠绕成结的管:pq 是它绕环和穿过环孔的次数,因此 2 和 3 给出经典的三叶结。

      Parameters

      • inputs: CreateTorusKnotDto

        半径、管半径、分段数、缠绕数、面朝向和阴影标志

      Returns Mesh

      环面纽结网格

      const knot = bitbybit.babylon.meshBuilder.createTorusKnot({ radius: 5, tube: 1, radialSegments: 128, tubularSegments: 32, p: 2, q: 3, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 由轮廓点构建一个位于 XZ 平面内的平面填充多边形,可带孔;depth 大于 0 时向下赋予其厚度。

      点是 3D 的,但只使用 X 和 Z,且轮廓不得自相交。

      Parameters

      • inputs: CreatePolygonDto

        轮廓、孔洞、深度、平滑度、面朝向、包裹标志和阴影标志

      Returns Mesh

      多边形网格

      const slab = bitbybit.babylon.meshBuilder.createPolygon({ shape: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]], holes: [], depth: 0, smoothingThreshold: 0.01, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, wrap: false, enableShadows: true });
      
    • 通过将平面多边形(由其在 XZ 平面内的轮廓点给出,可带孔)向下拉伸 depth 来构建实体。

      Parameters

      • inputs: ExtrudePolygonDto

        轮廓、孔洞、深度、面朝向、包裹标志和阴影标志

      Returns Mesh

      拉伸后的网格

      const block = bitbybit.babylon.meshBuilder.extrudePolygon({ shape: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]], holes: [[[3, 0, 3], [7, 0, 3], [7, 0, 7], [3, 0, 7]]], depth: 5, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, wrap: false, enableShadows: true });
      
    • 沿一条由点组成的路径构建半径为 radius 的管;cap 封闭零个、一个或两个端部,arc 小于 1 时使管沿其长度方向开放。

      Parameters

      • inputs: CreateTubeDto

        路径、半径、细分数、封口模式、圆弧比例、面朝向和阴影标志

      Returns Mesh

      管状网格

      const pipe = bitbybit.babylon.meshBuilder.createTube({ path: [[0, 0, 0], [10, 0, 0], [10, 10, 0]], radius: 1, tessellation: 32, cap: 3, arc: 1, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • type 构建十五种内置多面体之一,从四面体(0)到加长五角帐塔(14),或根据 custom 数据构建你自己的多面体。

      sizeXsizeYsizeZ 按轴拉伸它,为 0 时回退到 sizeflat 给出分面着色。

      Parameters

      • inputs: CreatePolyhedronDto

        尺寸和类型、自定义数据、平面着色标志、面朝向和阴影标志

      Returns Mesh

      多面体网格

      const dodecahedron = bitbybit.babylon.meshBuilder.createPolyhedron({ size: 5, type: 2, sizeX: 0, sizeY: 0, sizeZ: 0, flat: true, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建测地球体,即一个二十面体,其面按 mn 的规定细分为三角形,因此表面由近乎相等的三角形构成。

      sizeXsizeYsizeZ 按轴拉伸它,为 0 时回退到 size

      Parameters

      • inputs: CreateGeodesicDto

        细分数值、尺寸、平面着色标志、面朝向和阴影标志

      Returns Mesh

      测地多面体网格

      const dome = bitbybit.babylon.meshBuilder.createGeodesic({ m: 4, n: 4, size: 5, sizeX: 0, sizeY: 0, sizeZ: 0, flat: false, subdivisions: 4, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.frontside, enableShadows: true });
      
    • 构建戈德堡多面体,即像足球一样由六边形和十二个五边形组成的球,mn 设置六边形的数量。

      sizeXsizeYsizeZ 按轴拉伸它,为 0 时回退到 size

      Parameters

      Returns Mesh

      Goldberg 多面体网格

      const ball = bitbybit.babylon.meshBuilder.createGoldberg({ m: 4, n: 4, size: 5, sizeX: 0, sizeY: 0, sizeZ: 0, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个胶囊体,即两端为圆头的圆柱体,沿 orientation 具有给定的 heightradiusradiusTopradiusBottom 分别设置两端的大小。

      Parameters

      Returns Mesh

      胶囊体网格

      const pill = bitbybit.babylon.meshBuilder.createCapsule({ orientation: [0, 1, 0], subdivisions: 2, tessellation: 16, height: 10, radius: 2, capSubdivisions: 6, radiusTop: 2, radiusBottom: 2, topCapSubdivisions: 6, bottomCapSubdivisions: 6, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个沿 Y 竖立、以原点为中心的圆柱体;顶部和底部直径不同则得到圆锥或锥形体,0 将一端收拢成一个点。

      Parameters

      • inputs: CreateCylinderDto

        高度、两个直径、细分数、分段数、面朝向和阴影标志

      Returns Mesh

      圆柱体网格

      const cone = bitbybit.babylon.meshBuilder.createCylinder({ height: 10, diameterTop: 0, diameterBottom: 6, tessellation: 64, subdivisions: 1, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 沿路径扫掠轮廓:shape 是以 XY 平面内的点表示的轮廓,path 是它经过的点,scalerotation(以弧度表示)沿途逐步应用。

      closeShape 连接轮廓的两端,closePath 连接路径的两端,cap 封闭零个、一个或两个端部。

      Parameters

      • inputs: CreateExtrudedShapeDto

        轮廓、路径、缩放、每步的旋转、闭合标志、封口模式、面朝向和阴影标志

      Returns Mesh

      扫掠后的网格

      const rail = bitbybit.babylon.meshBuilder.createExtrudedSahpe({ shape: [[-1, 0, 0], [1, 0, 0], [1, 1, 0], [-1, 1, 0]], path: [[0, 0, 0], [10, 0, 0], [10, 0, 10]], scale: 1, rotation: 0, closeShape: true, closePath: false, cap: 3, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个穿过多条点路径的曲面,用三角形连接相邻的路径,就像布铺在一组线上。

      closePath 连接每条路径的两端,closeArray 将最后一条路径连回第一条,offset 在只给出一条路径时改变点的配对方式。

      Parameters

      • inputs: CreateRibbonDto

        路径、闭合标志、偏移、可更新标志、面朝向和阴影标志

      Returns Mesh

      带状网格

      const sheet = bitbybit.babylon.meshBuilder.createRibbon({ pathArray: [[[0, 0, 0], [10, 0, 0], [20, 0, 0]], [[0, 5, 5], [10, 5, 5], [20, 5, 5]]], closeArray: false, closePath: false, offset: 0, updatable: false, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 绕 Y 轴旋转轮廓,就像车床车削木头:shape 是以 XY 平面内的点表示的轮廓,X 为到轴的距离,radius 将其向外推,arc 小于 1 时使旋转体开放。

      Parameters

      • inputs: CreateLatheDto

        轮廓、半径、细分数、圆弧比例、闭合标志、面朝向和阴影标志

      Returns Mesh

      车削网格

      const vase = bitbybit.babylon.meshBuilder.createLathe({ shape: [[2, 0, 0], [3, 3, 0], [2, 6, 0], [2.5, 8, 0]], radius: 0, tessellation: 64, arc: 1, closed: true, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个以原点为中心、位于 XZ 平面内的平面地面,width 沿 X,height 沿 Z,划分为 subdivisionsXsubdivisionsY 个单元的网格。

      Parameters

      • inputs: CreateGroundDto

        宽度、高度、细分数、面朝向和阴影标志

      Returns Mesh

      地面网格

      const ground = bitbybit.babylon.meshBuilder.createGround({ width: 100, height: 100, subdivisionsX: 1, subdivisionsY: 1, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });
      
    • 构建一个以原点为中心、位于 XY 平面内的平面矩形,width 沿 X,height 沿 Y,面向 Z 轴。

      Parameters

      Returns Mesh

      平面网格

      const plane = bitbybit.babylon.meshBuilder.createRectanglePlane({ width: 20, height: 10, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: true });