Grid/WinterOutdoorProfile.cs
using Sandbox;
using static Sandbox.Tonemapping;
namespace SWB.Visuals.Profiles;
public sealed class WinterOutdoorProfile : CinematicProfile
{
// ─────────────────────────────
// TONEMAPPING
// ─────────────────────────────
public override TonemappingMode Tonemap => TonemappingMode.ACES;
// Lukittu exposure – tärkein talvessa
public override float MinExposure => -0.35f;
public override float MaxExposure => -0.35f;
// ─────────────────────────────
// BLOOM
// ─────────────────────────────
public override bool EnableBloom => false;
public override float BloomThreshold => 1.0f;
// ─────────────────────────────
// COLOR ADJUSTMENTS
// ─────────────────────────────
public override float Brightness => -0.05f;
public override float Contrast => 1.1f;
public override float Saturation => 0.7f;
// ─────────────────────────────
// LIGHTING
// ─────────────────────────────
protected override void ApplyLighting()
{
var cam = Scene.Camera;
if (cam == null)
return;
// ───────── KEY LIGHT – KEVYT TALVIAURINKO ─────────
var sunGO = GetOrCreateLight("Winter_SunLight");
var sun = sunGO.Components.GetOrCreate<DirectionalLight>();
// Kevyt, hieman lämmin mutta hillitty
sun.LightColor = new Color(1.0f, 0.97f, 0.9f);
sun.Shadows = true;
// Matala aurinko (talvi)
sunGO.Transform.Rotation =
Rotation.LookAt(new Vector3(-1.0f, -0.3f, -0.6f));
// ───────── FILL LIGHT – TAIVAS + LUMI ─────────
var fillGO = GetOrCreateLight("Winter_SkyFill");
var fill = fillGO.Components.GetOrCreate<PointLight>();
fill.LightColor = new Color(0.55f, 0.65f, 0.75f);
fill.Radius = 3500f;
fill.Shadows = false;
fillGO.Transform.Position =
cam.Transform.Position +
cam.Transform.Rotation.Up * 500f;
// ───────── RIM LIGHT – MUOTOA HAHMOILLE (HALPA) ─────────
var rimGO = GetOrCreateLight("Winter_RimLight");
var rim = rimGO.Components.GetOrCreate<DirectionalLight>();
rim.LightColor = new Color(0.6f, 0.7f, 0.85f);
rim.Shadows = false;
rimGO.Transform.Rotation =
Rotation.LookAt(new Vector3(1.0f, 0.2f, -0.5f));
}
}