public FullscreenQuad(ShaderType_BL type, ShaderFlags flags) { VertexBufferObject = GL.GenBuffer(); VertexArrayObject = GL.GenVertexArray(); ElementBufferObject = GL.GenBuffer(); Initialise(type, flags); }
public void Render(ShaderType_BL type) { // add material stuff here mat.RenderMaterial(); mat.SetShader(type); mat.UpdateWorldTransformMatrix(GetModelMatrix()); mat.shader.BindMatrix4("viewProjection", CameraManager.GetActiveCamera().GetViewProjectionMatrix()); // mat.shader.BindMatrix4("projection", CameraManager.GetActiveCamera().GetProjectionMatrix()); mat.shader.BindVector3("viewPos", CameraManager.GetActiveCamera().Position); mat.shader.BindFloat("FogEndDistance", RenderingParameters.FogEndDistance); mat.shader.BindFloat("roughness", 0.1f); mat.shader.BindFloat("metallic", 0.0f); vol.Render(); }
public static Shader get(ShaderType_BL type, ShaderFlags flags = 0) { if (Shaders.ContainsKey(Tuple.Create(flags, type))) { //Return existing shader return(Shaders[Tuple.Create(flags, type)]); } else { //Create shader Shader shader = new Shader(type, flags); Shaders.Add(Tuple.Create(flags, type), shader); return(shader); } }
void Initialise(ShaderType_BL type, ShaderFlags flags) { shader = ShaderManager.get(type, flags); GL.BindVertexArray(VertexArrayObject); GL.BindBuffer(BufferTarget.ArrayBuffer, VertexBufferObject); GL.BindBuffer(BufferTarget.ElementArrayBuffer, ElementBufferObject); GL.BufferData(BufferTarget.ArrayBuffer, vertices.Length * sizeof(float), vertices, BufferUsageHint.StaticDraw); GL.BufferData(BufferTarget.ElementArrayBuffer, indices.Length * sizeof(uint), indices, BufferUsageHint.StaticDraw); GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 5 * sizeof(float), 0); GL.EnableVertexAttribArray(0); int texCoordLocation = shader.GetAttribLocation("aTexCoord"); GL.EnableVertexAttribArray(texCoordLocation); GL.VertexAttribPointer(texCoordLocation, 2, VertexAttribPointerType.Float, false, 5 * sizeof(float), 3 * sizeof(float)); }
public void SetShader(ShaderType_BL type) { shader = ShaderManager.get(type, flags); }
public static void put(ShaderType_BL type, ShaderFlags flags, Shader shader) { Shaders[Tuple.Create(flags, type)] = shader; }