使用网格

网格是顶点、边和面的集合,以平面和直边以及形成点之间的面的三角形定义 3D 立体对象的形状。

一个网格可以有许多三角形簇,每个簇都有其自己的材料。

使用图元网格

在 Kanzi Studio 中,您可以创建基本网格。Kanzi 从一组参数创建基本网格,同时将导入的网格存储在顶点缓冲区中。这些基本网格的主要目的是用于原型设计。基本网格始终只有一个簇,因此只有一种材质。

这些基本网格在 Kanzi Studio 中可用:

  • Box 是一个以其原点为中心的立方体网格。

    ../../_images/box.png
  • Plane 是一个填充的平面网格,具有四个以原点为中心的顶点。

    ../../_images/plane.png
  • Sphere 是一个以原点为中心的球体网格。

    ../../_images/sphere.png

使用 Kanzi Engine API,您还可以创建圆锥网格。在 Kanzi Engine C++ API 参考中,请参阅 generateCone。

设置球体网格的细分类型

在 Kanzi 中可用的球体细分类型有:

  • UV Sphere 由极点的三角形扇形和其他地方的四边形面组成。这是 Kanzi 中的默认球体类型。

  • Icosphere 是由三角形组成的多面体球。二十面体球在每个方向上都是均匀的。

  • Quad Sphere 是一个由投影到球体的四边形组成的细分框。

要设置球体网格的细分类型,请选择 Sphere 节点,并在 Properties 中设置 Sphere Type 属性的值。

../../_images/sphere-type.png

小技巧

要查看网格的几何形状,请在 Preview 中:

  1. 单击 analyze-off 以进入 Analyze 模式。

  2. 右键单击 分析开启 并选择 Wireframe。

../../_images/preview-sphere-mesh-wireframe.png

设置原始网格的细分级别

细分将表示对象的顶点集划分为三角形或四边形。细分使您能够根据网格与相机之间的距离等因素在网格中添加或减少细节。例如,您可以对较远的网格使用较低的细分级别。

使用 Subdivisions 属性设置基本网格的细分级别。当您增加 Subdivisions 属性的值时,网格中的几何数量呈二次增长。

../../_images/primitive-subdivisions.png

这些图像显示了渲染类型为 UV Sphere 的 Sphere 节点,并使用不同的 Subdivisions 属性值的结果。默认值为 6。

../../_images/uv-sphere-subdivisions.png

这些图像显示了一个 Plane 节点,该节点使用 VertexPhongMaterial 材质,并由红色和蓝色聚光灯照亮,具有不同的 Subdivisions 属性值。每次细分都会使平面中的瓦片数量成平方增加:\(tiles = (subdivisions + 1)^2\)。

0 subdivisions, 1 tile:

10 个子区,121 个瓦片:

100 个子区,10201 个瓦片:

../../_images/plane-subdivisions-0.png ../../_images/plane-subdivisions-10.png ../../_images/plane-subdivisions-100.png

在基本网格上渲染法线贴图纹理

要在基本网格上使用带有法线贴图纹理的材质,请选择基本网格节点,并在 Properties 中启用 Generate Tangents 属性。

../../_images/enable-generate-tangents.png

使用导入的网格

您可以将您使用第三方工具创建的网格导入到 Kanzi Studio。

使用 Model 节点显示 Kanzi 应用程序中导入的网格。

请参阅 导入 3D 资产。

在您将网格导入到您的 Kanzi Studio 项目后,Kanzi Studio 将这些网格存储在 Library > Meshes 中。Kanzi Studio 在 Library > Resource Files > 3D Assets 中显示包含网格的文件。请参阅 3D 资产 (3D Assets)。

../../_images/meshes-3dassets-in-library.png

Kanzi 仅在需要网格时将网格数据加载到内存中。当您更改已加载的数据时,Kanzi 会保存您对网格所做的更改。

在 Kanzi Studio 中,您只能看到您导入的网格的数据。原始网格的参数在每个网格的属性中指定。

Kanzi 支持网格中的 32 位索引。

特性映射

属性映射是一个网格属性,用于指定在渲染几何体时如何处理网格顶点缓冲区中的属性。属性映射将着色器属性映射到顶点缓冲区属性。通常,属性是根据顶点属性的语义自动推导的。例如,顶点缓冲区的位置属性被映射到所用着色器的位置属性。请参阅 着色器特性。

当在单个网格上使用一个以上的纹理时,您必须手动设置顶点缓冲区中的哪个纹理坐标特性要映射到哪个着色器特性。

Mesh 属性类型

要查看网格可用属性类型的完整列表,请参阅 网格 (Mesh)。

基元属性类型和消息

要查看基元网格节点的可用属性类型的完整列表,请参阅:

另请参阅

优化网格

3D 资产 (3D Assets)

导入

材质类型和材质

着色器 (Shaders)

使用 Morph 资源

使用 Kanzi Engine API 创建网格