Mesh
API
Mesh
// 指定mesh的父级,子mesh跟随父mesh变换mesh.parent = parentMesh;
// movePOV// amountForward 表示向前走,前方会随着变换而变换mesh.movePOV(amountRight: number, amountUp: number, amountForward: number);
// 检测mesh之间是否碰撞mesh.intersectsMesh(mesh: AbstractMesh | SolidParticle, precise?: boolean, includeDescendants?: boolean);MergeMeshes
合并多个mesh为一个mesh
const meshes = BABYLON.Mesh.MergeMeshes( meshes: Array<Mesh>, disposeSource?: boolean, allow32BitsIndices?: boolean, meshSubclass?: Mesh, subdivideWithSubMeshes?: boolean, multiMultiMaterials?: boolean);MeshBuilder
CreateLathe
根据设置曲线,和旋转轴,旋转一圈形成图形
const lathe = BABYLON.MeshBuilder.CreateLathe( name: string, options: { shape: Vector3[]; radius?: number; tessellation?: number; clip?: number; arc?: number; closed?: boolean; updatable?: boolean; sideOrientation?: number; frontUVs?: Vector4; backUVs?: Vector4; cap?: number; invertUV?: boolean; }, scene?: Nullable<Scene>);CreateGround
地面平面
const ground = BABYLON.MeshBuilder.CreateGround( name: string, options?: { width?: number; height?: number; subdivisions?: number; subdivisionsX?: number; subdivisionsY?: number; updatable?: boolean; }, scene?: Scene)CreateBox
立方体
const box = BABYLON.MeshBuilder.CreateBox( name: string, options?: { size?: number; width?: number; height?: number; depth?: number; faceUV?: Vector4[]; faceColors?: Color4[]; sideOrientation?: number; frontUVs?: Vector4; backUVs?: Vector4; wrap?: boolean; topBaseAt?: number; bottomBaseAt?: number; updatable?: boolean; }, scene?: Nullable<Scene>);CreateSphere
球体
const sphere = BABYLON.MeshBuilder.CreateSphere( name: string, options?: { segments?: number; diameter?: number; diameterX?: number; diameterY?: number; diameterZ?: number; arc?: number; slice?: number; sideOrientation?: number; frontUVs?: Vector4; backUVs?: Vector4; updatable?: boolean; }, scene?: Nullable<Scene>);CreateCylinder
圆柱体
const cylinder = BABYLON.MeshBuilder.CreateCylinder( name: string, options?: { height?: number; diameterTop?: number; diameterBottom?: number; diameter?: number; tessellation?: number; subdivisions?: number; arc?: number; faceColors?: Color4[]; faceUV?: Vector4[]; updatable?: boolean; hasRings?: boolean; enclose?: boolean; cap?: number; sideOrientation?: number; frontUVs?: Vector4; backUVs?: Vector4; }, scene?: Nullable<Scene>);ExtrudePolygon
多边形
const polygon = BABYLON.MeshBuilder.ExtrudePolygon( name: string, options: { shape: Vector3[]; holes?: Vector3[][]; depth?: number; faceUV?: Vector4[]; faceColors?: Color4[]; updatable?: boolean; sideOrientation?: number; frontUVs?: Vector4; backUVs?: Vector4; wrap?: boolean; }, scene?: Nullable<Scene>, earcutInjection?: any);CreateGroundFromHeightMap
根据高度图创建材质,该图的每个像素的值代表了这个点的高度
const largeGround = BABYLON.MeshBuilder.CreateGroundFromHeightMap( name: string, url: string | { data: Uint8Array; width: number; height: number; }, options?: { width?: number; height?: number; subdivisions?: number; minHeight?: number; maxHeight?: number; colorFilter?: Color3; alphaFilter?: number; updatable?: boolean; onReady?: (mesh: GroundMesh, heightBuffer?: Float32Array) => void; onError?: (message?: string, exception?: any) => void; passHeightBufferInCallback?: boolean; }, scene?: Nullable<Scene>);变换
平移
box.position; // 直接设置位置box.translate(); // 变换旋转
box.rotation.y = BABYLON.Tools.ToRadians(45); // 直接赋值,按照自身坐标轴旋转box.rotate(new BABYLON.Vector3(0, 0, 1), Math.PI / 4); // 按照自身坐标轴旋转
// 指定公共的坐标系旋转box2.rotateAround( new BABYLON.Vector3(-4, 0, 0), new BABYLON.Vector3(0, 0, 1), Math.PI / 2);缩放
box.scaling; // 直接赋值