Exemple #1
0
        public static void InitEnvironmentSettings(MyObjectBuilder_EnvironmentSettings environmentBuilder = null)
        {
            var environment = MyDefinitionManager.Static.EnvironmentDefinition;
            var o = environment.BackgroundOrientation;
            BackgroundTexture        = environment.BackgroundTexture;
            BackgroundOrientation    = Quaternion.CreateFromYawPitchRoll(o.Yaw, o.Pitch, o.Roll);
            DistanceToSun            = environment.DistanceToSun;

            SunProperties = new MySunProperties(environment.SunProperties);
            FogProperties = environment.FogProperties;

            if (environmentBuilder != null)
            {
                Vector3 sunDirection;
                Vector3.CreateFromAzimuthAndElevation(environmentBuilder.SunAzimuth, environmentBuilder.SunElevation, out sunDirection);

                SunProperties.BaseSunDirectionNormalized = sunDirection;
                
                SunProperties.SunDirectionNormalized = sunDirection;
                SunProperties.SunIntensity = environmentBuilder.SunIntensity;

                FogProperties.FogMultiplier = environmentBuilder.FogMultiplier;
                FogProperties.FogDensity = environmentBuilder.FogDensity;
                FogProperties.FogColor = new Color(environmentBuilder.FogColor);
                FogProperties.FogColor.A = 255;
            }
        }
        public MySunProperties(MySunProperties from)
        {
            SunIntensity = from.SunIntensity;
            SunDiffuse = from.SunDiffuse;
            SunSpecular = from.SunSpecular;
            SunMaterial = from.SunMaterial;

            AdditionalSunIntensity = new float[from.AdditionalSunIntensity.Length];
            AdditionalSunDiffuse = new Color[from.AdditionalSunDiffuse.Length];
            AdditionalSunDirection = new Vector2[from.AdditionalSunDirection.Length];

            for (int lightIndex = 0; lightIndex < from.AdditionalSunDirection.Length; ++lightIndex)
            {
                AdditionalSunIntensity[lightIndex] = from.AdditionalSunIntensity[lightIndex];
                AdditionalSunDiffuse[lightIndex] = from.AdditionalSunDiffuse[lightIndex];
                AdditionalSunDirection[lightIndex] = from.AdditionalSunDirection[lightIndex];
            }

            AmbientColor = from.AmbientColor;
            AmbientMultiplier = from.AmbientMultiplier;
            EnvironmentAmbientIntensity = from.EnvironmentAmbientIntensity;
            SunSizeMultiplier = from.SunSizeMultiplier;

            BackgroundColor = from.BackgroundColor;
            SunDirectionNormalized = from.SunDirectionNormalized;
            BaseSunDirectionNormalized = from.BaseSunDirectionNormalized;
        }
        /// <param name="interpolator">0 - use this object, 1 - use other object</param>
        public MySunProperties InterpolateWith(MySunProperties otherProperties, float interpolator)
        {
            var result = new MySunProperties();

            result.SunDiffuse = Color.Lerp(SunDiffuse, otherProperties.SunDiffuse, interpolator);
            result.SunIntensity = MathHelper.Lerp(SunIntensity, otherProperties.SunIntensity, interpolator);
            result.SunSpecular = Color.Lerp(SunSpecular, otherProperties.SunSpecular, interpolator);
            
            result.AdditionalSunIntensity = new float[AdditionalSunIntensity.Length];
            result.AdditionalSunDiffuse = new Color[AdditionalSunDiffuse.Length];
            result.AdditionalSunDirection = new Vector2[AdditionalSunDirection.Length];
            for (int lightIndex = 0; lightIndex < AdditionalSunDirection.Length; ++lightIndex)
            {
                result.AdditionalSunIntensity[lightIndex] = MathHelper.Lerp(AdditionalSunIntensity[lightIndex], otherProperties.AdditionalSunIntensity[lightIndex], interpolator);
                result.AdditionalSunDiffuse[lightIndex] = Color.Lerp(AdditionalSunDiffuse[lightIndex], otherProperties.AdditionalSunDiffuse[lightIndex], interpolator);
                result.AdditionalSunDirection[lightIndex] = Vector2.Lerp(AdditionalSunDirection[lightIndex], otherProperties.AdditionalSunDirection[lightIndex], interpolator);
            }

            result.AmbientColor = Color.Lerp(AmbientColor, otherProperties.AmbientColor, interpolator);
            result.AmbientMultiplier = MathHelper.Lerp(AmbientMultiplier, otherProperties.AmbientMultiplier, interpolator);
            result.EnvironmentAmbientIntensity = MathHelper.Lerp(EnvironmentAmbientIntensity, otherProperties.EnvironmentAmbientIntensity, interpolator);
            result.SunSizeMultiplier = MathHelper.Lerp(SunSizeMultiplier, otherProperties.SunSizeMultiplier, interpolator);

            result.BackgroundColor = Color.Lerp(BackgroundColor, otherProperties.BackgroundColor, interpolator);

            if (result.SunDirectionNormalized.Dot(otherProperties.SunDirectionNormalized) > 0.0001f)
                result.SunDirectionNormalized = Vector3.Lerp(SunDirectionNormalized, otherProperties.SunDirectionNormalized, interpolator);
            else
                result.SunDirectionNormalized = SunDirectionNormalized;

            return result;
        }
Exemple #4
0
        protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            base.Init(builder);

            MyObjectBuilder_EnvironmentDefinition objBuilder = (MyObjectBuilder_EnvironmentDefinition)builder;

            FogProperties       = objBuilder.FogProperties;
            SunProperties       = objBuilder.SunProperties;
            PostProcessSettings = objBuilder.PostProcessSettings;
            SSAOSettings        = objBuilder.SSAOSettings;
            HBAOSettings        = objBuilder.HBAOSettings;
            ShadowSettings.CopyFrom(objBuilder.ShadowSettings);
            NewPipelineSettings.CopyFrom(objBuilder.NewPipelineSettings);
            MaterialsSettings.CopyFrom(objBuilder.MaterialsSettings);
            SmallShipMaxSpeed         = objBuilder.SmallShipMaxSpeed;
            LargeShipMaxSpeed         = objBuilder.LargeShipMaxSpeed;
            SmallShipMaxAngularSpeed  = objBuilder.SmallShipMaxAngularSpeed;
            LargeShipMaxAngularSpeed  = objBuilder.LargeShipMaxAngularSpeed;
            ContourHighlightColor     = new Color(objBuilder.ContourHighlightColor);
            ContourHighlightThickness = objBuilder.ContourHighlightThickness;
            HighlightPulseInSeconds   = objBuilder.HighlightPulseInSeconds;
            EnvironmentTexture        = objBuilder.EnvironmentTexture;
            EnvironmentOrientation    = objBuilder.EnvironmentOrientation;
            EnvironmentalParticles    = objBuilder.EnvironmentalParticles;
        }
Exemple #5
0
 public static void SetDefaults()
 {
     SunProperties = MySunProperties.Default;
     FogProperties = MyFogProperties.Default;
     ImpostorProperties = new VRageRender.MyImpostorProperties[1];
     ParticleDustProperties = new MyParticleDustProperties();
 }
Exemple #6
0
        protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            base.Init(builder);
            MyObjectBuilder_EnvironmentDefinition definition = (MyObjectBuilder_EnvironmentDefinition)builder;

            this.FogProperties       = definition.FogProperties;
            this.PlanetProperties    = definition.PlanetProperties;
            this.SunProperties       = definition.SunProperties;
            this.PostProcessSettings = definition.PostProcessSettings;
            this.SSAOSettings        = definition.SSAOSettings;
            this.HBAOSettings        = definition.HBAOSettings;
            this.ShadowSettings.CopyFrom(definition.ShadowSettings);
            this.LowLoddingSettings.CopyFrom(definition.LowLoddingSettings);
            this.MediumLoddingSettings.CopyFrom(definition.MediumLoddingSettings);
            this.HighLoddingSettings.CopyFrom(definition.HighLoddingSettings);
            this.ExtremeLoddingSettings.CopyFrom(definition.ExtremeLoddingSettings);
            this.SmallShipMaxSpeed         = definition.SmallShipMaxSpeed;
            this.LargeShipMaxSpeed         = definition.LargeShipMaxSpeed;
            this.SmallShipMaxAngularSpeed  = definition.SmallShipMaxAngularSpeed;
            this.LargeShipMaxAngularSpeed  = definition.LargeShipMaxAngularSpeed;
            this.ContourHighlightColor     = new Color(definition.ContourHighlightColor);
            this.ContourHighlightThickness = definition.ContourHighlightThickness;
            this.HighlightPulseInSeconds   = definition.HighlightPulseInSeconds;
            this.EnvironmentTexture        = definition.EnvironmentTexture;
            this.EnvironmentOrientation    = definition.EnvironmentOrientation;
            this.EnvironmentalParticles    = definition.EnvironmentalParticles;
        }
Exemple #7
0
 public static void SetDefaults()
 {
     SunProperties = new MySunProperties(MySunProperties.Default);
     FogProperties = MyFogProperties.Default;
     ImpostorProperties = new VRageRender.MyImpostorProperties[1];
     ParticleDustProperties = new MyParticleDustProperties();
     GodRaysProperties = new MyGodRaysProperties();
     BackgroundTexture = "BackgroundCube";
 }
Exemple #8
0
        public static void SetDefaults()
        {
            MySolarSystemArea defaults = MySolarSystemConstants.GetDefaultArea();

            SunProperties          = defaults.SectorData.SunProperties;
            FogProperties          = defaults.SectorData.FogProperties;
            DebrisProperties       = defaults.SectorData.DebrisProperties;
            ImpostorProperties     = defaults.SectorData.ImpostorProperties;
            ParticleDustProperties = defaults.SectorData.ParticleDustProperties;
            GodRaysProperties      = defaults.SectorData.GodRaysProperties;
            BackgroundTexture      = defaults.SectorData.BackgroundTexture;
        }
Exemple #9
0
        public static void InitEnvironmentSettings(MyObjectBuilder_EnvironmentSettings environmentBuilder = null)
        {
            if (environmentBuilder != null)
            {
                EnvironmentDefinition = MyDefinitionManager.Static.GetDefinition<MyEnvironmentDefinition>(environmentBuilder.EnvironmentDefinition);
            }
            else if (EnvironmentDefinition == null)
            {
                // Fallback
                EnvironmentDefinition = MyDefinitionManager.Static.GetDefinition<MyEnvironmentDefinition>(MyStringHash.GetOrCompute("Default"));
            }

            var environment = EnvironmentDefinition;
            SunProperties = environment.SunProperties;
            FogProperties = environment.FogProperties;
            SSAOSettings = environment.SSAOSettings;
            HBAOSettings = environment.HBAOSettings;
            ShadowSettings.CopyFrom(environment.ShadowSettings);
            SunRotationAxis = SunProperties.SunRotationAxis;

            MyRenderProxy.UpdateShadowsSettings(ShadowSettings);

            // TODO: Delete MyPostprocessSettingsWrapper and move to have bundled
            // settings in MySector and change all references to point here
            MyPostprocessSettingsWrapper.Settings = environment.PostProcessSettings;
            MyPostprocessSettingsWrapper.PlanetSettings = environment.PostProcessSettings;

            if (environmentBuilder != null)
            {
                Vector3 sunDirection;
                Vector3.CreateFromAzimuthAndElevation(environmentBuilder.SunAzimuth, environmentBuilder.SunElevation, out sunDirection);
                sunDirection.Normalize();

                SunProperties.BaseSunDirectionNormalized = sunDirection;
                SunProperties.SunDirectionNormalized = sunDirection;
                //SunProperties.SunIntensity = environmentBuilder.SunIntensity;

                FogProperties.FogMultiplier = environmentBuilder.FogMultiplier;
                FogProperties.FogDensity = environmentBuilder.FogDensity;
                FogProperties.FogColor = new Color(environmentBuilder.FogColor);
            }
        }
		protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            base.Init(builder);

            MyObjectBuilder_EnvironmentDefinition objBuilder = (MyObjectBuilder_EnvironmentDefinition)builder;
            FogProperties = objBuilder.FogProperties;
            SunProperties = objBuilder.SunProperties;
            PostProcessSettings = objBuilder.PostProcessSettings;
            SSAOSettings = objBuilder.SSAOSettings;
            HBAOSettings = objBuilder.HBAOSettings;
            ShadowSettings.CopyFrom(objBuilder.ShadowSettings);
            SmallShipMaxSpeed = objBuilder.SmallShipMaxSpeed;
            LargeShipMaxSpeed = objBuilder.LargeShipMaxSpeed;
            SmallShipMaxAngularSpeed = objBuilder.SmallShipMaxAngularSpeed;
            LargeShipMaxAngularSpeed = objBuilder.LargeShipMaxAngularSpeed;
            ContourHighlightColor = new Color(objBuilder.ContourHighlightColor);
            ContourHighlightThickness = objBuilder.ContourHighlightThickness;
            HighlightPulseInSeconds = objBuilder.HighlightPulseInSeconds;
            EnvironmentTexture = objBuilder.EnvironmentTexture;
            EnvironmentOrientation = objBuilder.EnvironmentOrientation;
        }
        public static void InitEnvironmentSettings(MyObjectBuilder_EnvironmentSettings environmentBuilder = null)
        {
            if (environmentBuilder != null)
            {
                EnvironmentDefinition = MyDefinitionManager.Static.GetDefinition<MyEnvironmentDefinition>(environmentBuilder.EnvironmentDefinition);
            }
            else if (EnvironmentDefinition == null)
            {
                // Fallback
                EnvironmentDefinition = MyDefinitionManager.Static.GetDefinition<MyEnvironmentDefinition>(MyStringHash.GetOrCompute("Default"));
            }

            var environment = EnvironmentDefinition;
            var o = environment.BackgroundOrientation;
            BackgroundTexture                   = environment.BackgroundTexture;
            BackgroundTextureNight              = environment.BackgroundTextureNight;
            BackgroundTextureNightPrefiltered   = environment.BackgroundTextureNightPrefiltered;
            BackgroundOrientation               = Quaternion.CreateFromYawPitchRoll(o.Yaw, o.Pitch, o.Roll);
            DistanceToSun                       = environment.DistanceToSun;

            SunProperties = new MySunProperties(environment.SunProperties);
            FogProperties = environment.FogProperties;

            if (environmentBuilder != null)
            {
                Vector3 sunDirection;
                Vector3.CreateFromAzimuthAndElevation(environmentBuilder.SunAzimuth, environmentBuilder.SunElevation, out sunDirection);

                SunProperties.SunDirectionNormalized = sunDirection;
                SunProperties.SunIntensity = environmentBuilder.SunIntensity;

                FogProperties.FogMultiplier = environmentBuilder.FogMultiplier;
                FogProperties.FogDensity = environmentBuilder.FogDensity;
                FogProperties.FogColor = new Color(environmentBuilder.FogColor);
                FogProperties.FogColor.A = 255;
            }
        }