public void loadIndexes(BobModelChunk bmc) { if (bmc.indexType == Bob.IndexFormat.USHORT) { myModel.myIbo.setData(bmc.indexShort); } else if (bmc.indexType == Bob.IndexFormat.UINT) { myModel.myIbo.setData(bmc.indexInt); } }
public void loadVerts(BobModelChunk bmc) { for (int i = 0; i < bmc.vertexCount; i++) { V3N3T2 v = new V3N3T2(); v.Position = bmc.verts[i]; v.Normal = bmc.normals[i]; v.TexCoord = bmc.uvs[i]; myVerts.Add(v); } myModel.myVbo.setData(myVerts); }
public void loadModel(BobModelChunk bmc) { loadMaterials(bmc.myMaterials); loadVerts(bmc); loadIndexes(bmc); foreach (BobMesh bm in bmc.myMeshes) { Mesh mesh = new Mesh(); mesh.primativeType = bmc.primativeType; mesh.indexBase = (int)bm.indexOffset; mesh.indexCount = (int)bm.indexCount; mesh.material = findMaterial(bm.material); myModel.myMeshes.Add(mesh); } //should probably build a bounding box myModel.size = (findMax() - findMin()).Length / 2.0f; }
public bool loadFile(string filename) { LuaState vm = new LuaState(); try { if (vm.doFile(filename) == false) { Warn.print("Unable to open BOB file {0}", filename); return(false); } LuaObject data = vm.findObject("BOB"); if (data == null) { Warn.print("Unable to find BOB data in file {0}", filename); return(false); } myVersion = data.get <UInt32>("version"); //read the registry LuaObject registry = data.get <LuaObject>("registry"); //read the chunks LuaObject chunks = data.get <LuaObject>("chunks"); for (int i = 1; i <= chunks.count(); i++) { LuaObject chunk = chunks[i]; switch (chunk.get <String>("type")) { case "model": BobModelChunk model = new BobModelChunk(); model.parse(chunk); myChunks.Add(model); break; case "skeleton": Warn.print("Skipping .BOB skeleton"); break; case "animation": Warn.print("Skipping .BOB animation"); break; case "texture": Warn.print("Skipping .BOB texture"); break; case "particle": Warn.print("Skipping .BOB particle system"); break; case "audio": Warn.print("Skipping .BOB audio"); break; default: Warn.print("Unknown type: {0}", chunk.get <String>("type")); break; } } } catch (Exception ex) { throw new Exception("Error while loading BOB model from definition file ( " + filename + " ).", ex); } return(true); }