love-demo2/shader/minecraft.vert

36 lines
635 B
GLSL

#version 330 core
// per-vertex:
in vec3 Position;
in vec3 Normal;
in vec2 Texture;
// per-instance:
in vec3 BlockPosition;
in float BlockID;
in float Data;
out VS_OUT {
vec3 Position;
vec3 BlockPosition;
vec3 Normal;
vec2 Texture;
flat int BlockID;
flat int Data;
} vs_out;
uniform mat4 Transform;
void main()
{
vec3 position = Position + BlockPosition; // world coordinates
vs_out.Position = position;
vs_out.BlockPosition = BlockPosition;
vs_out.Normal = Normal;
vs_out.Texture = Texture;
vs_out.BlockID = int(BlockID);
vs_out.Data = int(Data);
gl_Position = Transform * vec4(position.xzy, 1.0);
}