Fixed Shader Instancing (with that particles and Text, aswell)
This commit is contained in:
parent
57fb71d01b
commit
fd53c73fa7
8 changed files with 60 additions and 61 deletions
|
|
@ -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));
|
||||
}
|
||||
|
|
@ -15,6 +15,9 @@ namespace SM.Base.Textures
|
|||
/// </summary>
|
||||
public class Texture : TextureBase
|
||||
{
|
||||
private int? _width;
|
||||
private int? _height;
|
||||
|
||||
/// <summary>
|
||||
/// Decides if the bitmap will automatically dispose itself.
|
||||
/// </summary>
|
||||
|
|
@ -28,16 +31,15 @@ namespace SM.Base.Textures
|
|||
/// <inheritdoc />
|
||||
public override int Width
|
||||
{
|
||||
get => Map.Width;
|
||||
protected set
|
||||
{ }
|
||||
get => _width ?? Map.Width;
|
||||
protected set => _width = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override int Height
|
||||
{
|
||||
get => Map.Height;
|
||||
protected set {}
|
||||
get => _height ?? Map.Height;
|
||||
protected set => _height = value;
|
||||
}
|
||||
public float Aspect { get; private set; }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue