Babylon.js Apis – MeshBuilder

MeshBuilder

MeshBuilder 是包含一系列创建形状函数的类,下表中包含了所有相关的 api:

表中所有的函数都是静态函数,即必须通过构造器直接调用(MeshBuilder.Xxxxx)。

函数名称 作用 描述
CreateBox [2]
CreateCylinder
CreateDecal
CreateDisc
CreateGround
CreateGroundFromHeightMap
CreateIcoSphere
CreateLathe
CreateLineSystem
CreateLines
CreatePlane
CreatePolygon
CreatePolyhedron
CreateRibbon
CreateSphere
CreateTiledGround
CreateTorus
CreateTorusKnot
CreateTube
ExtrudePolygon
ExtrudeShape
ExtrudeShapeCustom

CreateBox(name: string, options: object, scene?: Nullable): Mesh

创建规则的盒子形状(长方体,正方体等等)

name: string

该形状的名称。

options: object

该选项对象中所有的属性都是可选的

名称 类型 可选? 描述
backUVs Vector4 yes
depth number yes 相当长度(长方体)
faceColors Color4[6] yes 6个数组长的Color4 对象,标识每个面的颜色
faceUV Vector4[6] yes 每个面的形状
frontUVs Vector4 yes
height number yes
sideOrientation number yes
size number yes width, height, depth 默认都是这值
updatable boolean yes
width number yes

来看看每个属性设置后的效果:

无属性选项,默认盒子

const createBox = scene => BB.MeshBuilder.CreateBox('box', {}, scene)

效果:

img

默认的比例是: width:height:depth = 1:1:1

修改 width, height, depth, size 属性值,增加一倍(2)

宽度加一倍:

效果:

img

宽高加倍:

img

宽高长加倍或统一由 size 来设置:

img

面的颜色配置 faceColors

faceColors 数组每个元素所对应的各面表:

faceColors[4] = new BB.Color4(1, 0, 0, 1) // red top

faceColors[1] = new BB.Color4(0, 1, 0, 1) // green front

上面的代码创建的是个前面是绿色,顶面是红色的正方体:

img

根据下面的设置可以定位数组每个元素所对应的那一面:

索引体面方位
0正后方
1正前方
2右侧
3左侧
4顶部
5底部

官方实例链接(效果查看该链接):https://www.babylonjs-playground.com/#ICZEXW#5

1
2
3
4
5
6
faceColors[0] = new BABYLON.Color4(0,0,1,1); // blue back
faceColors[1] = new BABYLON.Color4(0,1,0,1); // green front
faceColors[2] = new BABYLON.Color4(0,0,0.5,1); // deep blue right
faceColors[3] = new BABYLON.Color4(0,0.5,0,1); // deep blue left
faceColors[4] = new BABYLON.Color4(1,0,0,1); // red top
faceColors[5] = new BABYLON.Color4(0.5,0,0,1); // deep red bottom

scene: Nullable

该形状所在的场景(画布)

CreateSphere(name: string, options: object, scene?: Nullable< Scene>): Mesh

创建球体。

options: object

所有选项的属性均为可选(Optional)

arc?: number

backUVs?: Vector4

diameter?: number

diameterX?: number

diameterY?: number

diameterZ?: number

frontUVs?: Vector4

segments?: number

sideOrientation?: number

slice?: number

updatable?: boolean

本文标题:Babylon.js Apis – MeshBuilder

文章作者:ZhiCheng Lee

发布时间:2019年05月08日 - 09:19:39

最后更新:2019年06月16日 - 20:25:17

原始链接:http://blog.gcl666.com/2019/05/08/babylon_api_meshbuilder/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%