static Graphics() { QuadShader = Assets.Shaders["screenquad"]; screenQuad = new VertexArray(); vbo = new Buffer <float>(); vbo.Initialize(new[] { -1f, -1f, 0, 0, 1f, -1f, 1, 0, -1f, 1f, 0, 1, 1f, 1f, 1, 1, }, BufferUsageHint.StaticDraw); ebo = new Buffer <uint>(); ebo.Initialize(new uint[] { 0, 1, 2, 2, 1, 3 }, BufferUsageHint.StaticDraw); screenQuad.SetBuffer(BufferTarget.ArrayBuffer, vbo); screenQuad.SetBuffer(BufferTarget.ElementArrayBuffer, ebo); screenQuad.AttribPointer(QuadShader.GetAttribLocation("vPos"), 2, VertexAttribPointerType.Float, false, sizeof(float) * 4, 0); screenQuad.AttribPointer(QuadShader.GetAttribLocation("texCoords"), 2, VertexAttribPointerType.Float, false, sizeof(float) * 4, sizeof(float) * 2); }
static Draw() { // Init Sprite spriteVbo = new Buffer <float>(); spriteVbo.Initialize(new float[] { -.5f, -.5f, 0f, 1, 0, -.5f, .5f, 0f, 0, 0, .5f, -.5f, 0f, 1, 1, .5f, .5f, 0f, 0, 1 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); spriteEbo = new Buffer <uint>(); spriteEbo.Initialize(new uint[] { 0, 1, 2, 3, 2, 1 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); spriteVao = new VertexArray(); spriteVao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ArrayBuffer, spriteVbo); spriteVao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ElementArrayBuffer, spriteEbo); spriteVao.AttribPointer(Program.StandardShader.GetAttribLocation("v_pos"), 3, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 5, 0); spriteVao.AttribPointer(Program.StandardShader.GetAttribLocation("v_uv"), 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 5, sizeof(float) * 3); // Init cube }
public void Init() { if (IsInitialized) { //throw new Exception("Mesh is already initialized"); Console.WriteLine("skipping Mesh init() because it was already initialized"); return; } vao = new VertexArray(); vbo = new Buffer <Vertex>(); vbo.Initialize(vertices.ToArray(), OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); ebo = new Buffer <uint>(); ebo.Initialize(indices.ToArray(), OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ArrayBuffer, vbo); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ElementArrayBuffer, ebo); vao.AttribPointer(0, 3, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 8, 0); vao.AttribPointer(1, 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 8, sizeof(float) * 3); vao.AttribPointer(2, 3, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 8, sizeof(float) * 5); }
protected override void Load() { shader = CreateShader(File.ReadAllText("data/frag.glsl"), File.ReadAllText("data/vert.glsl")); #region init buffers vbo = new Buffer <float>(); vbo.Initialize(new float[] { -.5f, -.5f, 1, 0, -.5f, .5f, 0, 0, .5f, -.5f, 1, 1, .5f, .5f, 0, 1 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); ebo = new Buffer <uint>(); ebo.Initialize(new uint[] { 0, 1, 2, 3, 2, 1 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); vao = new VertexArray(); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ArrayBuffer, vbo); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ElementArrayBuffer, ebo); vao.AttribPointer(shader.GetAttribLocation("pos"), 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 4, 0); vao.AttribPointer(shader.GetAttribLocation("uv"), 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 4, sizeof(float) * 2); #endregion xtexture = new Texture2D(Resource1.xchar); otexture = new Texture2D(Resource1.ochar); Window.MouseDown += Window_MouseDown; }
static Graphics() { vbo = new Buffer <float>(); vbo.Initialize(new float[] { -.5f, -.5f, -.5f, .5f, .5f, -.5f, .5f, .5f, }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); ebo = new Buffer <uint>(); ebo.Initialize(new uint[] { 0, 2, 1, 3, 1, 2 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); vao = new VertexArray(); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ArrayBuffer, vbo); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ElementArrayBuffer, ebo); vao.AttribPointer(0, 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 2, 0); var glerror = GL.GetError(); if (glerror != ErrorCode.NoError) { Console.WriteLine(glerror + " after loading User interface graphics"); } }
static Sphere() { var verts = new List <float>(); var indces = new List <uint>(); var delta = (PI * 2) / 12; for (int i = 0; i < 12; i++) { verts.Add((float)Cos(i * delta)); verts.Add((float)Sin(i * delta)); indces.Add(12); indces.Add((uint)i); if (i == 11) { indces.Add(0); } else { indces.Add((uint)i + 1); } } verts.Add(0); verts.Add(0); vbo = new Buffer <float>(); vbo.Initialize(verts.ToArray(), OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); ebo = new Buffer <uint>(); ebo.Initialize(indces.ToArray(), OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); vao = new VertexArray(); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ArrayBuffer, vbo); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ElementArrayBuffer, ebo); vao.AttribPointer(Program.shader.GetAttribLocation("pos"), 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 2, 0); }
protected override void Load() { shader = CreateShader(System.IO.File.ReadAllText("data/frag.glsl"), System.IO.File.ReadAllText("data/vert.glsl")); shader.Use(); var vbo = new Buffer <float>(); vbo.Initialize(new float[] { -1, -1, -1, 1, 1, -1, 1, 1 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); var ebo = new Buffer <uint>(); ebo.Initialize(new uint[] { 0, 1, 2, 3, 2, 1 }, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); vao = new VertexArray(); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ArrayBuffer, vbo); vao.SetBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.ElementArrayBuffer, ebo); vao.AttribPointer(shader.GetAttribLocation("v_pos"), 2, OpenTK.Graphics.OpenGL4.VertexAttribPointerType.Float, false, sizeof(float) * 2, 0); Window.MouseWheel += Window_MouseWheel; Window.MouseMove += Window_MouseMove; }
static Skybox() { shader = Assets.Shaders["skybox"]; boxvao = new VertexArray(); vbo = new Buffer <float>(); vbo.Initialize(new float[] { -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f }, BufferUsageHint.StaticDraw); boxvao.SetBuffer(BufferTarget.ArrayBuffer, vbo); boxvao.AttribPointer(0, 3, VertexAttribPointerType.Float, false, sizeof(float) * 3, 0); }