public SystemRender(GameWindow myGame, ViewProjectionManager viewProjectionManager) { MyGame = myGame; _viewProjectionManager = viewProjectionManager; _entities = new List <Entity>(); frameBufferRenders = new Dictionary <string, List <Entity> >(); var shaders = Directory.GetDirectories("Shaders"); foreach (var s in shaders) { ResourceManager.LoadShader(s); } var p = Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(45), MyGame.Width / MyGame.Height, 0.01f, 100f); var o = Matrix4.CreateOrthographicOffCenter(0, MyGame.Width, 0, MyGame.Height, -1000f, 1000f); ResourceManager.GenFrameBuffer("Master", "MasterTexture", MyGame.Width, MyGame.Height, p, o, Matrix4.Identity, new Vector4(0.1f, 0, 0.1f, 1)); ResourceManager.GenPostProcessEffect("Last", "Last", (t, s) => t.BindTextureUniform(s, "s_texture")); _random = new Random(); ResourceManager.GenPostProcessEffect("Blur", "Blur", (t, s) => { t.BindTextureUniform(s, "s_texture"); s.Uniform1("pixelSize", 0.0005f); }); var shake = ResourceManager.GenPostProcessEffect("AttackShake", "Offset", (t, s) => { t.BindTextureUniform(s, "s_texture"); s.Uniform2("offset", new Vector2(0.01f * (float)_random.NextDouble(), 0.01f * (float)_random.NextDouble())); }); shake.Active = false; ResourceManager.GenPostProcessEffect("Offset", "Offset", (t, s) => { t.BindTextureUniform(s, "s_texture"); s.Uniform2("offset", new Vector2(0.001f * (float)_random.NextDouble(), 0.001f * (float)_random.NextDouble())); }); ResourceManager.GenPostProcessEffect("Colour", "Colour", (t, s) => { t.BindTextureUniform(s, "s_texture"); s.Uniform2("delta", new Vector2(0.001f, 0.001f)); }); for (int i = 1; i < ResourceManager.GetPostProccessEffects().Count + 1; i++) { ResourceManager.GenFrameBuffer("Master" + i, "MasterTexture" + i, MyGame.Width, MyGame.Height, p, o, Matrix4.Identity, new Vector4(0.1f, 0, 0.1f, 1)); } var DefaultLitMater = ResourceManager.GenMaterial("TextureLit", "Texture", (e, s) => { DefaultTexturePrep(e, s); s.Uniform3("EyePos", _viewProjectionManager.View.ExtractTranslation()); s.Uniform3("LightPos", new Vector3(0, 5, 0)); }); var DefaultUnlitMater = ResourceManager.GenMaterial("TextureUnLit", "TextureUnLit", (e, s) => DefaultTexturePrep(e, s)); var DefaultLitTextMater = ResourceManager.GenMaterial("TextLit", "Text", (e, s) => { DefaultTextPrep(e, s); s.Uniform3("EyePos", _viewProjectionManager.View.ExtractTranslation()); s.Uniform3("LightPos", new Vector3(0, 5, 0)); }); var DefaultUnlitText = ResourceManager.GenMaterial("TextUnLit", "TextUnLit", (e, s) => DefaultTextPrep(e, s)); }
public SystemCamera(ViewProjectionManager viewProjectionManager) { _viewProjectionManager = viewProjectionManager; }