SyncObject BuildObject(SyncMesh mesh, SyncMaterial material) { // Create a parent object var parentObject = new SyncObject(new SyncId("Parent id"), "Quad Object Parent") { Transform = SyncTransform.Identity }; // Create a child object with geometry var childObject = new SyncObject(new SyncId("Child id"), "Quad Object Child") { MeshId = mesh.Id, MaterialIds = new List <SyncId> { material.Id }, Transform = SyncTransform.Identity }; parentObject.Children.Add(childObject); // Fill the object with metadata parentObject.Metadata.Add("Key 1", new SyncParameter("Value", "Group", true)); parentObject.Metadata.Add("Key 2", new SyncParameter("Other value", "Group", true)); parentObject.Metadata.Add("名前", new SyncParameter("テストデータくん", "Group", true)); // Uncomment the following line to add the "Merge" metadata key. // Because of the rules.json file, this would trigger the MergeChildObjects action. //parentObject.Metadata.Add("Merge", new SyncParameter("", "Rules", true)); return(parentObject); }
SyncMaterial BuildMaterial(SyncColor color) { // Create a basic colored material var material = new SyncMaterial(new SyncId("Material id")); material.AlbedoColor = color; return(material); }
static void SetReferencedSyncModelPath(SyncMaterial material, SyncManifest manifest) { SetReferencedSyncModelPath(material.AlbedoMap, manifest); SetReferencedSyncModelPath(material.AlphaMap, manifest); SetReferencedSyncModelPath(material.NormalMap, manifest); SetReferencedSyncModelPath(material.CutoutMap, manifest); SetReferencedSyncModelPath(material.EmissionMap, manifest); SetReferencedSyncModelPath(material.GlossinessMap, manifest); SetReferencedSyncModelPath(material.MetallicMap, manifest); }
public Shader GetShader(SyncMaterial syncMaterial) { var transparent = StandardShaderHelper.IsTransparent(syncMaterial); if (syncMaterial.IsDoubleSided) { return(transparent ? m_URPDoubleTransparentShader : m_URPDoubleOpaqueShader); } return(transparent ? m_URPTransparentShader : m_URPOpaqueShader); }
protected void ExtractBasicMaterialInfo(SyncMaterial syncMaterial, out bool transparent, out bool emission, out Color color) { transparent = StandardShaderHelper.IsTransparent(syncMaterial); emission = syncMaterial.Emission != SyncColor.Black || syncMaterial.EmissionMap.TextureId != SyncId.None; var tint = ImportersUtils.GetUnityColor(syncMaterial.Tint, false); color = tint * ImportersUtils.GetUnityColor(syncMaterial.AlbedoColor, false); if (transparent) { color.a = syncMaterial.Alpha; } }
public List <SyncMaterial> BuildMaterialAry() { List <SyncMaterial> materialAry = new List <SyncMaterial>(); // Create a basic colored material var material = new SyncMaterial(new SyncId("Material id")); Random random = new Random(); material.AlbedoColor = SyncColor.From256(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)); //mtl.MaterialList[0].; materialAry.Add(material); return(materialAry); }
void DownloadTextures(string sourceId, SyncMaterial syncMaterial, ref List <Task <AssetEntry <ISyncModel> > > tasks, CancellationToken token) { var textureId = syncMaterial.AlbedoMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } textureId = syncMaterial.NormalMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } textureId = syncMaterial.AlphaMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } textureId = syncMaterial.CutoutMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } textureId = syncMaterial.MetallicMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } textureId = syncMaterial.GlossinessMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } textureId = syncMaterial.EmissionMap.TextureId; if (textureId != SyncId.None) { tasks.Add(DownloadSyncModel <SyncTexture>(sourceId, textureId, token)); } }
public SyncMaterial BuildMaterial(Obj curObj, PublisherTransaction transaction) { SyncMaterial material = null; ObjParser.Types.Material mat = FindMaterial(curObj.UseMtl); if (mat != null) { material = new SyncMaterial(new SyncId("MaterialId_" + mat.Name), mat.Name); Random random = new Random(); //material.AlbedoColor = new SyncColor((float)random.NextDouble(), (float)random.NextDouble(), (float)random.NextDouble()); material.AlbedoColor = SyncColor.From256(200, 200, 200); // test Console.WriteLine("\t\tColor: " + material.AlbedoColor.R.ToString() + ", " + material.AlbedoColor.G.ToString() + ", " + material.AlbedoColor.B.ToString() + ", "); // テクスチャが見つかった場合 if (mat.map_Kd.Length > 0) { //material.AlbedoFade = 1.0f; // 0.5f; //2021.5.26 SyncTexture texture = BuildTexture(mat); if (texture != null) { transaction.Send(texture); Console.WriteLine("\tTexture Id: " + texture.Id); Console.WriteLine("\tTexture Name: " + texture.Name); SyncMap albedoMap = new SyncMap(texture.Id, new Vector2(), new Vector2(1, 1)); material.AlbedoMap = albedoMap; } } } else { Console.WriteLine("Warning: No Material."); material = new SyncMaterial(new SyncId("MaterialId_" + "DEFAULT"), "DEFAULT"); material.AlbedoColor = SyncColor.From256(200, 0, 0); } return(material); }
public SyncObject BuildObject(SyncMesh mesh, SyncMaterial material, int idx) { // Create a parent object var parentObject = new SyncObject(new SyncId("ParentId_") + mesh.Id.ToString(), "ObjectParent_" + mesh.Name) { Transform = SyncTransform.Identity }; // Create a child object with geometry var childObject = new SyncObject(new SyncId("ChildId_") + mesh.Id.ToString(), "ObjectChild_" + mesh.Name) { MeshId = mesh.Id, MaterialIds = new List <SyncId> { material.Id }, Transform = SyncTransform.Identity }; parentObject.Children.Add(childObject); // Fill the object with metadata parentObject.Metadata.Add("Key 1", new SyncParameter("Value", "Group", true)); parentObject.Metadata.Add("Key 2", new SyncParameter("Other value", "Group", true)); parentObject.Metadata.Add("メッシュID", new SyncParameter(mesh.Id.ToString(), "Group", true)); parentObject.Metadata.Add("マテリアルID", new SyncParameter(material.Id.ToString(), "Group", true)); parentObject.Metadata.Add("図形名", new SyncParameter(obj.MeshList[idx].Name, "Group", true)); parentObject.Metadata.Add("マテリアル名", new SyncParameter(obj.MeshList[idx].UseMtl, "Group", true)); parentObject.Metadata.Add("頂点数", new SyncParameter(obj.MeshList[idx].VertexList.Count.ToString(), "Group", true)); parentObject.Metadata.Add("ポリゴン数", new SyncParameter(mesh.TriangleCount.ToString(), "Group", true)); // Uncomment the following line to add the "Merge" metadata key. // Because of the rules.json file, this would trigger the MergeChildObjects action. //parentObject.Metadata.Add("Merge", new SyncParameter("", "Rules", true)); return(parentObject); }
public void SetMaterialProperties(SyncMaterial syncMaterial, Material material, ITextureCache textureCache) { StandardShaderHelper.ComputeMaterial(syncMaterial, material, textureCache); }
public Shader GetShader(SyncMaterial syncMaterial) { var transparent = StandardShaderHelper.IsTransparent(syncMaterial); return(transparent ? m_URPTransparentShader : m_URPOpaqueShader); }
public Shader GetShader(SyncMaterial syncMaterial) { return(currentRenderPipeline.defaultShader); }
public static Shader GetShader(SyncMaterial syncMaterial) { return(currentConverter.GetShader(syncMaterial)); }
public Shader GetShader(SyncMaterial syncMaterial) { return(StandardShaderHelper.GetShader(syncMaterial)); }
void PerformExportTransaction() { // Report the progress of the export to 0% m_PublisherClient.ReportProgress(0); // Start a transaction ; note that the publisher client can only run one transaction at a time. PublisherTransaction transaction = m_PublisherClient.StartTransaction(); // add sample plane // { // Build a SyncMesh and send it to the server var mesh = BuildMesh(); transaction.Send(mesh); // Build a SyncMaterial and send it to the server var material = BuildMaterial(SyncColor.White); transaction.Send(material); // Report in between parsing progress m_PublisherClient.ReportProgress(50); // Build a SyncObject and send it to the server. var obj = BuildObject(mesh, material); transaction.Send(obj); // Build a SyncObjectInstance and send it to the server var instance = BuildObjectInstance(obj); transaction.Send(instance); } // add sample plane // // objファイルを開く // DataUtil meshData = new DataUtil(); meshData.fileName = @"D:\model\house.obj"; meshData.OpenObj(@"D:\model\house.obj"); int num = meshData.obj.MeshList.Count; for (int i = 0; i < num; i++) { ObjParser.Obj currentObj = meshData.obj.MeshList[i]; Console.WriteLine("Mesh: " + currentObj.Name); SyncMesh mesh = meshData.BuildMesh(currentObj); transaction.Send(mesh); Console.WriteLine("\tMesh Id: " + mesh.Id); Console.WriteLine("\tMesh Name: " + mesh.Name); SyncMaterial material = meshData.BuildMaterial(currentObj, transaction); transaction.Send(material); Console.WriteLine("\tMaterial Id: " + material.Id); Console.WriteLine("\tMaterial Name: " + material.Name); // Report in between parsing progress m_PublisherClient.ReportProgress(i * num / 100); // Build a SyncObject and send it to the server. var obj = meshData.BuildObject(mesh, material, i); transaction.Send(obj); Console.WriteLine("\tObject Id: " + obj.Id); Console.WriteLine("\tObject Name: " + obj.Name); // Build a SyncObjectInstance and send it to the server var instance = meshData.BuildObjectInstance(obj); transaction.Send(instance); Console.WriteLine("\tObject Instance Id: " + instance.Id); Console.WriteLine("\tObject Instance Name: " + instance.Name); } #if false for (int i = 0; i < meshData.obj.MeshList.Count; i++) { List <SyncMesh> meshAry = meshData.BuildMesh(); foreach (SyncMesh mesh in meshAry) { transaction.Send(mesh); } List <SyncMaterial> materialAry = meshData.BuildMaterial(); foreach (SyncMaterial material in materialAry) { transaction.Send(material); } // Report in between parsing progress //m_PublisherClient.ReportProgress(50); // Build a SyncObject and send it to the server. foreach (SyncMesh mesh in meshAry) { var obj = meshData.BuildObject(mesh); transaction.Send(obj); // Build a SyncObjectInstance and send it to the server var instance = meshData.BuildObjectInstance(obj); transaction.Send(instance); } } #endif // Commit the transaction, then detach it from the publisher client. transaction.Commit(); // Report the completion of the export m_PublisherClient.ReportProgress(100); }