struct LightParams
{
- uniform vec3 ambient;
- uniform vec3 color;
- uniform float intensity;
- uniform vec3 dir;
+ vec3 ambient;
+ vec3 color;
+ float intensity;
+ vec3 dir;
};
uniform LightParams light;
uniform vec3 material_color;
}
/* Expected output: vertex
-uniform mat4 mvp;
-uniform vec3 offset;
+layout(location=0) uniform mat4 mvp;
+layout(location=4) uniform vec3 offset;
layout(location=0) in vec4 position;
layout(location=1) in vec3 normal;
layout(location=2) in vec2 texcoord;
-out vec3 _vs_out_normal;
-out vec2 _vs_out_texcoord;
+layout(location=0) out vec3 _vs_out_normal;
+layout(location=1) out vec2 _vs_out_texcoord;
void main()
{
gl_Position = mvp*(position+vec4(offset, 1.0));
/* Expected output: fragment
struct LightParams
{
- uniform vec3 ambient;
- uniform vec3 color;
- uniform float intensity;
- uniform vec3 dir;
+ vec3 ambient;
+ vec3 color;
+ float intensity;
+ vec3 dir;
};
-uniform LightParams light;
-uniform vec3 material_color;
-uniform sampler2D occlusion_map;
+layout(location=5) uniform LightParams light;
+layout(location=9) uniform vec3 material_color;
+layout(location=10, binding=83) uniform sampler2D occlusion_map;
layout(location=0) out vec4 frag_color;
-in vec2 _vs_out_texcoord;
-in vec3 _vs_out_normal;
+layout(location=1) in vec2 _vs_out_texcoord;
+layout(location=0) in vec3 _vs_out_normal;
void main()
{
frag_color = vec4(material_color*(light.ambient+light.color*light.intensity*max(dot(light.dir, normalize(_vs_out_normal)), 0.0))*float(texture(occlusion_map, _vs_out_texcoord).x), 1.0);