From 9e167e8e22e758fb8491f909e83a276c0b44c1b2 Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Fri, 7 Jul 2023 17:22:44 -0400 Subject: [PATCH] Added procedural sky serialization --- Nuake/src/Scene/Environment/ProceduralSky.cpp | 16 ++++++++++++++-- Nuake/src/Scene/Lighting/Environment.cpp | 5 +++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Nuake/src/Scene/Environment/ProceduralSky.cpp b/Nuake/src/Scene/Environment/ProceduralSky.cpp index 72f9cd94..ff45bd2c 100644 --- a/Nuake/src/Scene/Environment/ProceduralSky.cpp +++ b/Nuake/src/Scene/Environment/ProceduralSky.cpp @@ -102,17 +102,29 @@ namespace Nuake json ProceduralSky::Serialize() { BEGIN_SERIALIZE() - SERIALIZE_VAL(SurfaceRadius); + SERIALIZE_VAL(SurfaceRadius); SERIALIZE_VAL(AtmosphereRadius); SERIALIZE_VEC3(RayleighScattering); SERIALIZE_VEC3(MieScattering); SERIALIZE_VAL(SunIntensity); SERIALIZE_VEC3(SunDirection); + SERIALIZE_VEC3(CenterPoint); END_SERIALIZE(); } bool ProceduralSky::Deserialize(const std::string& str) { - return false; + BEGIN_DESERIALIZE() + DESERIALIZE_VEC3(j["SunDirection"], SunDirection) + DESERIALIZE_VEC3(j["RayleighScattering"], RayleighScattering) + DESERIALIZE_VEC3(j["MieScattering"], MieScattering) + if (j.contains("CenterPoint")) + { + DESERIALIZE_VEC3(j["CenterPoint"], CenterPoint) + } + SurfaceRadius = j["SurfaceRadius"]; + AtmosphereRadius = j["AtmosphereRadius"]; + SunIntensity = j["SunIntensity"]; + return true; } } diff --git a/Nuake/src/Scene/Lighting/Environment.cpp b/Nuake/src/Scene/Lighting/Environment.cpp index 72b68a83..741753f1 100644 --- a/Nuake/src/Scene/Lighting/Environment.cpp +++ b/Nuake/src/Scene/Lighting/Environment.cpp @@ -68,6 +68,11 @@ namespace Nuake { VolumetricFog = j["VolumetricFog"]; if (j.contains("VolumetricStepCount")) VolumetricStepCount = j["VolumetricStepCount"]; + if (j.contains("ProceduralSkybox")) + { + ProceduralSkybox->Deserialize(j["ProceduralSkybox"].dump()); + } + return false; } }