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
|
|
@ -60,7 +60,7 @@ namespace SM2D.Drawing
|
|||
context.Material = _material;
|
||||
context.Mesh = Plate.Object;
|
||||
|
||||
context.Instances[0].ModelMatrix = Matrix4.CreateScale(context.WorldScale.X, context.WorldScale.Y, 1);
|
||||
context.ModelMaster = Matrix4.CreateScale(context.WorldScale.X, context.WorldScale.Y, 1);
|
||||
context.Shader.Draw(context);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,18 +27,16 @@ namespace SM2D.Shader
|
|||
Uniforms["MVP"].SetMatrix4(context.ModelMaster * context.View * context.World);
|
||||
Uniforms["HasVColor"]
|
||||
.SetUniform1(context.Mesh.Attributes["color"] != null);
|
||||
/*
|
||||
Uniforms.GetArray("Instances").Set((i, uniforms) =>
|
||||
|
||||
UniformArray instances = Uniforms.GetArray("Instances");
|
||||
for (int i = 0; i < context.Instances.Count; i++)
|
||||
{
|
||||
if (i >= context.Instances.Count) return false;
|
||||
|
||||
var shaderInstance = instances[i];
|
||||
var instance = context.Instances[i];
|
||||
uniforms["ModelMatrix"].SetMatrix4(instance.ModelMatrix);
|
||||
uniforms["TextureOffset"].SetUniform2(instance.TexturePosition);
|
||||
uniforms["TextureScale"].SetUniform2(instance.TextureScale);
|
||||
|
||||
return true;
|
||||
});*/
|
||||
shaderInstance["ModelMatrix"].SetMatrix4(instance.ModelMatrix);
|
||||
shaderInstance["TextureOffset"].SetUniform2(instance.TexturePosition);
|
||||
shaderInstance["TextureScale"].SetUniform2(instance.TextureScale);
|
||||
}
|
||||
|
||||
// Fragment Uniforms
|
||||
Uniforms["Tint"].SetUniform4(context.Material.Tint);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue