Пример #1
0
        public static void UpdateEffectReflector(MyEffectReflectorBase effect, bool subtractCameraPosition)
        {
            MyRenderLight reflectorLight = null;

            foreach (MyRenderLight light in m_renderLights)
            {
                if (light.ReflectorOn)
                {
                    reflectorLight = light;
                    break;
                }
            }

            if (reflectorLight != null && reflectorLight.ReflectorOn)
            {
                effect.SetReflectorDirection(reflectorLight.ReflectorDirection);
                effect.SetReflectorConeMaxAngleCos(reflectorLight.ReflectorConeMaxAngleCos);
                effect.SetReflectorColor(reflectorLight.ReflectorColor);
                effect.SetReflectorRange(reflectorLight.ReflectorRange);
            }
            else
            {
                effect.SetReflectorRange(0);
            }

            if (subtractCameraPosition)
            {
                effect.SetCameraPosition(Vector3.Zero);
            }
            else
            {
                effect.SetCameraPosition((Vector3)MyRenderCamera.Position);
            }
        }
Пример #2
0
        public MyLightGlare(MyRenderLight light)
        {
            GlareMaterial = "LightGlare";

            m_parent       = light;
            m_occlusionBox = new BoundingBoxD();
        }
Пример #3
0
        static void SetLightToEffect(MyEffectDynamicLightingBase effect, int index, MyRenderLight light, bool subtractCameraPosition)
        {
            if (subtractCameraPosition == true)
            {
                effect.SetDynamicLightsPosition(index, (Vector3)(light.Position - MyRenderCamera.Position));
            }
            else
            {
                effect.SetDynamicLightsPosition(index, (Vector3)light.Position);
            }

            //Cannot use *light.Intensity because it makes visual artifacts
            effect.SetDynamicLightsColor(index, light.Color * MathHelper.Clamp(light.Intensity, 0, 1));
            effect.SetDynamicLightsFalloff(index, light.Falloff);
            effect.SetDynamicLightsRange(index, light.Range);
        }
Пример #4
0
        public MyLightGlare(MyRenderLight light)
        {
            GlareMaterial = "LightGlare";

            m_parent = light;
            m_occlusionBox = new BoundingBoxD();
        }