void Update()
 {
     for (int i = 0; i < dst.Length; i++)
     {
         MKXRayFreeMaterialHelper.SetEmissionColor(dst[i], MKXRayFreeMaterialHelper.GetEmissionColor(src));
         MKXRayFreeMaterialHelper.SetXRayInside(dst[i], MKXRayFreeMaterialHelper.GetXRayInside(src));
         MKXRayFreeMaterialHelper.SetXRayRimSize(dst[i], MKXRayFreeMaterialHelper.GetXRayRimSize(src));
     }
 }
        public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader)
        {
            if (material.HasProperty(MKXRayFreeMaterialHelper.PropertyNames.EMISSION))
            {
                MKXRayFreeMaterialHelper.SetEmissionColor(material, material.GetColor(MKXRayFreeMaterialHelper.PropertyNames.EMISSION));
            }
            base.AssignNewShaderToMaterial(material, oldShader, newShader);

            MaterialProperty[] properties = MaterialEditor.GetMaterialProperties(new Material[] { material });
            FindProperties(properties, material);

            SetGIFlags();
        }
        //Setup GI emission
        private void SetGIFlags()
        {
            foreach (Material obj in emissionColor.targets)
            {
                bool emissive = true;
                if (MKXRayFreeMaterialHelper.GetEmissionColor(obj) == Color.black)
                {
                    emissive = false;
                }
                MaterialGlobalIlluminationFlags flags = obj.globalIlluminationFlags;
                if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0)
                {
                    flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack;
                    if (!emissive)
                    {
                        flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack;
                    }

                    obj.globalIlluminationFlags = flags;
                }
            }
        }
Esempio n. 4
0
 private void SetValuesFromMaterial()
 {
     emissionIntensity = MKXRayFreeMaterialHelper.GetEmissionColor(currentMaterials[currentModel]).r / 2.0f;
     xRayInside        = MKXRayFreeMaterialHelper.GetXRayInside(currentMaterials[currentModel]);
     xRayRimSize       = MKXRayFreeMaterialHelper.GetXRayRimSize(currentMaterials[currentModel]);
 }