#version 450 #extension GL_GOOGLE_include_directive : enable #extension GL_EXT_multiview : enable layout (set = 0, binding = 0) uniform #include "matrices.h" ; layout (set = 1, binding = 0) uniform sampler2D Palette; layout (push_constant) uniform PushConstants { mat4 Model; }; layout (location = 0) in vec4 position; layout (location = 1) in vec4 velocity; layout (location = 2) in vec4 color; layout (location = 3) in vec4 ramp; layout (location = 0) out vec4 o_velocity; layout (location = 1) out vec4 o_color; layout (location = 2) out vec4 o_ramp; void main (void) { // geometry shader will take care of Projection gl_Position = View[gl_ViewIndex] * (Model * position); o_velocity = View[gl_ViewIndex] * (Model * velocity); uint c = floatBitsToInt (color.x); uint x = c & 0x0f; uint y = (c >> 4) & 0x0f; o_color = texture (Palette, vec2 (x, y) / 15.0); o_ramp = ramp; }