public override void Process(int width, int height, GLTextuer2D tex, GLTextuer2D output) { base.Process(width, height, tex, output); if (shader != null) { ResizeViewTo(tex, output, tex.Width, tex.Height, width, height); tex = output; IGL.Primary.Clear((int)(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit)); Vector2 tiling = new Vector2(TileX, TileY); Vector4 w = Weight; shader.Use(); shader.SetUniform2("tiling", ref tiling); shader.SetUniform("MainTex", 0); shader.SetUniform4F("weight", ref w); IGL.Primary.ActiveTexture((int)TextureUnit.Texture0); tex.Bind(); if (renderQuad != null) { renderQuad.Draw(); } GLTextuer2D.Unbind(); //output.Bind(); //output.CopyFromFrameBuffer(width, height); //GLTextuer2D.Unbind(); Blit(output, width, height); } }
public virtual void DrawAsLight() { if (Mat != null && Mat.Shader != null) { IGLProgram shader = Mat.Shader; shader.Use(); Matrix4 proj = Projection; Matrix4 view = View; Matrix4 m = Model; Matrix4 norm = Matrix4.Invert(m); norm.Transpose(); shader.SetUniformMatrix4("projectionMatrix", ref proj); shader.SetUniformMatrix4("viewMatrix", ref view); shader.SetUniformMatrix4("modelMatrix", ref m); shader.SetUniformMatrix4("normalMatrix", ref norm); Vector2 tiling = Tiling; Vector4 lightColor = new Vector4(LightColor * LightPower, 1); shader.SetUniform2("tiling", ref tiling); shader.SetUniform4F("color", ref lightColor); ///draw vao.Bind(); IGL.Primary.DrawElements((int)BeginMode.Triangles, indicesCount, (int)DrawElementsType.UnsignedInt, 0); GLVertexArray.Unbind(); } }
public override void Process(int width, int height, GLTextuer2D tex, GLTextuer2D output) { base.Process(width, height, tex, output); if (shader != null) { Vector2 tiling = new Vector2(TileX, TileY); Vector4 color = Color; shader.Use(); shader.SetUniform2("tiling", ref tiling); shader.SetUniform4F("color", ref color); if (renderQuad != null) { renderQuad.Draw(); } GLTextuer2D.Unbind(); //output.Bind(); //output.CopyFromFrameBuffer(width, height); //GLTextuer2D.Unbind(); Blit(output, width, height); } }