Fixed Shader Instancing (with that particles and Text, aswell)

This commit is contained in:
Michel Fedde 2020-12-13 14:21:06 +01:00
parent 57fb71d01b
commit fd53c73fa7
8 changed files with 60 additions and 61 deletions

View file

@ -1,12 +1,18 @@
#version 330
#define maxInstances //!instanceMax
struct Instance {
mat4 ModelMatrix;
vec2 TextureOffset;
vec2 TextureScale;
};
layout(location = 0) in vec3 aPos;
layout(location = 1) in vec2 aTex;
layout(location = 3) in vec4 aColor;
uniform mat4 MVP;
uniform Instance[maxInstances] Instances;
uniform bool HasVColor;
out vec2 vTexture;
@ -14,7 +20,7 @@ out vec4 vColor;
out vec3 FragPos;
void ApplyTexModifier() {
vTexture = aTex;
vTexture = aTex * Instances[gl_InstanceID].TextureScale + Instances[gl_InstanceID].TextureOffset;
}
void CheckVertexColor() {
@ -23,7 +29,7 @@ void CheckVertexColor() {
}
void ApplyModelTransformation() {
gl_Position = MVP * vec4(aPos, 1);
gl_Position = MVP * Instances[gl_InstanceID].ModelMatrix * vec4(aPos, 1);
FragPos = vec3(vec4(aPos, 1));
}