8个版本 (4个破坏性更新)

0.5.1 2019年11月7日
0.5.0 2019年11月3日
0.4.1 2019年10月14日
0.4.0 2019年8月20日
0.1.0 2019年2月9日

#7 in #vertex-buffer

Download history 670/week @ 2023-12-14 551/week @ 2023-12-21 291/week @ 2023-12-28 385/week @ 2024-01-04 598/week @ 2024-01-11 575/week @ 2024-01-18 404/week @ 2024-01-25 266/week @ 2024-02-01 614/week @ 2024-02-08 733/week @ 2024-02-15 548/week @ 2024-02-22 615/week @ 2024-02-29 804/week @ 2024-03-07 558/week @ 2024-03-14 807/week @ 2024-03-21 632/week @ 2024-03-28

2,840 每月下载量
28 个crate中使用 (通过 rendy)

MIT/Apache

405KB
9K SLoC

rendy-mesh

gfx-hal 的辅助crate,用于创建和使用具有顶点语义的网格。

顶点语义

顶点格式通常与字段名称相关联语义。一个常见的例子是顶点由位置、法线、颜色和纹理坐标字段组成。此crate提供trait和类型,以便在类型级别显式定义顶点的语义。

PositionNormalTexCoord 等。是具有明确语义的属性。用户可以通过实现 Attribute trait来定义自己的属性类型。

虽然属性类型本身是一个简单的顶点格式(具有单个属性),但复杂的顶点格式是通过组合属性类型创建的。

WithAttribute trait允许获取顶点格式中定义的各个属性的格式化信息。Query trait允许一次性获取多个属性的格式化信息。

从顶点格式查询到的 VertexFormat 可以用于构建图形管道,并将所需的顶点缓冲区从网格绑定到命令缓冲区。

为了定义自定义顶点格式类型,必须实现 AsVertexFormat trait,并提供一个 VertexFormat 关联常量。

WithAttribute 也可以为所有属性和 AsVertexFormat 中的 VertexFormat 关联常量实现,通过利用 WithAttribute 实现,可以更清晰地定义 AsVertexFormat 中的 VertexFormat 关联常量。《code>Query 将自动实现。

网格

Mesh 是一个包含顶点缓冲区以及可选的索引缓冲区,以及缓冲区的顶点格式和索引类型的集合。还有一个原始类型被指定,它定义了顶点如何形成原始图形(线条、三角形等)。要创建 Mesh 的实例,您需要使用 MeshBuilder

  1. 将类型化的顶点数据填入 MeshBuilder
  2. 提供索引数据。
  3. 设置原始类型(默认为三角形列表)。
  4. 调用 MeshBuilder::build。它使用来自 gfx-renderFactory 创建缓冲区并上传数据。

这就是您的新鲜 Mesh。或者来自 gfx-renderError

要绑定顶点缓冲区到命令缓冲区,请使用带有排序的 VertexFormat 数组的 Mesh::bind(与设置图形管道时使用的相同)。

依赖项

~5–7MB
~136K SLoC