public void Build(Material defaultMaterial) { //Clear our large arrays if (mtlLines != null) { Array.Clear(mtlLines, 0, mtlLines.Length); } Array.Clear(objLines, 0, objLines.Length); var materialLibrary = new Dictionary <string, Material>(); if (!string.IsNullOrEmpty(mtllib) && materialDataSlots != null) { foreach (MaterialData md in materialDataSlots) { if (materialLibrary.ContainsKey(md.Name)) { Debug.LogWarning("Duplicate material found: " + md.Name + ". ignored repeated occurences"); continue; } materialLibrary.Add(md.Name, GetMaterial(md, defaultMaterial)); } } var gameObjects = new GameObject[buffer.NumberOfObjects]; if (buffer.NumberOfObjects == 1) { //Single gameobject, single mesh gameObject.AddComponent(typeof(MeshFilter)); gameObject.AddComponent(typeof(MeshRenderer)); gameObjects[0] = gameObject; } else if (buffer.NumberOfObjects > 1) { for (int i = 0; i < buffer.NumberOfObjects; i++) { //Multi object with nested children var go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); gameObjects[i] = go; } } buffer.Trace(); buffer.PopulateMeshes(gameObjects, materialLibrary, defaultMaterial); }
private void Build() { Dictionary <string, Material> materials = new Dictionary <string, Material>(); Material m; if (hasMaterials && mtl_reader != null) { Debug.Log("Obj import :: MATERIAL read"); foreach (MaterialData md in materialData) { materials.Add(md.name, GetMaterial(md)); } } else { Debug.Log("Obj import :: NO MATERIAL read"); m = new Material(Shader.Find("Mat Cap Cut")); materials.Add("default", m); m.SetTexture("_MatCap", (Texture)Resources.Load("lit_spheres/divers/daphz1")); } GameObject[] ms = new GameObject[buffer.numObjects]; if (buffer.numObjects == 1) { ms[0] = new GameObject("SurfaceOBJ"); ms[0].name = "SurfaceOBJ"; ms[0].tag = "SurfaceManager"; Debug.Log("New OBJ surface generated"); ms[0].transform.parent = GameObject.Find("SurfaceManager").transform; ms[0].AddComponent(typeof(MeshFilter)); ms[0].AddComponent(typeof(MeshRenderer)); // ms[0] = gameObject; } else if (buffer.numObjects > 1) { for (int i = 0; i < buffer.numObjects; i++) { GameObject go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); ms[i] = go; } } Debug.Log("nb vertice :" + compteurvertice); buffer.PopulateMeshes(ms, materials); }
private void Build() { Dictionary <string, Material> materials = new Dictionary <string, Material>(); if (hasMaterials) { foreach (MaterialData md in materialData) { if (materials.ContainsKey(md.name)) { Debug.LogWarning("duplicate material found: " + md.name + ". ignored repeated occurences"); continue; } materials.Add(md.name, GetMaterial(md)); } } else { materials.Add("default", new Material(Shader.Find("VertexLit"))); } GameObject[] ms = new GameObject[buffer.numObjects]; if (buffer.numObjects == 1) { gameObject.AddComponent(typeof(MeshFilter)); gameObject.AddComponent(typeof(MeshRenderer)); ms[0] = gameObject; } else if (buffer.numObjects > 1) { for (int i = 0; i < buffer.numObjects; i++) { GameObject go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); ms[i] = go; } } buffer.PopulateMeshes(ms, materials); if (null != callback) { loadresult = "Import Succeed"; callback(loadresult); } }
private void Build() { Dictionary <string, Material> materials = new Dictionary <string, Material>(); if (hasMaterials) { foreach (MaterialData md in materialData) { if (materials.ContainsKey(md.name)) { //Debug.LogWarning("duplicate material found: "+ md.name+ ". ignored repeated occurences"); continue; } materials.Add(md.name, GetMaterial(md)); } } else { Material m = new Material(Shader.Find("Standard")); SetupMaterialWithBlendMode(m, BlendMode.Fade); materials.Add("default", m); } GameObject[] ms = new GameObject[buffer.numObjects]; if (buffer.numObjects == 1) { gameObject.AddComponent(typeof(MeshFilter)); gameObject.AddComponent(typeof(MeshRenderer)); ms[0] = gameObject; gameObject.transform.localPosition = new Vector3(0, 0, 0); } else if (buffer.numObjects > 1) { for (int i = 0; i < buffer.numObjects; i++) { GameObject go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); ms[i] = go; } } buffer.PopulateMeshes(ms, materials); //OpacityZero(); flag++; }
void Build() { // TODO: Materials // if(!string.IsNullOrEmpty (mtllib)) { // foreach(MaterialData md in materialData) { // if (materials.ContainsKey(md.Name)) { // Debug.LogWarning("Duplicate material found: " + md.Name + ". ignored repeated occurences"); // continue; // } // materials.Add(md.Name, GetMaterial(md)); // } // } else { // materials.Add("default", new Material(Shader.Find("VertexLit"))); // } var materials = new Dictionary <string, Material>(); materials.Add("default", new Material(Shader)); var ms = new GameObject[buffer.NumberOfObjects]; if (buffer.NumberOfObjects == 1) { gameObject.AddComponent(typeof(MeshFilter)); gameObject.AddComponent(typeof(MeshRenderer)); ms[0] = gameObject; } else if (buffer.NumberOfObjects > 1) { for (int i = 0; i < buffer.NumberOfObjects; i++) { var go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); ms[i] = go; } } buffer.PopulateMeshes(ms, materials); }
private void Build() { Dictionary <string, Material> materials = new Dictionary <string, Material> (); if (hasMaterials) { foreach (MaterialData md in materialData) { materials.Add(md.name, GetMaterial(md)); } } else { materials.Add("default", new Material(Shader.Find("VertexLit"))); } GameObject[] ms = new GameObject[buffer.numObjects]; if (buffer.numObjects == 1) { gameObject.AddComponent(typeof(MeshFilter)); gameObject.AddComponent(typeof(MeshRenderer)); ms [0] = gameObject; } else if (buffer.numObjects > 1) { for (int i = 0; i < buffer.numObjects; i++) { GameObject go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); ms [i] = go; } } buffer.PopulateMeshes(ms, materials); }
private void Build(GeometryBuffer buffer, List<MaterialData> materialData, int x, int y, int z, int lod, Action<GameObject[]> registerCreatedObjects) { var materials = new Dictionary<string, Material[]>(); foreach (var md in materialData) { if (!_materialCache.ContainsKey(md.Name)) { _materialCache[md.Name] = CubeBuilderHelpers.GetMaterial(UseUnlitShader, md); } materials.Add(md.Name, _materialCache[md.Name]); } var ms = new GameObject[buffer.NumObjects]; for (var i = 0; i < buffer.NumObjects; i++) { var go = new GameObject(); go.name = String.Format("cube_L{4}:{0}_{1}_{2}.{3}", x, y, z, i, lod); go.transform.parent = gameObject.transform; go.AddComponent(typeof (MeshFilter)); go.AddComponent(typeof (MeshRenderer)); ms[i] = go; } if (registerCreatedObjects != null) { registerCreatedObjects(ms); } buffer.PopulateMeshes(ms, materials); }
///Assemble private void Build() { Dictionary <string, Material> materials = new Dictionary <string, Material>(); if (hasMaterials) { Material m = new Material(Shader.Find("Diffuse")); m.SetColor("_Color", new Color(0.5f, 0.5f, 0.5f, 1.0f)); materials.Add("_spc_default", m); foreach (MaterialData md in materialData) { if (!materials.ContainsKey(md.name)) { materials.Add(md.name, GetMaterial(md)); } } } else { Material m = new Material(Shader.Find("Diffuse")); m.SetColor("_Color", new Color(0.5f, 0.5f, 0.5f, 1.0f)); materials.Add("_spc_default", m); } GameObject[] ms = new GameObject[buffer.numObjects]; if (buffer.numObjects == 1) { if (!treatasoneobject) //incase of one geometry but instantiated { GameObject go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); go.name = "_spc_rename_"; ms[0] = go; } else { gameObject.AddComponent(typeof(MeshFilter)); gameObject.AddComponent(typeof(MeshRenderer)); ms[0] = gameObject; } } else if (buffer.numObjects > 1) { for (int i = 0; i < buffer.numObjects; i++) { GameObject go = new GameObject(); go.transform.parent = gameObject.transform; go.AddComponent(typeof(MeshFilter)); go.AddComponent(typeof(MeshRenderer)); ms[i] = go; } } buffer.PopulateMeshes(ms, materials); if (!treatasoneobject) { foreach (GameObject go in ms) { scaleoffset so = objso.Find(delegate(scaleoffset item) { return(item.name == go.name); }); if (so != null) { go.transform.localPosition = ((Vector3.zero - so.MainOffset) * mainso.MasterScale) - ((Vector3.zero - mainso.MainOffset) * mainso.MasterScale); } } } }