Grid/CinematicPostProcess.cs
using Sandbox;
using static Sandbox.Tonemapping;
namespace SWB.Visuals;
/// <summary>
/// Elokuvamainen post processing -kokonaisuus kameralle.
/// Lisätään Camera.GameObjectiin runtime-vaiheessa.
/// </summary>
public sealed class CinematicPostProcess : Component
{
[Property] public bool UseACES { get; set; } = true;
[Property] public float BloomThreshold { get; set; } = 0.6f;
[Property] public bool EnableBloom { get; set; } = true;
protected override void OnStart()
{
Apply();
}
public void Apply()
{
// 🎬 Tonemapping – AINOA varma “grading”
var tonemap = Components.GetOrCreate<Tonemapping>();
tonemap.Enabled = true;
tonemap.Mode = UseACES
? TonemappingMode.ACES
: TonemappingMode.Linear;
// ✨ Bloom – vain jos maailmassa on kirkkaita kohtia
var bloom = Components.GetOrCreate<Bloom>();
bloom.Enabled = EnableBloom;
bloom.Threshold = BloomThreshold;
}
}