diff --git a/assets/shaders/custom_material.vert b/assets/shaders/custom_material.vert index 91d660ec31..86ca3629e2 100644 --- a/assets/shaders/custom_material.vert +++ b/assets/shaders/custom_material.vert @@ -7,14 +7,16 @@ layout(location = 2) in vec2 Vertex_Uv; layout(location = 0) out vec2 v_Uv; layout(set = 0, binding = 0) uniform CameraViewProj { - mat4 ViewProj; - mat4 View; - mat4 InverseView; - mat4 Projection; - vec3 WorldPosition; - float width; - float height; -}; + mat4 clip_from_world; + // Other attributes exist that can be described here. + // See full definition in: crates/bevy_render/src/view/view.wgsl + // Attributes added here must be in the same order as they are defined + // in view.wgsl, and they must be contiguous starting from the top to + // ensure they have the same layout. + // + // Needing to maintain this mapping yourself is one of the harder parts of using + // GLSL with Bevy. WGSL provides a much better user experience! +} camera_view; struct Mesh { mat3x4 Model; @@ -41,7 +43,7 @@ mat4 affine_to_square(mat3x4 affine) { void main() { v_Uv = Vertex_Uv; - gl_Position = ViewProj + gl_Position = camera_view.clip_from_world * affine_to_square(Meshes[gl_InstanceIndex].Model) * vec4(Vertex_Position, 1.0); }