67. 创建常规形状物体的旧方法

本教程翻译自官方教程Create Set Shapes - Legacy,各位也可以进入本站镜像站点查看

本文目录

  1. 如何使用旧方法创建形状物体
  2. 立方体
  3. 球体
  4. 平面
  5. 圆盘或正多边形
  6. 圆柱体
  7. 圆环
  8. 地面
  9. 三维地面
  10. 材质平铺的地面
  11. 延伸阅读
  12. 基础 - L1

如何使用旧方法创建形状物体

立方体 Box

var box = BABYLON.Mesh.CreateBox("box", 6.0, scene, false, BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, size, scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var box = BABYLON.Mesh.CreateBox("box", 6.0, scene);

球体 Sphere

var sphere = BABYLON.Mesh.CreateSphere("sphere", 10.0, 10.0, scene, false,  BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, segments(水平分段数), size, scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var sphere = BABYLON.Mesh.CreateSphere("sphere", 10.0, 10.0, scene);

注意根据物体的大小来确定水平分段数(分段数越大,越接近与一个球体,同时资源消耗会越大)

平面 Plane

var plane = BABYLON.Mesh.CreatePlane("plane", 10.0, scene, false, BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, size ,scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var plane = BABYLON.Mesh.CreatePlane("plane", 10.0, scene);

圆盘与正多边形 Disc or Regular Polygon

var disc = BABYLON.Mesh.CreateDisc("disc", 5, 30, scene, false, BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, radius ,tessellation,scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var disc = BABYLON.Mesh.CreateDisc("disc", 5, 30, scene);

根据 tessellation 的值,我们可以得到不同的正多边形
3 三角形
4 正方形
5 五边形
6 六边形
...

圆柱体 Cylinder

var cylinder = BABYLON.Mesh.CreateCylinder("cylinder", 3, 3, 3, 6, 1, scene, false, BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, height ,diamTop(顶面直径), diamBottom(底面直径 ),tessellation(径向分段数),heightSubdivs,scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var cylinder = BABYLON.Mesh.CreateCylinder("cylinder", 3, 3, 3, 6, 1, scene);

圆环 Torus

var torus = BABYLON.Mesh.CreateTorus("torus", 5, 1, 10, scene, false, BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, diameter ,thickness, tessellation,tessellation,scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var torus = BABYLON.Mesh.CreateTorus("torus", 5, 1, 10, scene);

结 Knot

var knot = BABYLON.Mesh.CreateTorusKnot("knot", 2, 0.5, 128, 64, 2, 3, scene, false, BABYLON.Mesh.DEFAULTSIDE);

参数依次为:name, radius ,tube, radialSegments,tubularSegments,p,q,scene, updatable, side orientation。最后两个参数如果我们只需要默认值,就可以省略掉。

var knot = BABYLON.Mesh.CreateTorusKnot("knot", 2, 0.5, 128, 64, 2, 3, scene);

更多关于torus knots

地面 Ground

var ground = BABYLON.Mesh.CreateGround("ground", 6, 6, 2, scene);

参数依次为:name, width ,depth, subdivs,scene

Playground 使用CreateGround创建地面

三维地面 Ground From HeightMap

var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "heightmap.jpg", 200, 200, 250, 0, 10, scene, false, successCallback);

参数依次为:name, heightmapPath ,width,depth, subdivs, minheight, maxheight,scene, updatable, successCallback

我们创建了一个单独的教程,这样我们就可以更多地介绍这个重要的Babylon.js特性。请移步这里了解更多三维地图。

材质平铺的地面 Tiled Ground

非常感谢座谈会成员 Kostar111 提供这个方便的方法来创建材质平铺的地面。下面是创建材质平铺的地面最基本的代码。

var precision = {
    "w" : 2,
    "h" : 2
};
var subdivisions = {
    'h' : 8,
    'w' : 8
};
var tiledGround = BABYLON.Mesh.CreateTiledGround("Tiled Ground", -3, -3, 3, 3, subdivisions, precision, scene, false);

参数依次为:name, xmin ,zmin,xmax, zmax, subdivisions(拼图的数量),(subdivisions.w : in width; subdivisions.h: in height), precision,(precision.w : in width; precision.h: in height),scene, updatable.

Kostar111 也提供了一个很好的教程来帮助我们使用它。这个教程中 Kostar111 详细的解释了材质平铺的地面是如何工作的,并提供了一些 playground 的场景,很好地展示了它的一些用途。

延伸阅读

基础 - L1

Mesh Overview
Set Shapes 101
Parametric Shapes 101
Set Shapes
Parametric Shapes
Polyhedra Shapes
Tiled Planes and Boxes

贡献者

翻译: 阿恒 cnblogs
校对: Catherine catherine__long@126.com
技术支持: 吉吉国王 jijiking@office2.cn / Dushusir github

参与贡献? 联系sevice@office2.cn