67. 创建常规形状物体的旧方法
本教程翻译自官方教程Create Set Shapes - Legacy,各位也可以进入本站镜像站点查看
本文目录
如何使用旧方法创建形状物体
立方体 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
。
三维地面 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