private void CreateVAO() { var lod = _file.Lods[0]; foreach (var mesh in BuildMeshes(lod)) { var vao = new VAO(BeginMode.Triangles, mesh.CoordVerts.Count); vao.Use(); var vbo = new VBO(); vbo.Buffer(BufferTarget.ArrayBuffer, mesh.CoordVerts.ToArray(), 4); vao.AddVBO(0, vbo); vbo = new VBO(); vbo.Buffer(BufferTarget.ArrayBuffer, mesh.CoordNorms.ToArray(), 4); vao.AddVBO(1, vbo); vbo = new VBO(); vbo.Buffer(BufferTarget.ArrayBuffer, mesh.CoordTex.ToArray(), 2); vao.AddVBO(3, vbo); _vaoModels.Add(vao); var lodMat = lod.Materials[mesh.MatIndex]; _vaoTextures.Add(lodMat.TexIndex); } _vaoGrid = new VAO(BeginMode.Lines, _axisVerts.Length) { DisableDepth = true }; _vaoGrid.Use(); var gridVerts = new VBO(); gridVerts.Buffer(BufferTarget.ArrayBuffer, _axisVerts, 3); _vaoGrid.AddVBO(0, gridVerts); // CheckError(); }
private void CreateVAO() { var lod = _file.Lods[0]; foreach (var mesh in BuildMeshes(lod)) { var vao = new VAO(PrimitiveType.Triangles, mesh.CoordVerts.Count); vao.Use(); var vbo = new VBO(); vbo.Buffer(BufferTarget.ArrayBuffer, mesh.CoordVerts.ToArray(), 4); vao.AddVBO(0, vbo); vbo = new VBO(); vbo.Buffer(BufferTarget.ArrayBuffer, mesh.CoordNorms.ToArray(), 4); vao.AddVBO(1, vbo); vbo = new VBO(); vbo.Buffer(BufferTarget.ArrayBuffer, mesh.CoordTex.ToArray(), 2); vao.AddVBO(3, vbo); _vaoModels.Add(vao); var lodMat = lod.Materials[mesh.MatIndex]; _vaoTextures.Add(lodMat.TexIndex); } _vaoGrid = new VAO(PrimitiveType.Lines, _axisVerts.Length) { DisableDepth = true }; _vaoGrid.Use(); var gridVerts = new VBO(); gridVerts.Buffer(BufferTarget.ArrayBuffer, _axisVerts, 3); _vaoGrid.AddVBO(0, gridVerts); CheckError(); }