Пример #1
0
            public static LinearColor Convert(UnityEngine.Color color, float intensity)
            {
                var   lc  = GraphicsSettings.lightsUseLinearIntensity ? color.linear.RGBMultiplied(intensity) : color.RGBMultiplied(intensity).linear;
                float mcc = lc.maxColorComponent;

                if (mcc <= 0.0f)
                {
                    return(LinearColor.Black());
                }

                float       mcc_rcp = 1.0f / lc.maxColorComponent;
                LinearColor c;

                c.m_red       = lc.r * mcc_rcp;
                c.m_green     = lc.g * mcc_rcp;
                c.m_blue      = lc.b * mcc_rcp;
                c.m_intensity = mcc;
                return(c);
            }
Пример #2
0
        public static LinearColor Convert(Color color, float intensity)
        {
            Color       color2            = (!GraphicsSettings.lightsUseLinearIntensity) ? color.RGBMultiplied(intensity).linear : color.linear.RGBMultiplied(intensity);
            float       maxColorComponent = color2.maxColorComponent;
            LinearColor result;

            if (maxColorComponent <= 0f)
            {
                result = LinearColor.Black();
            }
            else
            {
                float       num = 1f / color2.maxColorComponent;
                LinearColor linearColor;
                linearColor.m_red       = color2.r * num;
                linearColor.m_green     = color2.g * num;
                linearColor.m_blue      = color2.b * num;
                linearColor.m_intensity = maxColorComponent;
                result = linearColor;
            }
            return(result);
        }
Пример #3
0
        public static LinearColor Convert(Color color, float intensity)
        {
            Color color2            = GraphicsSettings.lightsUseLinearIntensity ? color.linear.RGBMultiplied(intensity) : color.RGBMultiplied(intensity).linear;
            float maxColorComponent = color2.maxColorComponent;
            bool  flag = color2.r < 0f || color2.g < 0f || color2.b < 0f;

            if (flag)
            {
                throw new ArgumentOutOfRangeException(string.Concat(new string[]
                {
                    "The input color to be converted must not contain negative values (red: ",
                    color2.r.ToString(),
                    ", green: ",
                    color2.g.ToString(),
                    ", blue: ",
                    color2.b.ToString(),
                    ")."
                }));
            }
            bool        flag2 = maxColorComponent <= 1E-20f;
            LinearColor result;

            if (flag2)
            {
                result = LinearColor.Black();
            }
            else
            {
                float       num = 1f / color2.maxColorComponent;
                LinearColor linearColor;
                linearColor.m_red       = color2.r * num;
                linearColor.m_green     = color2.g * num;
                linearColor.m_blue      = color2.b * num;
                linearColor.m_intensity = maxColorComponent;
                result = linearColor;
            }
            return(result);
        }
Пример #4
0
            public static LinearColor Convert(UnityEngine.Color color, float intensity)
            {
                var   lc  = GraphicsSettings.lightsUseLinearIntensity ? color.linear.RGBMultiplied(intensity) : color.RGBMultiplied(intensity).linear;
                float mcc = lc.maxColorComponent;

                if (lc.r < 0.0f || lc.g < 0.0f || lc.b < 0.0f)
                {
                    throw new System.ArgumentOutOfRangeException("The input color to be converted must not contain negative values (red: " + lc.r + ", green: " + lc.g + ", blue: " + lc.b + ").");
                }

                if (mcc <= 1e-20f)
                {
                    return(LinearColor.Black());
                }

                float       mcc_rcp = 1.0f / lc.maxColorComponent;
                LinearColor c;

                c.m_red       = lc.r * mcc_rcp;
                c.m_green     = lc.g * mcc_rcp;
                c.m_blue      = lc.b * mcc_rcp;
                c.m_intensity = mcc;
                return(c);
            }