private void SetSegmentationEffect() { var renderers = FindObjectsOfType <Renderer>(); var mpb = new MaterialPropertyBlock(); foreach (var r in renderers) { var theTag = r.gameObject.tag; var id = getTheId(theTag); Debug.Log("object name :" + theTag + "object ID :" + id); mpb.SetColor("_ObjectColor", ColorEncoding.EncodeIDAsColor(id, theTag)); mpb.SetColor("_CategoryColor", ColorEncoding.EncodeTagAsColor(theTag));//give a color by name r.SetPropertyBlock(mpb); } }
public void OnSceneChange() { sentColorCorrespondence = false; var renderers = UnityEngine.Object.FindObjectsOfType <Renderer>(); colorIds = new Dictionary <Color, string> (); var mpb = new MaterialPropertyBlock(); foreach (var r in renderers) { // var layer = r.gameObject.layer; // var tag = r.gameObject.tag; string classTag = r.name; string objTag = getUniqueId(r.gameObject); StructureObject so = r.gameObject.GetComponent <StructureObject> (); if (so == null) { so = r.gameObject.GetComponentInParent <StructureObject> (); } SimObjPhysics sop = r.gameObject.GetComponent <SimObjPhysics> (); if (sop == null) { sop = r.gameObject.GetComponentInParent <SimObjPhysics> (); } if (so != null) { classTag = "" + so.WhatIsMyStructureObjectTag; //objTag = so.gameObject.name; } if (sop != null) { classTag = "" + sop.Type; objTag = sop.UniqueID; } Color classColor; Color objColor; classColor = ColorEncoding.EncodeTagAsColor(classTag); objColor = ColorEncoding.EncodeTagAsColor(objTag); capturePasses [0].camera.WorldToScreenPoint(r.bounds.center); if (so != null || sop != null) { colorIds [objColor] = objTag; colorIds [classColor] = classTag; } else { colorIds [objColor] = r.gameObject.name; } // if (r.material.name.ToLower().Contains ("lightray")) { // objColor.a = 0; // classColor.a = 0; // mpb.SetFloat ("_Opacity", 0); // // } else { // objColor.a = 1; // classColor.a = 1; // mpb.SetFloat ("_Opacity", 1); // } // // updated per @danielg - replaces commented out code if (r.material.name.ToLower().Contains("lightray")) { r.enabled = false; continue; } objColor.a = 1; classColor.a = 1; mpb.SetFloat("_Opacity", 1); mpb.SetColor("_CategoryColor", classColor); mpb.SetColor("_ObjectColor", objColor); r.SetPropertyBlock(mpb); } }
public void OnSceneChange() { sentColorCorrespondence = false; var renderers = UnityEngine.Object.FindObjectsOfType <Renderer>(); colorIds = new Dictionary <Color, string> (); var mpb = new MaterialPropertyBlock(); foreach (var r in renderers) { var layer = r.gameObject.layer; var tag = r.gameObject.tag; SimObj simObj = r.gameObject.GetComponent <SimObj> (); if (simObj == null) { simObj = r.gameObject.GetComponentInParent <SimObj> (); } Color classColor; Color objColor; if (simObj == null) { classColor = ColorEncoding.EncodeTagAsColor("" + r.name); objColor = ColorEncoding.EncodeTagAsColor(getUniqueId(r.gameObject)); } else { classColor = ColorEncoding.EncodeTagAsColor("" + simObj.Type); objColor = ColorEncoding.EncodeTagAsColor("" + simObj.UniqueID); //Debug.Log ("renderer type " + simObj.Type + " " + simObj.name + " " + simObj.UniqueID + " " + MD5Hash(simObj.UniqueID) + " " + MD5Hash(simObj.UniqueID).GetHashCode()); } capturePasses [0].camera.WorldToScreenPoint(r.bounds.center); //mpb.SetVector ("_Scale", scaleVector); //mpb.SetVector ("_Shift", shiftVector); // Make transparent if light ray. if (simObj != null) { colorIds [objColor] = "" + simObj.UniqueID; colorIds [classColor] = "" + simObj.name; Debug.Log("colored " + simObj.UniqueID); } else { colorIds [objColor] = r.gameObject.name; if (r.gameObject.name == "Cube.100") { Debug.Log(r.gameObject.name); } } // if (r.material.name.ToLower().Contains ("lightray")) { // objColor.a = 0; // classColor.a = 0; // mpb.SetFloat ("_Opacity", 0); // // } else { // objColor.a = 1; // classColor.a = 1; // mpb.SetFloat ("_Opacity", 1); // } // // updated per @danielg - replaces commented out code if (r.material.name.ToLower().Contains("lightray")) { r.enabled = false; continue; } objColor.a = 1; classColor.a = 1; mpb.SetFloat("_Opacity", 1); mpb.SetColor("_CategoryColor", classColor); mpb.SetColor("_ObjectColor", objColor); r.SetPropertyBlock(mpb); } }