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
2,840 每月下载量
在 28 个crate中使用 (通过 rendy)
405KB
9K SLoC
rendy-mesh
是 gfx-hal 的辅助crate,用于创建和使用具有顶点语义的网格。
顶点语义
顶点格式通常与字段名称相关联语义。一个常见的例子是顶点由位置、法线、颜色和纹理坐标字段组成。此crate提供trait和类型,以便在类型级别显式定义顶点的语义。
Position、Normal、TexCoord 等。是具有明确语义的属性。用户可以通过实现 Attribute trait来定义自己的属性类型。
虽然属性类型本身是一个简单的顶点格式(具有单个属性),但复杂的顶点格式是通过组合属性类型创建的。
WithAttribute trait允许获取顶点格式中定义的各个属性的格式化信息。Query trait允许一次性获取多个属性的格式化信息。
从顶点格式查询到的 VertexFormat 可以用于构建图形管道,并将所需的顶点缓冲区从网格绑定到命令缓冲区。
为了定义自定义顶点格式类型,必须实现 AsVertexFormat trait,并提供一个 VertexFormat 关联常量。
WithAttribute 也可以为所有属性和 AsVertexFormat 中的 VertexFormat 关联常量实现,通过利用 WithAttribute 实现,可以更清晰地定义 AsVertexFormat 中的 VertexFormat 关联常量。《code>Query 将自动实现。
网格
Mesh 是一个包含顶点缓冲区以及可选的索引缓冲区,以及缓冲区的顶点格式和索引类型的集合。还有一个原始类型被指定,它定义了顶点如何形成原始图形(线条、三角形等)。要创建 Mesh 的实例,您需要使用 MeshBuilder。
- 将类型化的顶点数据填入
MeshBuilder。 - 提供索引数据。
- 设置原始类型(默认为三角形列表)。
- 调用
MeshBuilder::build。它使用来自gfx-render的Factory创建缓冲区并上传数据。
这就是您的新鲜 Mesh。或者来自 gfx-render 的 Error。
要绑定顶点缓冲区到命令缓冲区,请使用带有排序的 VertexFormat 数组的 Mesh::bind(与设置图形管道时使用的相同)。
依赖项
~5–7MB
~136K SLoC