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); }
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); }
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); }