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