babylon101

参数形状


参数形状101

这些形状或网格由参数或数学数据确定。它们包括线条,线条系统,色带,管子,挤压件,车床形状和不规则多边形。在101课程中,您将只遇到行,您将只使用MeshBuilder方法而不是旧的传统Mesh方法。如何使用任何一种方法创建所有参数形状,并通过进一步阅读找到两者的优缺点。.

线是3D中的一系列线段,其中一个线段的末尾是下一段的开始。线条由3D空间中的一系列点描述。

这三个点(0,0,0),(0,1,1),(0,1,0)将形成两个线段。

这些点由位置向量给出,这些位置向量在Babylon.js中构造为Vector3对象,并按顺序放置在要传递给CreateLines方法的数组中。

var myPoints = [];

var point1 = new BABYLON.Vector3(0, 0, 0);
myPoints.push(point1);
var point2 = new BABYLON.Vector3(0, 1, 1);
myPoints.push(point2);
var point3 = new BABYLON.Vector3(0, 1, 0);
myPoints.push(point3);

//or the possible alternative

var myPoints =[
    new BABYLON.Vector3(0, 0, 0),
    new BABYLON.Vector3(0, 1, 1),
    new BABYLON.Vector3(0, 1, 0)
];

必须将点数组作为points选项传递给CreateLines函数

//creates lines
var lines = BABYLON.MeshBuilder.CreateLines("lines", {points: myPoints}, scene);

您可以将虚线与CreateDashedLines一起使用,并添加破折号dashNb作为选项。

对于CreateLines,选项是

选项 默认值
(Vector3 []) Vector3的数组,行的路径为REQUIRED
更新 (boolean)如果网格是可更新的,则为true
(LineMesh)要更新的线网格的实例 空值
颜色 (Color4 []) Color4的数组,每个点颜色 空值
useVertexAlpha (布尔值)如果不需要alpha混合,则为false(更快) 真正

对于CreateDashedLines,选项是

选项 默认值
(Vector3 []) Vector3的数组,行的路径为REQUIRED
dashSize (数字) 破折号的大小 3
gapSize (数量) 间隙的大小 1
dashNb (数字) 预期的破折号 200
更新 (boolean)如果网格是可更新的,则为true
(LineMesh)要更新的线网格的实例 空值

可更新选项

Lines和Dashed Lines有一个可更新的选项。如果这是真的,则可以更改与线的每个顶点关联的数据,从而改变线的路径。有关更多信息,请参阅 更新顶点。

实例选项

行也有一个实例选项,这意味着只需传递一组新的点就可以有另一种方法来更新行的路径。为此,原始行创建必须将updatable选项设置为true,并将创建的行作为选项实例的值传递。数组中的点数必须保持不变。

示例:

//creates lines
var lines = BABYLON.MeshBuilder.CreateLines("lines", {points: myArray, updatable: true}, scene);

// updates the existing instance of lines : no need for the parameter scene here
lines = BABYLON.MeshBuilder.CreateLines("lines", {points: myNewArray, instance: lines});

大多数但不是所有参数化形状都具有实例选项,因此可以通过这种方式更新其网格。

下一步

在上一节中,关于设置形状,您看到在创建时它们在原点处彼此叠加。参数形状通常也是如此。所以是时候继续在需要的地方定位网格,并找出旋转和缩放。准备?当然可以!位置,旋转和缩放

进一步阅读

如何使用MeshBuilder创建参数化形状
如何创建参数化形状遗留方法的
优点和缺点