Ejemplo n.º 1
0
        public override GMDL.GeomObject getGeom()
        {
            GMDL.GeomObject geom = new GMDL.GeomObject();

            //Set main Geometry Info
            geom.vertCount     = verts.Length / 3;
            geom.indicesCount  = indices.Length;
            geom.indicesLength = 0x4;

            //Set Strides
            int vx_size = 3 * 4;
            int uv_size = 2 * 4;

            geom.vx_size = vx_size + uv_size;

            //Set Buffer Offsets
            geom.offsets = new int[7];
            geom.bufInfo = new List <GMDL.bufInfo>();

            for (int i = 0; i < 7; i++)
            {
                geom.bufInfo.Add(null);
                geom.offsets[i] = -1;
            }

            geom.mesh_descr = "vu";
            geom.offsets[0] = 0;
            geom.offsets[1] = geom.vertCount * vx_size;
            geom.bufInfo[0] = new bufInfo(0, VertexAttribPointerType.Float, 3, 12, 0, "vPosition", false);
            geom.bufInfo[1] = new bufInfo(1, VertexAttribPointerType.Float, 2, 8, geom.vertCount * 12, "uvPosition", false);

            //Set Buffers
            geom.ibuffer = new byte[4 * indices.Length];
            System.Buffer.BlockCopy(indices, 0, geom.ibuffer, 0, 4 * indices.Length);
            //Only Verticies
            //geom.vbuffer = new byte[4 * verts.Length];
            //System.Buffer.BlockCopy(verts, 0, geom.vbuffer, 0, 4 * verts.Length); //Verts

            geom.vbuffer = new byte[4 * verts.Length + 4 * uvs.Length];
            System.Buffer.BlockCopy(verts, 0, geom.vbuffer, 0, 4 * verts.Length);            //Verts
            System.Buffer.BlockCopy(uvs, 0, geom.vbuffer, 4 * verts.Length, 4 * uvs.Length); //UVs

            return(geom);
        }
Ejemplo n.º 2
0
        public new GMDL.GeomObject getGeom()
        {
            GMDL.GeomObject geom = new GMDL.GeomObject();

            //Set main Geometry Info
            geom.vertCount     = verts.Length / 0x3;
            geom.indicesCount  = indices.Length;
            geom.indicesLength = 0x4;

            //Set Strides
            geom.vx_size = 3 * 4; //3 Floats * 4 Bytes each

            //Set Buffer Offsets
            geom.offsets = new int[7];
            geom.bufInfo = new List <GMDL.bufInfo>();

            for (int i = 0; i < 7; i++)
            {
                geom.bufInfo.Add(null);
                geom.offsets[i] = -1;
            }

            geom.mesh_descr = "vn";
            geom.offsets[0] = 0;
            geom.offsets[2] = 0;
            geom.offsets[4] = 0;
            geom.bufInfo[0] = new GMDL.bufInfo(0, VertexAttribPointerType.Float, 3, 12, 0, "vPosition", false);
            geom.bufInfo[2] = new GMDL.bufInfo(2, VertexAttribPointerType.Float, 3, 12, geom.vertCount * 12, "nPosition", false);
            geom.bufInfo[4] = new GMDL.bufInfo(4, VertexAttribPointerType.Float, 3, 12, 2 * geom.vertCount * 12, "bPosition", false);

            //Set Buffers
            geom.ibuffer = new byte[4 * indices.Length];
            System.Buffer.BlockCopy(indices, 0, geom.ibuffer, 0, geom.ibuffer.Length);

            geom.vbuffer = new byte[4 * (verts.Length + colors.Length + normals.Length)];
            System.Buffer.BlockCopy(verts, 0, geom.vbuffer, 0, 4 * verts.Length);                                     //Copy Vertices
            System.Buffer.BlockCopy(normals, 0, geom.vbuffer, 4 * verts.Length, 4 * normals.Length);                  //Copy Normals
            System.Buffer.BlockCopy(colors, 0, geom.vbuffer, 4 * (verts.Length + normals.Length), 4 * colors.Length); //Copy Colors


            return(geom);
        }
Ejemplo n.º 3
0
        public virtual GMDL.GeomObject getGeom()
        {
            GMDL.GeomObject geom = new GMDL.GeomObject();

            //Set main Geometry Info
            geom.vertCount     = verts.Length / 3;
            geom.indicesCount  = indices.Length;
            geom.indicesLength = 0x4;

            //Set Strides
            geom.vx_size = 3 * 4; //3 Floats * 4 Bytes each

            //Set Buffer Offsets
            geom.offsets = new int[7];
            geom.bufInfo = new List <GMDL.bufInfo>();

            for (int i = 0; i < 7; i++)
            {
                geom.bufInfo.Add(null);
                geom.offsets[i] = -1;
            }

            geom.mesh_descr = "vn";
            geom.offsets[0] = 0;
            geom.offsets[2] = 0;
            geom.bufInfo[0] = new GMDL.bufInfo(0, VertexAttribPointerType.Float, 3, 0, 0, "vPosition", false);
            geom.bufInfo[2] = new GMDL.bufInfo(2, VertexAttribPointerType.Float, 3, 0, 0, "nPosition", false);


            //Set Buffers
            geom.ibuffer = new byte[4 * indices.Length];
            System.Buffer.BlockCopy(indices, 0, geom.ibuffer, 0, geom.ibuffer.Length);
            geom.vbuffer = new byte[4 * verts.Length];
            System.Buffer.BlockCopy(verts, 0, geom.vbuffer, 0, geom.vbuffer.Length);

            return(geom);
        }