~ Changed Pipelines

(Default2DPipeline: Has Lights, Post-ProcessingEffects, etc.)
(Basic2DPipeline: Simple Color and Texture stuff, thats it)
This commit is contained in:
Michel Fedde 2020-12-19 18:31:44 +01:00
parent 1ed03fec3f
commit 5d4b360b05
23 changed files with 243 additions and 59 deletions

View file

@ -1,9 +1,11 @@
using System.Reflection;
using SM.Base;
using SM.Base.PostProcess;
using SM.Base.Scene;
using SM.OGL.Framebuffer;
using SM.OGL.Shaders;
using SM.Utility;
using SM2D.Scene;
namespace SM2D.Light
{
@ -12,14 +14,25 @@ namespace SM2D.Light
private PostProcessShader _shader = new PostProcessShader(AssemblyUtility.ReadAssemblyFile("SM2D.Light.light.frag"));
private LightSceneExtension sceneExtension;
public override void Draw(Framebuffer main)
public override void Init(Framebuffer main)
{
base.Draw(main);
base.Init(main);
main.Append("occluder", 1);
}
public override void Draw(Framebuffer main, Framebuffer target)
{
base.Draw(main, target);
_shader.Draw(main.ColorAttachments["color"], collection =>
{
collection["FragSize"].SetUniform2((SMRenderer.CurrentWindow as GLWindow2D).WorldScale);
collection["Ambient"].SetUniform4(sceneExtension.Ambient);
collection["LightCount"].SetUniform1(sceneExtension.Lights.Count);
collection["OccluderMap"].SetTexture(main.ColorAttachments["occluder"]);
collection["ShadowSensitivty"].SetUniform1(1f);
UniformArray array = collection.GetArray("Lights");
for (int i = 0; i < sceneExtension.Lights.Count; i++)