Mesh

.Geom. Mesh

Classes

Face
Vertex

Methods

(static) GenerateGridVerts(config) → {Phaser.Types.Geom.Mesh.GenerateGridVertsResult}

Since:
  • 3.50.0
基于给定的配置对象创建顶点网格,并可选择将其添加到网格中. 网格的大小以像素为单位.示例配置可以是: `{ width: 256, height: 256, widthSegments: 2, heightSegments: 2, tile: true }` 这将创建一个256 x 256像素大小的网格,分成2 x 2个部分,具有 单元间的纹理平铺. 您可以将网格分为垂直和水平两部分.这将 结果,每个网格段生成两个面. `tile` 参数允许您控制图块是否会在网格上重复 段,或者显示完整. 如果将此网格添加到网格,您可以通过 `x` 和 `y` 属性来偏移网格. 紫外线坐标是根据配置中给定的纹理和框架生成的.对于 例如,没有给定帧,UV将在0到1的范围内.如果给定一帧, 例如从纹理图谱,UV将在该帧的范围内生成.
Parameters:
Name Type Description
config Phaser.Types.Geom.Mesh.GenerateGridConfig 网格配置对象.
Returns:
网格结果对象,包含生成的顶点和标记.
Type
Phaser.Types.Geom.Mesh.GenerateGridVertsResult

(static) GenerateObjVerts(data, meshopt, scaleopt, xopt, yopt, zopt, rotateXopt, rotateYopt, rotateZopt, zIsUpopt) → {Phaser.Types.Geom.Mesh.GenerateVertsResult}

Since:
  • 3.50.0
这个方法将返回一个包含面和顶点实例的对象 从解析的三角OBJ模型数据给这个函数. 对象数据应该已经通过解析对象函数预先解析: ```javascript var data = Phaser.Geom.Mesh.ParseObj(rawData, flipUV); var results = GenerateObjVerts(data); ``` 或者,您可以解析通过对象文件加载器加载的对象文件: ```javascript preload () { this.load.obj('alien', 'assets/3d/alien.obj); } var results = GenerateObjVerts(this.cache.obj.get('alien)); ``` 在导出模型数据之前,请确保您的3D包已对其进行了三角测量. 您可以使用此函数返回的数据来填充网格游戏对象的顶点. 您可以将多个模型添加到单个网格中,尽管在以下情况下它们将作为一个模型 移动或者旋转.如果模型数据太小(或太大)而无法可视化,您可以缩放模型数据. 您也可以通过 `x` , `y` 和 `z` 参数来偏移模型.
Parameters:
Name Type Attributes Default Description
data Phaser.Types.Geom.Mesh.OBJData 解析后的OBJ模型数据.
mesh Phaser.GameObjects.Mesh <optional>
一个可选的网格游戏对象.如果给定,生成的面将自动添加到该网格.设置为 `null` 以跳过.
scale number <optional>
1 模型数据的缩放量.如果模型输出太小或太大而无法看到,请使用此选项.
x number <optional>
0 将模型x位置平移此量.
y number <optional>
0 将模型y位置平移此量.
z number <optional>
0 将模型z位置平移这个量.
rotateX number <optional>
0 将模型在x轴上旋转这个量,以弧度为单位.
rotateY number <optional>
0 将模型在y轴上旋转这个量,以弧度为单位.
rotateZ number <optional>
0 将模型在z轴上旋转这个量,以弧度为单位.
zIsUp boolean <optional>
true z轴向上(真),还是y轴向上(假)?
Returns:
解析的面和顶点对象.
Type
Phaser.Types.Geom.Mesh.GenerateVertsResult

(static) GenerateVerts(vertices, uvs, indiciesopt, containsZopt, normalsopt, colorsopt, alphasopt) → {Phaser.Types.Geom.Mesh.GenerateVertsResult}

Since:
  • 3.50.0
通过解析给定的数据生成一组面和顶点对象. 该方法将根据 `containsZ` 参数采用两种格式之一的顶点数据. 如果你的顶点数据是 `x` , `y` 对,那么 `containsZ` 应该是 `false` (这是默认设置) 如果您的顶点数据是由 `x` , `y` 和 `z` 值组成的组,则 `containsZ` 参数必须为真. `uvs` 参数是一个由 `u` 和 `v` 对组成的数字数组. `normals` 参数是一个数值数组,由 `x` , `y` 顶点法向值组成,如果 `containsZ` 为真,则`Z`值也为真. `indicies` 参数是一个可选数组,如果给定,它是要添加的顶点的索引列表. `colors` 参数是一个可选的数组或单个值,如果给定的话,它将设置创建的每个顶点的颜色. `alphas` 参数是一个可选的数组或单个值,如果给定的话,它将设置创建的每个顶点的alpha. 当提供索引数据时,假设所有数组都被索引,而不仅仅是顶点. 以下示例将使用索引数组创建一个256 x 256大小的四边形: ```javascript const vertices = [ -128, 128, 128, 128, -128, -128, 128, -128 ]; const uvs = [ 0, 1, 1, 1, 0, 0, 1, 0 ]; const indices = [ 0, 2, 1, 2, 3, 1 ]; GenerateVerts(vertices, uvs, indicies); ``` 如果数据没有被索引,则假设数组都包含顺序数据.
Parameters:
Name Type Attributes Default Description
vertices Array.<number> 顶点数组. `xy` 对,如果 `containsZ` 参数为 `true` ,则为 `xyz` .
uvs Array.<number> 紫外线对阵列.
indicies Array.<number> <optional>
可选顶点标记数组.如果没有,请传递 `null` 或空数组.
containsZ boolean <optional>
false 顶点数据是否包含 `z` 分量?
normals Array.<number> <optional>
可选顶点法线数组.如果没有,请传递 `null` 或空数组.
colors number | Array.<number> <optional>
0xffffff 一组颜色,每个顶点一个,或应用于所有顶点的单一颜色值.
alphas number | Array.<number> <optional>
1 一组阿尔法值,每个顶点一个,或应用于所有顶点的单个阿尔法值.
Returns:
解析的面和顶点对象.
Type
Phaser.Types.Geom.Mesh.GenerateVertsResult

(static) ParseObj(data, flipUVopt) → {Phaser.Types.Geom.Mesh.OBJData}

Since:
  • 3.50.0
解析波前OBJ文件,从中提取模型并以数组形式返回. 模型数据*必须被三角化,网格游戏对象才能渲染它.
Parameters:
Name Type Attributes Default Description
data string OBJ文件数据为原始字符串.
flipUV boolean <optional>
true 翻转UV坐标?
Returns:
解析的模型和材料数据.
Type
Phaser.Types.Geom.Mesh.OBJData

(static) ParseObjMaterial(mtl) → {object}

Since:
  • 3.50.0
获取一个波前材质文件,并提取名为 材质,将其转换为整数颜色值并返回. 这在内部由 `addOBJ` 和 `addModel`方法使用,但公开用于 公众消费也是如此. 请注意,这仅适用于以 `Kd r g b` 格式指定的漫射值,其中 `g` 和 `b` 是可选的,但 `r` 是必需的.它不支持光谱rfl文件, 或任何其他重要声明(如 `Ka` 或 `Ks` )
Parameters:
Name Type Description
mtl string OBJ MTL文件作为原始字符串,即.通过 `this.load.text` 加载.
Returns:
解析后的材质颜色,其中对象的每个属性都与材质名称相匹配.
Type
object

(static) RotateFace(face, angle, cxopt, cyopt)

Since:
  • 3.50.0
将面的顶点旋转到给定的角度. 调整的是实际的顶点位置,而不是它们的变换位置. 因此,这将直接更新顶点数据.
Parameters:
Name Type Attributes Description
face Phaser.Geom.Mesh.Face 要旋转的面.
angle number 旋转角度,以弧度为单位.
cx number <optional>
可选的旋转中心.如果没有给出,使用面在中心.
cy number <optional>
可选的旋转中心.如果没有给出,使用面在中心.