#spir-v #shader #glsl #wgsl #parser

shader_to_spirv

比以往任何时候都更容易获得SPIR-V的输出!

2个版本

0.1.1 2021年12月3日
0.1.0 2021年12月3日

#25 in #wgsl

MIT/Apache

7KB
120

shader_to_spirv 使用方法

shader_to_spirv crate提供了一种非常简单的方法来创建SPIR-V的输出。

但仍在开发中,可能存在错误和一些问题。如果您发现其中之一,请报告或创建PR!总是欢迎。

支持的着色器语言

  • WGSL
  • GLSL
  • HLSL

示例

let vs_shader: Vec<u32> = SpirvBuilder::new(
    "../path/to/my_shader.vert",
    ShaderType::Glsl,
    ShaderInfo::new(ShaderStage::Vertex, "main"),
    )
    .unwrap();
let fs_shader: Vec<u32> = SpirvBuilder::new(
    "../path/to/my_shader.wgsl",
    ShaderType::Wgsl,
    ShaderInfo::new(ShaderStage::Fragment, "fs_main"),
    )
    .unwrap();

您还可以这样做

let vs_shader: Vec<u32> = SpirvBuilder::new(
    "../path/to/my_shader.frag",
    ShaderType::Glsl,
    ShaderInfo::new(ShaderStage::Vertex, "main"),
    )
    .with_shader_type(ShaderStage::Fragment)
    .unwrap();

依赖项

~6–14MB
~164K SLoC