Example #1
0
        public static Model CreateModel <TVertex>(TVertex[] vertexData, int[] indices) where TVertex : struct
        {
            var vbo = VertexBuffer.CreateVertexBuffer();

            vbo.LoadData(vertexData);
            var vao = VertexArray.CreateVertexArray();

            vao.Bind();
            var shaderProgram = ShaderProgramFactory.CreateDefault2DShaderProgram();
            var ebo           = ElementBuffer.CreateElementBuffer();

            ebo.Bind();
            ebo.LoadData(indices);
            return(new Model(vao, vbo, ebo, shaderProgram));
        }
Example #2
0
        public static Model CreateModel <TVertex>(Texture texture, TVertex[] vertexData, int[] indices) where TVertex : struct
        {
            var shader = ShaderProgramFactory.CreateDefault2DShaderProgramWithTexture();
            var vbo    = VertexBuffer.CreateVertexBuffer();

            vbo.LoadData(vertexData);
            var vao = VertexArray.CreateVertexArray();

            vao.Bind();
            shader.Use();
            shader.SetVertexAttributes();
            vbo.Bind();
            texture.Bind();
            var ebo   = ElementBuffer.CreateElementBuffer(indices);
            var model = new Model(vao, vbo, ebo, shader);

            return(model);
        }
Example #3
0
        public static Model CreateModel <TVertex>(TVertex[] vertexData, Texture[] textures, int[] indices, ShaderProgram shader) where TVertex : struct
        {
            var vbo = VertexBuffer.CreateVertexBuffer();

            vbo.LoadData(vertexData);
            var vao = VertexArray.CreateVertexArray();

            vao.Bind();
            shader.Use();
            shader.SetVertexAttributes();
            vbo.Bind();
            var ebo   = ElementBuffer.CreateElementBuffer(indices);
            var model = new Model(vao, vbo, ebo, shader);

            for (int i = 0; i < textures.Length; i++)
            {
                textures[i].Bind(i);
            }
            return(model);
        }
Example #4
0
        public override void Setup()
        {
            GL.Enable(EnableCap.DepthTest);
            GL.ClearColor(0.4f, 0.7f, 0.9f, 0.5f);

            var vertices = new ColoredTexturedVertex[] {
                new ColoredTexturedVertex(new Vector3(0.5f, 0.5f, 0.0f), Color4.Blue, new Vector2(1.0f, 1.0f)),
                new ColoredTexturedVertex(new Vector3(0.5f, -0.5f, 0.0f), Color4.Green, new Vector2(1.0f, 0.0f)),
                new ColoredTexturedVertex(new Vector3(-0.5f, -0.5f, 0.0f), Color4.Red, new Vector2(0.0f, 0.0f)),
                new ColoredTexturedVertex(new Vector3(-0.5f, 0.5f, 0.0f), Color4.Yellow, new Vector2(0.0f, 1.0f))
            };
            var indices = new int [] {
                0, 1, 3,
                1, 2, 3
            };
            var vao = VertexArray.CreateVertexArray();

            vao.Bind();
            _vao = vao;
            var vbo = VertexBuffer.CreateVertexBuffer();

            vbo.LoadData(vertices);
            _vbo = vbo;
            var ebo = ElementBuffer.CreateElementBuffer();

            ebo.LoadData(indices);
            _ebo = ebo;
            var shader = ShaderProgramFactory.CreateDefault3DShaderProgramWithTexture();

            _shader = shader;
            var texture0 = Texture.LoadTexture("Assets/Textures/container.png");

            texture0.Bind(0);
            var texture1 = Texture.LoadTexture("Assets/Textures/awesomeface.png");

            texture1.Bind(1);
            _shader.SetInt("texture1", 0);
            _shader.SetInt("texture2", 1);
            base.Setup();
        }
Example #5
0
        public override void Setup()
        {
            GL.ClearColor(0.2f, 0.3f, 0.3f, 1.0f);
            var vertices = new ColoredVertex[]
            {
                new ColoredVertex(new Vector3(0.5f, 0.5f, 0.0f), Color4.AliceBlue), //Bottom-left vertex
                // new ColoredVertex(new Vector3(0.5f, -0.5f, 0.0f),Color4.BlanchedAlmond), //Bottom-right vertex
                // new ColoredVertex(new Vector3(-0.5f,  -0.5f, 0.0f),Color4.Fuchsia), //Top vertex
                new ColoredVertex(new Vector3(-0.5f, -0.5f, 0.0f), Color4.Red),
                new ColoredVertex(new Vector3(-0.5f, 0.5f, 0.0f), Color4.Blue),
                new ColoredVertex(new Vector3(0.5f, 0.5f, 0.0f), Color4.Yellow)
            };
            var vbo = VertexBuffer.CreateVertexBuffer();

            vbo.Bind();
            vbo.LoadData(vertices);
            var ebo = ElementBuffer.CreateElementBuffer();

            ebo.Bind();
            ebo.LoadData(indices);
            var attributes = new [] {
                new VertexAttribute("aPosition", 3, VertexAttribPointerType.Float, sizeof(float) * (3 + 4), 0),
                new VertexAttribute("aColor", 4, VertexAttribPointerType.Float, sizeof(float) * (3 + 4), sizeof(float) * 3)
            };
            var shader = ShaderProgram.CreateShaderProgram("Assets/vertex.shader", "Assets/frag.shader", attributes);

            shader.Use();
            var vao = VertexArray.CreateVertexArray();

            vao.Bind();
            shader.SetVertexAttributes();
            vbo.Bind();
            ebo.Bind();
            VertexArrayObject   = vao;
            VertexBufferObject  = vbo;
            ElementBufferObject = ebo;
            Shader = shader;
            base.Setup();
        }