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; } }