mirror of
https://github.com/bevyengine/bevy
synced 2024-11-14 00:47:32 +00:00
83a358bf33
# Objective - The current shader code is misleading since it makes it look like a struct is passed to the bind group 0 but in reality only the color is passed. They just happen to have the exact same memory layout so wgsl doesn't complain and it works. - The struct is defined after the `impl Material` block which is backwards from pretty much every other usage of the `impl` block in bevy. ## Solution - Remove the unnecessary struct in the shader - move the impl block
18 lines
685 B
GLSL
18 lines
685 B
GLSL
#version 450
|
|
layout(location = 0) in vec2 v_Uv;
|
|
|
|
layout(location = 0) out vec4 o_Target;
|
|
|
|
layout(set = 1, binding = 0) uniform vec4 CustomMaterial_color;
|
|
|
|
layout(set = 1, binding = 1) uniform texture2D CustomMaterial_texture;
|
|
layout(set = 1, binding = 2) uniform sampler CustomMaterial_sampler;
|
|
|
|
// wgsl modules can be imported and used in glsl
|
|
// FIXME - this doesn't work any more ...
|
|
// #import bevy_pbr::pbr_functions as PbrFuncs
|
|
|
|
void main() {
|
|
// o_Target = PbrFuncs::tone_mapping(Color * texture(sampler2D(CustomMaterial_texture,CustomMaterial_sampler), v_Uv));
|
|
o_Target = CustomMaterial_color * texture(sampler2D(CustomMaterial_texture,CustomMaterial_sampler), v_Uv);
|
|
}
|