这几天在学习wgpu,有一点比较困惑。当我浏览 wgpu 示例(https://github.com/gfx-rs/wgpu/tree/master/wgpu/examples)时,他们对其着色器使用以下语法:
struct VertexOutput {
@location(0) color: vec4<f32>,
@builtin(position) position: vec4<f32>,
}
Run Code Online (Sandbox Code Playgroud)
但我必须像这样编写我的着色器:
struct VertexOutput {
[[location(0)]] color: vec4<f32>;
[[builtin(position)]] position: vec4<f32>;
};
Run Code Online (Sandbox Code Playgroud)
@比起语法,我更喜欢[[]]语法。我的猜测是,这是我需要在 Cargo.toml 中启用的功能,但我无法找出这是什么功能。因此,如果有人能告诉我如何@在我的 wgsl 着色器中使用语法,我将不胜感激。
我猜您目前使用crates.io的wgpu版本?0.12.0
该语法是规范@中新更新的语法。然而最新发布的版本仍然使用旧的语法。webgpuwgpu
如果您现在想使用新语法,您可以master像这样使用 git 的分支(在您的 中Cargo.toml):
wgpu = { git = "https://github.com/gfx-rs/wgpu" }
Run Code Online (Sandbox Code Playgroud)
wgpu版本0.13同时发布,因此您现在可以使用
wgpu = "0.13"
Run Code Online (Sandbox Code Playgroud)
获取新的 wgsl 语法。
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |