Constant blue_engine::utils::default_resources::DEFAULT_SHADER

source ยท
pub const DEFAULT_SHADER: &str = "// blocks\n\n//@CAMERA_STRUCT\n\nstruct TransformationUniforms {\n    transform_matrix: mat4x4<f32>,\n};\n@group(2) @binding(0)\nvar<uniform> transform_uniform: TransformationUniforms;\n\nstruct VertexInput {\n    @location(0) position: vec3<f32>,\n    @location(1) texture_coordinates: vec2<f32>,\n};\n\nstruct VertexOutput {\n    @builtin(position) position: vec4<f32>,\n    @location(0) texture_coordinates: vec2<f32>,\n};\n\nstruct InstanceInput {\n    @location(3) model_matrix_0: vec4<f32>,\n    @location(4) model_matrix_1: vec4<f32>,\n    @location(5) model_matrix_2: vec4<f32>,\n    @location(6) model_matrix_3: vec4<f32>,\n};\n\n// Vertex Stage\n@vertex\nfn vs_main(input: VertexInput, instance: InstanceInput) -> VertexOutput {\n    let model_matrix = mat4x4<f32>(\n        instance.model_matrix_0,\n        instance.model_matrix_1,\n        instance.model_matrix_2,\n        instance.model_matrix_3,\n    );\n\n    var out: VertexOutput;\n    out.texture_coordinates = input.texture_coordinates;\n    //@CAMERA_VERTEX\n    return out;\n}\n\n// Fragment Stage\nstruct FragmentUniforms {\n    color: vec4<f32>,\n};\n@group(2) @binding(1)\nvar<uniform> fragment_uniforms: FragmentUniforms;\n\n@group(0) @binding(0)\nvar texture_diffuse: texture_2d<f32>;\n\n@group(0) @binding(1)\nvar sampler_diffuse: sampler;\n\n@fragment\nfn fs_main(input: VertexOutput) -> @location(0) vec4<f32> {\n    if fragment_uniforms.color.w == 0.0 {\n        return textureSample(texture_diffuse, sampler_diffuse, input.texture_coordinates);\n    } else {\n        return textureSample(texture_diffuse, sampler_diffuse, input.texture_coordinates) * fragment_uniforms.color;\n    }\n}";
Expand description

The default shader file code