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();
        }
示例#2
0
        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();
        }