示例#1
0
 public FullscreenQuad(ShaderType_BL type, ShaderFlags flags)
 {
     VertexBufferObject  = GL.GenBuffer();
     VertexArrayObject   = GL.GenVertexArray();
     ElementBufferObject = GL.GenBuffer();
     Initialise(type, flags);
 }
示例#2
0
        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();
        }
示例#3
0
 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);
     }
 }
示例#4
0
        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));
        }
示例#5
0
 public void SetShader(ShaderType_BL type)
 {
     shader = ShaderManager.get(type, flags);
 }
示例#6
0
 public static void put(ShaderType_BL type, ShaderFlags flags, Shader shader)
 {
     Shaders[Tuple.Create(flags, type)] = shader;
 }