diff --git a/code/Weather/Sky/SkyComponent.cpp b/code/Weather/Sky/SkyComponent.cpp
index 0197e0041..c76d96d23 100644
--- a/code/Weather/Sky/SkyComponent.cpp
+++ b/code/Weather/Sky/SkyComponent.cpp
@@ -34,6 +34,8 @@ const resource::Id< render::Shader > c_shaderClouds2D(Guid(L"{9F52BE0A-0C1A-4928
const resource::Id< render::Shader > c_shaderClouds3D(Guid(L"{EF88CE37-0917-4402-B2D1-6E3F2D3CCCCF}"));
const resource::Id< render::Shader > c_shaderCloudsDome(Guid(L"{151F822B-B85F-6349-B536-7663C95C43B8}"));
+const render::Handle c_handleWeather_CloudsEnable(L"Weather_CloudsEnable");
+
const render::Handle s_handleWeather_SkyRadius(L"Weather_SkyRadius");
const render::Handle s_handleWeather_SkyRotation(L"Weather_SkyRotation");
const render::Handle s_handleWeather_SkyTexture(L"Weather_SkyTexture");
@@ -43,6 +45,8 @@ const render::Handle s_handleWeather_SkyCloudBlend(L"Weather_SkyCloudBlend");
const render::Handle s_handleWeather_SkyIntensity(L"Weather_SkyIntensity");
const render::Handle s_handleWeather_SkySunDirection(L"Weather_SkySunDirection");
const render::Handle s_handleWeather_SkySunColor(L"Weather_SkySunColor");
+const render::Handle s_handleWeather_SkyOverHorizon(L"Weather_SkyOverHorizon");
+const render::Handle s_handleWeather_SkyUnderHorizon(L"Weather_SkyUnderHorizon");
const render::Handle s_handleWeather_SkyEyePosition(L"Weather_SkyEyePosition");
const render::Handle s_handleWeather_SkyCloudTexture(L"Weather_SkyCloudTexture");
const render::Handle s_handleWeather_SkyCloudTextureLast(L"Weather_SkyCloudTextureLast");
@@ -63,12 +67,18 @@ T_IMPLEMENT_RTTI_CLASS(L"traktor.weather.SkyComponent", SkyComponent, world::IEn
SkyComponent::SkyComponent(
const resource::Proxy< render::Shader >& shader,
const resource::Proxy< render::ITexture >& texture,
- float intensity
+ float intensity,
+ bool clouds,
+ const Color4f& overHorizon,
+ const Color4f& underHorizon
)
: m_shader(shader)
, m_texture(texture)
, m_transform(Transform::identity())
, m_intensity(intensity)
+, m_clouds(clouds)
+, m_overHorizon(overHorizon)
+, m_underHorizon(underHorizon)
{
}
@@ -139,41 +149,44 @@ bool SkyComponent::create(resource::IResourceManager* resourceManager, render::I
c_vertexCount - 1
);
- render::SimpleTextureCreateDesc stcd = {};
- render::VolumeTextureCreateDesc vtcd = {};
-
- stcd.width = 512;
- stcd.height = 512;
- stcd.mipCount = 1;
- stcd.format = render::TfR32G32B32A32F;
- stcd.shaderStorage = true;
- m_cloudTextures[0] = renderSystem->createSimpleTexture(stcd, T_FILE_LINE_W);
-
- vtcd.width = 64;
- vtcd.height = 64;
- vtcd.depth = 64;
- vtcd.mipCount = 1;
- vtcd.format = render::TfR32F;
- vtcd.shaderStorage = true;
- m_cloudTextures[1] = renderSystem->createVolumeTexture(vtcd, T_FILE_LINE_W);
-
- stcd.width = 1024;
- stcd.height = 256;
- stcd.mipCount = 1;
- stcd.format = render::TfR32G32B32A32F;
- stcd.shaderStorage = true;
- m_cloudDomeTexture[0] = renderSystem->createSimpleTexture(stcd, T_FILE_LINE_W);
- m_cloudDomeTexture[1] = renderSystem->createSimpleTexture(stcd, T_FILE_LINE_W);
-
- if (!m_cloudTextures[0] || !m_cloudTextures[1] || !m_cloudDomeTexture[0] || !m_cloudDomeTexture[1])
- return false;
-
- if (!resourceManager->bind(c_shaderClouds2D, m_shaderClouds2D))
- return false;
- if (!resourceManager->bind(c_shaderClouds3D, m_shaderClouds3D))
- return false;
- if (!resourceManager->bind(c_shaderCloudsDome, m_shaderCloudsDome))
- return false;
+ if (m_clouds)
+ {
+ render::SimpleTextureCreateDesc stcd = {};
+ render::VolumeTextureCreateDesc vtcd = {};
+
+ stcd.width = 512;
+ stcd.height = 512;
+ stcd.mipCount = 1;
+ stcd.format = render::TfR32G32B32A32F;
+ stcd.shaderStorage = true;
+ m_cloudTextures[0] = renderSystem->createSimpleTexture(stcd, T_FILE_LINE_W);
+
+ vtcd.width = 64;
+ vtcd.height = 64;
+ vtcd.depth = 64;
+ vtcd.mipCount = 1;
+ vtcd.format = render::TfR32F;
+ vtcd.shaderStorage = true;
+ m_cloudTextures[1] = renderSystem->createVolumeTexture(vtcd, T_FILE_LINE_W);
+
+ stcd.width = 1024;
+ stcd.height = 256;
+ stcd.mipCount = 1;
+ stcd.format = render::TfR32G32B32A32F;
+ stcd.shaderStorage = true;
+ m_cloudDomeTexture[0] = renderSystem->createSimpleTexture(stcd, T_FILE_LINE_W);
+ m_cloudDomeTexture[1] = renderSystem->createSimpleTexture(stcd, T_FILE_LINE_W);
+
+ if (!m_cloudTextures[0] || !m_cloudTextures[1] || !m_cloudDomeTexture[0] || !m_cloudDomeTexture[1])
+ return false;
+
+ if (!resourceManager->bind(c_shaderClouds2D, m_shaderClouds2D))
+ return false;
+ if (!resourceManager->bind(c_shaderClouds3D, m_shaderClouds3D))
+ return false;
+ if (!resourceManager->bind(c_shaderCloudsDome, m_shaderCloudsDome))
+ return false;
+ }
return true;
}
@@ -224,105 +237,108 @@ void SkyComponent::setup(
{
render::RenderGraph& renderGraph = context.getRenderGraph();
- if (m_shaderClouds2D.changed() || m_shaderClouds3D.changed())
+ if (m_clouds)
{
- m_dirty = true;
- m_shaderClouds2D.consume();
- m_shaderClouds3D.consume();
- }
+ if (m_shaderClouds2D.changed() || m_shaderClouds3D.changed())
+ {
+ m_dirty = true;
+ m_shaderClouds2D.consume();
+ m_shaderClouds3D.consume();
+ }
- if (m_dirty)
- {
- Ref< render::RenderPass > rp = new render::RenderPass(L"Sky compute clouds noise");
- rp->addBuild([=, this](const render::RenderGraph&, render::RenderContext* renderContext) {
- {
- auto renderBlock = renderContext->allocNamed< render::ComputeRenderBlock >(L"Sky clouds 2D");
- renderBlock->program = m_shaderClouds2D->getProgram().program;
- renderBlock->workSize[0] = 512;
- renderBlock->workSize[1] = 512;
- renderBlock->workSize[2] = 1;
+ if (m_dirty)
+ {
+ Ref< render::RenderPass > rp = new render::RenderPass(L"Sky compute clouds noise");
+ rp->addBuild([=, this](const render::RenderGraph&, render::RenderContext* renderContext) {
+ {
+ auto renderBlock = renderContext->allocNamed< render::ComputeRenderBlock >(L"Sky clouds 2D");
+ renderBlock->program = m_shaderClouds2D->getProgram().program;
+ renderBlock->workSize[0] = 512;
+ renderBlock->workSize[1] = 512;
+ renderBlock->workSize[2] = 1;
+
+ renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
+ renderBlock->programParams->beginParameters(renderContext);
+ renderBlock->programParams->setImageViewParameter(s_handleWeather_OutputTexture, m_cloudTextures[0], 0);
+ renderBlock->programParams->endParameters(renderContext);
+
+ renderContext->compute(renderBlock);
+ renderContext->compute< render::BarrierRenderBlock >(render::Stage::Compute, render::Stage::Compute, m_cloudTextures[0], 0);
+ }
+ {
+ auto renderBlock = renderContext->allocNamed< render::ComputeRenderBlock >(L"Sky clouds 3D");
+ renderBlock->program = m_shaderClouds3D->getProgram().program;
+ renderBlock->workSize[0] = 64;
+ renderBlock->workSize[1] = 64;
+ renderBlock->workSize[2] = 64;
+
+ renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
+ renderBlock->programParams->beginParameters(renderContext);
+ renderBlock->programParams->setImageViewParameter(s_handleWeather_OutputTexture, m_cloudTextures[1], 0);
+ renderBlock->programParams->endParameters(renderContext);
+
+ renderContext->compute(renderBlock);
+ renderContext->compute< render::BarrierRenderBlock >(render::Stage::Compute, render::Stage::Compute, m_cloudTextures[1], 0);
+ }
+ });
+ renderGraph.addPass(rp);
+
+ m_dirty = false;
+ }
- renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
- renderBlock->programParams->beginParameters(renderContext);
- renderBlock->programParams->setImageViewParameter(s_handleWeather_OutputTexture, m_cloudTextures[0], 0);
- renderBlock->programParams->endParameters(renderContext);
+ const int32_t cloudFrame = int32_t(worldRenderView.getTime() * 8.0f);
+ m_cloudBlend = (worldRenderView.getTime() * 8.0f) - cloudFrame;
- renderContext->compute(renderBlock);
- renderContext->compute< render::BarrierRenderBlock >(render::Stage::Compute, render::Stage::Compute, m_cloudTextures[0], 0);
- }
+ // Generate dome projected cloud layer.
+ if (
+ worldRenderView.getSnapshot() ||
+ (worldRenderView.getIndex() == 0 && cloudFrame != m_cloudFrame)
+ )
+ {
+ render::ITexture* input = m_cloudDomeTexture[m_count & 1];
+ render::ITexture* output = m_cloudDomeTexture[(m_count + 1) & 1];
+
+ // Get sun from directional light in same entity as sky component.
+ Vector4 sunDirection = m_transform.axisY();
+ Vector4 sunColor = Vector4(1.0f, 0.9f, 0.85f) * 1.8_simd;
+ if (m_owner != nullptr)
{
- auto renderBlock = renderContext->allocNamed< render::ComputeRenderBlock >(L"Sky clouds 3D");
- renderBlock->program = m_shaderClouds3D->getProgram().program;
- renderBlock->workSize[0] = 64;
- renderBlock->workSize[1] = 64;
- renderBlock->workSize[2] = 64;
+ auto lightComponent = m_owner->getComponent< world::LightComponent >();
+ if (lightComponent)
+ sunColor = lightComponent->getColor();
+ }
+
+ Ref< render::RenderPass > rp = new render::RenderPass(L"Sky compute clouds dome");
+ rp->addBuild([=, this](const render::RenderGraph&, render::RenderContext* renderContext) {
+ auto renderBlock = renderContext->allocNamed< render::ComputeRenderBlock >(L"Sky clouds dome");
+ renderBlock->program = m_shaderCloudsDome->getProgram().program;
+ renderBlock->workSize[0] = 1024;
+ renderBlock->workSize[1] = 256;
+ renderBlock->workSize[2] = 1;
renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
renderBlock->programParams->beginParameters(renderContext);
- renderBlock->programParams->setImageViewParameter(s_handleWeather_OutputTexture, m_cloudTextures[1], 0);
+ renderBlock->programParams->setImageViewParameter(s_handleWeather_InputTexture, input, 0);
+ renderBlock->programParams->setImageViewParameter(s_handleWeather_OutputTexture, output, 0);
+ renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud2D, m_cloudTextures[0]);
+ renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud3D, m_cloudTextures[1]);
+ renderBlock->programParams->setFloatParameter(s_handleWeather_SkyRadius, worldRenderView.getViewFrustum().getFarZ() - 10.0f);
+ renderBlock->programParams->setVectorParameter(s_handleWeather_SkySunColor, sunColor);
+ renderBlock->programParams->setVectorParameter(s_handleWeather_SkySunDirection, sunDirection);
+ renderBlock->programParams->setFloatParameter(s_handleWeather_SkyTemporalBlend, (worldRenderView.getSnapshot() || m_cloudFrame == 0) ? 1.0f : 0.2f);
+ renderBlock->programParams->setFloatParameter(world::s_handleTime, worldRenderView.getTime());
renderBlock->programParams->endParameters(renderContext);
renderContext->compute(renderBlock);
- renderContext->compute< render::BarrierRenderBlock >(render::Stage::Compute, render::Stage::Compute, m_cloudTextures[1], 0);
- }
- });
- renderGraph.addPass(rp);
-
- m_dirty = false;
- }
-
- const int32_t cloudFrame = int32_t(worldRenderView.getTime() * 8.0f);
- m_cloudBlend = (worldRenderView.getTime() * 8.0f) - cloudFrame;
+ renderContext->compute< render::BarrierRenderBlock >(render::Stage::Compute, render::Stage::Fragment, output, 0);
+ });
+ renderGraph.addPass(rp);
- // Generate dome projected cloud layer.
- if (
- worldRenderView.getSnapshot() ||
- (worldRenderView.getIndex() == 0 && cloudFrame != m_cloudFrame)
- )
- {
- render::ITexture* input = m_cloudDomeTexture[m_count & 1];
- render::ITexture* output = m_cloudDomeTexture[(m_count + 1) & 1];
+ m_count++;
- // Get sun from directional light in same entity as sky component.
- Vector4 sunDirection = m_transform.axisY();
- Vector4 sunColor = Vector4(1.0f, 0.9f, 0.85f) * 1.8_simd;
- if (m_owner != nullptr)
- {
- auto lightComponent = m_owner->getComponent< world::LightComponent >();
- if (lightComponent)
- sunColor = lightComponent->getColor();
+ if (!worldRenderView.getSnapshot())
+ m_cloudFrame = cloudFrame;
}
-
- Ref< render::RenderPass > rp = new render::RenderPass(L"Sky compute clouds dome");
- rp->addBuild([=, this](const render::RenderGraph&, render::RenderContext* renderContext) {
- auto renderBlock = renderContext->allocNamed< render::ComputeRenderBlock >(L"Sky clouds dome");
- renderBlock->program = m_shaderCloudsDome->getProgram().program;
- renderBlock->workSize[0] = 1024;
- renderBlock->workSize[1] = 256;
- renderBlock->workSize[2] = 1;
-
- renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
- renderBlock->programParams->beginParameters(renderContext);
- renderBlock->programParams->setImageViewParameter(s_handleWeather_InputTexture, input, 0);
- renderBlock->programParams->setImageViewParameter(s_handleWeather_OutputTexture, output, 0);
- renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud2D, m_cloudTextures[0]);
- renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud3D, m_cloudTextures[1]);
- renderBlock->programParams->setFloatParameter(s_handleWeather_SkyRadius, worldRenderView.getViewFrustum().getFarZ() - 10.0f);
- renderBlock->programParams->setVectorParameter(s_handleWeather_SkySunColor, sunColor);
- renderBlock->programParams->setVectorParameter(s_handleWeather_SkySunDirection, sunDirection);
- renderBlock->programParams->setFloatParameter(s_handleWeather_SkyTemporalBlend, (worldRenderView.getSnapshot() || m_cloudFrame == 0) ? 1.0f : 0.2f);
- renderBlock->programParams->setFloatParameter(world::s_handleTime, worldRenderView.getTime());
- renderBlock->programParams->endParameters(renderContext);
-
- renderContext->compute(renderBlock);
- renderContext->compute< render::BarrierRenderBlock >(render::Stage::Compute, render::Stage::Fragment, output, 0);
- });
- renderGraph.addPass(rp);
-
- m_count++;
-
- if (!worldRenderView.getSnapshot())
- m_cloudFrame = cloudFrame;
}
}
@@ -333,6 +349,7 @@ void SkyComponent::build(
)
{
auto perm = worldRenderPass.getPermutation(m_shader);
+ m_shader->setCombination(c_handleWeather_CloudsEnable, m_clouds, perm);
auto sp = m_shader->getProgram(perm);
if (!sp)
return;
@@ -370,15 +387,22 @@ void SkyComponent::build(
renderBlock->programParams->setFloatParameter(s_handleWeather_SkyRadius, worldRenderView.getViewFrustum().getFarZ() - 10.0f);
renderBlock->programParams->setFloatParameter(s_handleWeather_SkyRotation, rotation);
renderBlock->programParams->setFloatParameter(s_handleWeather_SkyIntensity, m_intensity);
- renderBlock->programParams->setFloatParameter(s_handleWeather_SkyCloudBlend, m_cloudBlend);
renderBlock->programParams->setVectorParameter(s_handleWeather_SkySunDirection, sunDirection);
renderBlock->programParams->setVectorParameter(s_handleWeather_SkySunColor, sunColor);
+ renderBlock->programParams->setVectorParameter(s_handleWeather_SkyOverHorizon, m_overHorizon);
+ renderBlock->programParams->setVectorParameter(s_handleWeather_SkyUnderHorizon, m_underHorizon);
renderBlock->programParams->setVectorParameter(s_handleWeather_SkyEyePosition, eyePosition);
renderBlock->programParams->setTextureParameter(s_handleWeather_SkyTexture, m_texture);
- renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud2D, m_cloudTextures[0]);
- renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud3D, m_cloudTextures[1]);
- renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloudTexture, cloudDomeTexture);
- renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloudTextureLast, cloudDomeTextureLast);
+
+ if (m_clouds)
+ {
+ renderBlock->programParams->setFloatParameter(s_handleWeather_SkyCloudBlend, m_cloudBlend);
+ renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud2D, m_cloudTextures[0]);
+ renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloud3D, m_cloudTextures[1]);
+ renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloudTexture, cloudDomeTexture);
+ renderBlock->programParams->setTextureParameter(s_handleWeather_SkyCloudTextureLast, cloudDomeTextureLast);
+ }
+
renderBlock->programParams->endParameters(renderContext);
renderContext->draw(sp.priority, renderBlock);
diff --git a/code/Weather/Sky/SkyComponent.h b/code/Weather/Sky/SkyComponent.h
index e8fa339d1..99b362d05 100644
--- a/code/Weather/Sky/SkyComponent.h
+++ b/code/Weather/Sky/SkyComponent.h
@@ -61,7 +61,10 @@ class T_DLLCLASS SkyComponent : public world::IEntityComponent
explicit SkyComponent(
const resource::Proxy< render::Shader >& shader,
const resource::Proxy< render::ITexture >& texture,
- float intensity
+ float intensity,
+ bool clouds,
+ const Color4f& overHorizon,
+ const Color4f& underHorizon
);
virtual ~SkyComponent();
@@ -104,6 +107,9 @@ class T_DLLCLASS SkyComponent : public world::IEntityComponent
world::Entity* m_owner = nullptr;
Transform m_transform;
float m_intensity = 1.0f;
+ bool m_clouds = true;
+ Color4f m_overHorizon = Color4f(0.2f, 0.5f, 0.85f, 0.0f);
+ Color4f m_underHorizon = Color4f(0.1f, 0.1f, 0.12f, 0.0f);
int32_t m_count = 0;
int32_t m_cloudFrame = 0;
float m_cloudBlend = 0.0f;
diff --git a/code/Weather/Sky/SkyComponentData.cpp b/code/Weather/Sky/SkyComponentData.cpp
index fd0098fbc..b12b2c8a6 100644
--- a/code/Weather/Sky/SkyComponentData.cpp
+++ b/code/Weather/Sky/SkyComponentData.cpp
@@ -29,11 +29,10 @@ const resource::Id< render::Shader > c_defaultShader(Guid(L"{4CF929EB-3A8B-C340-
}
-T_IMPLEMENT_RTTI_EDIT_CLASS(L"traktor.weather.SkyComponentData", 4, SkyComponentData, world::IEntityComponentData)
+T_IMPLEMENT_RTTI_EDIT_CLASS(L"traktor.weather.SkyComponentData", 6, SkyComponentData, world::IEntityComponentData)
SkyComponentData::SkyComponentData()
: m_shader(c_defaultShader)
-, m_intensity(1.0f)
{
}
@@ -53,7 +52,10 @@ Ref< SkyComponent > SkyComponentData::createComponent(resource::IResourceManager
Ref< SkyComponent > skyComponent = new SkyComponent(
shader,
texture,
- m_intensity
+ m_intensity,
+ m_clouds,
+ m_overHorizon,
+ m_underHorizon
);
skyComponent->create(resourceManager, renderSystem);
return skyComponent;
@@ -89,6 +91,15 @@ void SkyComponentData::serialize(ISerializer& s)
if (s.getVersion< SkyComponentData >() >= 4)
s >> Member< float >(L"intensity", m_intensity, AttributeRange(0.0f) | AttributeUnit(UnitType::Percent));
+
+ if (s.getVersion< SkyComponentData >() >= 5)
+ s >> Member< bool >(L"clouds", m_clouds);
+
+ if (s.getVersion< SkyComponentData >() >= 6)
+ {
+ s >> Member< Color4f >(L"overHorizon", m_overHorizon);
+ s >> Member< Color4f >(L"underHorizon", m_underHorizon);
+ }
}
}
diff --git a/code/Weather/Sky/SkyComponentData.h b/code/Weather/Sky/SkyComponentData.h
index 90bb34473..1c7a14d19 100644
--- a/code/Weather/Sky/SkyComponentData.h
+++ b/code/Weather/Sky/SkyComponentData.h
@@ -1,6 +1,6 @@
/*
* TRAKTOR
- * Copyright (c) 2022-2023 Anders Pistol.
+ * Copyright (c) 2022-2024 Anders Pistol.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -8,6 +8,7 @@
*/
#pragma once
+#include "Core/Math/Color4f.h"
#include "Resource/Id.h"
#include "World/IEntityComponentData.h"
@@ -67,7 +68,10 @@ class T_DLLCLASS SkyComponentData : public world::IEntityComponentData
private:
resource::Id< render::Shader > m_shader;
resource::Id< render::ITexture > m_texture;
- float m_intensity;
+ float m_intensity = 1.0f;
+ bool m_clouds = true;
+ Color4f m_overHorizon = Color4f(0.2f, 0.5f, 0.85f, 0.0f);
+ Color4f m_underHorizon = Color4f(0.1f, 0.1f, 0.12f, 0.0f);
};
}
diff --git a/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi b/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi
index 8f51a740f..8b4897e98 100644
--- a/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi
+++ b/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi
@@ -44,7 +44,7 @@
{9172DF46-5E10-BA42-8DA5-7576BFD7DE9A}
- 207
+ 217
-615
Position
@@ -173,8 +173,8 @@
{27233818-FC79-524A-8A87-6D75EDA9A16B}
- 1412
- 543
+ 1446
+ 558
L_SurfaceElevation
@@ -182,8 +182,8 @@
{03811780-9518-6E4F-A6CB-B6668F5FA61E}
- 1254
- 573
+ 1232
+ 584
y
@@ -191,8 +191,8 @@
{C1439711-F197-B847-819D-44565E902E93}
- 3652
- 802
+ 3623
+ 799
{4F91544C-FDC4-2042-8CAA-E721B4DB04C1}
@@ -217,8 +217,8 @@
{46A921E9-6342-844F-8BA5-4172B82D79F9}
- 3641
- 886
+ 3633
+ 883
z
@@ -226,7 +226,7 @@
{07DE2DE4-40CA-804F-841E-0B8F98A26A7C}
- 3824
+ 3839
818
@@ -234,8 +234,8 @@
{1BC58BB7-4E28-F346-967D-CFD5E4F68760}
- 4528
- 902
+ 4477
+ 863
L_DepthFactor
@@ -243,8 +243,8 @@
{289F7E9C-D57D-714E-846B-46152985B1C7}
- 6935
- 1570
+ 7208
+ 1578
L_DepthFactor
@@ -261,8 +261,8 @@
{F2F64AEA-AF10-DD4F-BECA-CB693C8C4EDA}
- 6117
- 601
+ 5917
+ 675
Ocean_ShallowTint
Vector
@@ -283,8 +283,8 @@
{1A8032F5-2B64-454F-B755-BD8DFCC369AA}
- 6133
- 647
+ 5917
+ 718
Ocean_DeepColor
Vector
@@ -302,8 +302,8 @@
{C02030AF-E63C-2644-A895-36D45005B5E6}
- 5452
- 1446
+ 5099
+ 1440
L_Foam
@@ -311,8 +311,8 @@
{D7F4078D-0DA1-BB48-ACEC-50B29BEB2957}
- 4821
- 1195
+ 4454
+ 1200
{AAEBB86D-4227-1847-A147-A07C2A5D10B9}
Texture2D
@@ -321,8 +321,8 @@
{EADE38D6-6809-B14B-B79A-DFF9733CBBAE}
- 5226
- 1284
+ 4859
+ 1289
FtLinear
FtLinear
@@ -339,8 +339,8 @@
{80CB4932-CB55-D543-9529-468B41C8509B}
- 4494
- 1334
+ 4127
+ 1339
L_WorldPosition
@@ -348,16 +348,16 @@
{D71887B3-1A90-6045-8CC1-2E092E82D636}
- 4703
- 1347
+ 4336
+ 1352
-
{C670FB0B-35A7-1541-9837-84AFAC29A7E3}
- 5033
- 1351
+ 4666
+ 1356
xz
@@ -365,16 +365,16 @@
{412B88ED-E058-4248-9C47-7F134DFE2371}
- 4792
- 1349
+ 4425
+ 1354
-
{72E1CD43-2EE1-F54D-AA96-0F8FB1ECCE2D}
- 4620
- 1396
+ 4253
+ 1401
0.04
@@ -382,8 +382,8 @@
{2AE0A49E-87BC-B24E-8FCC-34F02B6271D1}
- 7994
- 1428
+ 8267
+ 1436
World_DeferredColor
@@ -429,8 +429,8 @@
{E7699DB6-936F-9942-8A80-59AD6B0ACB4A}
- 6185
- 1553
+ 6624
+ 1525
World_VisualCopyMap
Texture2D
@@ -440,8 +440,8 @@
{87833C0B-3553-4C4D-8BA3-C79F874B2040}
- 6479
- 1574
+ 6918
+ 1546
FtLinear
FtLinear
@@ -458,32 +458,32 @@
{377DC967-0611-A44B-8673-0320C467DD01}
- 6060
- 1682
+ 6281
+ 1598
-
{AD226821-988C-B748-92C2-AD10DCB46686}
- 6214
- 1633
+ 6427
+ 1549
-
{76FF4631-FC41-EF42-8D3F-85CCCDF9D067}
- 6020
- 1628
+ 6233
+ 1544
-
{D094C929-99AC-F246-8ED4-D956288B6511}
- 7161
- 1465
+ 7434
+ 1473
-
@@ -532,7 +532,7 @@
{ED95106E-9A75-CF45-B982-753F812F5AD3}
- 5438
+ 5454
911
0
@@ -541,7 +541,7 @@
{6314802C-0644-FE45-A005-DA92798793C1}
- 5428
+ 5444
999
L_ViewNormal
@@ -801,8 +801,8 @@
{05FF13B6-AB9A-B34B-873D-22D81DDA9867}
- 5370
- 1641
+ 5384
+ 1505
0.2
@@ -821,7 +821,7 @@
{F821EF57-F0C4-724A-B7D8-887A02F3260D}
- 618
+ 644
490
L_Foam
@@ -830,8 +830,8 @@
{3AD3C24B-55BA-B348-AC87-05BFAC3A9993}
- 7632
- 1496
+ 7905
+ 1504
{AFD5FE57-FE20-134A-9C0F-5E25CAB9B3F2}
@@ -858,8 +858,8 @@
{9E5ECDF6-5770-0D48-AD2A-E63522339F57}
- 7383
- 1582
+ 7656
+ 1590
L_ViewPosition
@@ -1084,8 +1084,8 @@ Read current fragment
]]>
- 6188
- 1509
+ 6627
+ 1481
-
@@ -1100,8 +1100,8 @@ Read current fragment
{E1F9C6F4-AA5B-9C44-BC07-9F9A1B3CEA00}
- 6667
- 369
+ 6424
+ 547
Scatter
@@ -1170,21 +1170,12 @@ $Output = vec4(scatter, 0.0f);
]]>
- -
- {4FF35D5D-9106-EE40-9190-D76355D2F79F}
-
-
- 6149
- 371
-
- L_ViewPosition
-
-
{EF1373CD-97CC-864A-BA3D-0D2760A081A6}
- 6149
- 325
+ 5949
+ 460
L_ViewNormal
@@ -1371,8 +1362,8 @@ $Output = vec4(scatter, 0.0f);
{FF9CB8F2-CB26-5B44-9A95-A92DF313D83E}
- 6133
- 417
+ 5933
+ 503
L_LightDirection
@@ -1380,8 +1371,8 @@ $Output = vec4(scatter, 0.0f);
{C92B179E-8E7E-8742-9842-E7E665952051}
- 6133
- 509
+ 5933
+ 589
L_ViewDirection
@@ -1389,8 +1380,8 @@ $Output = vec4(scatter, 0.0f);
{42181944-1082-EA4E-A4EF-FF95C6F5D188}
- 6149
- 463
+ 5933
+ 546
L_DepthFactor
@@ -1398,8 +1389,8 @@ $Output = vec4(scatter, 0.0f);
{C8EF8E9D-8C2A-EC4A-A80F-58EFC3BB43EA}
- 6149
- 555
+ 5949
+ 632
L_Irradiance
@@ -1407,8 +1398,8 @@ $Output = vec4(scatter, 0.0f);
{3504C002-CF68-2542-AAA2-6F2A044EF524}
- 5460
- 1373
+ 5099
+ 1378
x
@@ -1416,16 +1407,16 @@ $Output = vec4(scatter, 0.0f);
{E32396D9-528C-CD4C-84B5-DBE89E7A8B78}
- 5672
- 1390
+ 5309
+ 1385
-
{D5843542-7795-0D45-A49F-42CB1CA39E02}
- 5860
- 1680
+ 5907
+ 1481
L_Roughness
@@ -1433,7 +1424,7 @@ $Output = vec4(scatter, 0.0f);
{C7B3B2BD-FD0C-0F43-A0B2-7322DC5F4350}
- 5428
+ 5444
955
L_Roughness
@@ -1451,8 +1442,8 @@ $Output = vec4(scatter, 0.0f);
{A4029210-7EB8-FC49-A9F2-005C873D2CD9}
- 5376
- 1694
+ 5384
+ 1558
0.8
@@ -1460,8 +1451,8 @@ $Output = vec4(scatter, 0.0f);
{1AF7A3BF-5BFA-E543-8895-0E44D4621E69}
- 5648
- 1637
+ 5656
+ 1501
-
@@ -1486,7 +1477,7 @@ $Output = vec4(scatter, 0.0f);
4277
- 829
+ 848
0
1
@@ -1822,8 +1813,8 @@ Dummy
{5BB82970-DF53-2343-B680-D7A5425EA141}
- 5018
- 1224
+ 4651
+ 1229
-
@@ -1858,8 +1849,8 @@ Read sun direction
{88111C5D-C57F-6146-A14F-5DCA4A8F5CB3}
- 6102
- 1830
+ 6265
+ 1678
Unnamed
@@ -1898,8 +1889,8 @@ $Output = vec4(r * -0.05f, 0.0f);
{69E7DEA1-4A45-7D42-A199-ECF571A8104B}
- 5901
- 1886
+ 6070
+ 1734
L_ViewNormal
@@ -1907,8 +1898,8 @@ $Output = vec4(r * -0.05f, 0.0f);
{029C448C-ED9B-EB40-B406-CCFA2D4A2B63}
- 5891
- 1826
+ 6054
+ 1674
L_ViewDirection
@@ -1916,8 +1907,8 @@ $Output = vec4(r * -0.05f, 0.0f);
{595CEF78-DEF4-F441-B2A7-141CC9F5F508}
- 6339
- 1834
+ 6460
+ 1670
xy
@@ -1925,8 +1916,8 @@ $Output = vec4(r * -0.05f, 0.0f);
{B1EE0094-6D31-8148-A6F5-B72FF609426D}
- 6484
- 1760
+ 6647
+ 1608
-
@@ -1941,8 +1932,8 @@ $Output = vec4(r * -0.05f, 0.0f);
{B8655422-628E-394A-B33D-970F754CED96}
- 259
- -558
+ 265
+ -561
500
@@ -1950,8 +1941,8 @@ $Output = vec4(r * -0.05f, 0.0f);
{EEFF6D5B-70D2-AB46-B4E9-B42CD4385764}
- 285
- -517
+ 271
+ -507
Ocean_Tile
Vector
@@ -1961,7 +1952,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{9B89538B-61FE-F345-AF0F-4D1023C50C76}
- 482
+ 461
-503
@@ -1978,7 +1969,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{3275587E-4619-E64E-8011-0536026EAD2D}
- 679
+ 671
-514
@@ -2656,7 +2647,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -2666,137 +2657,137 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{0FF6511C-0293-41A8-830E-81978BD01F7F}
-
-
+
{0FF6511C-0293-41A8-840E-81978BD01F7F}
-
@@ -2806,7 +2797,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -2816,7 +2807,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -2826,7 +2817,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -2890,7 +2881,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{AF6C971B-D67A-42EE-A12B-97D36927C89F}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
@@ -2900,23 +2891,23 @@ $Output = vec4(r * -0.05f, 0.0f);
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
-
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
@@ -2926,7 +2917,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -2936,7 +2927,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -2946,11 +2937,11 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{5A25771B-894F-4D92-8D1E-FBF8449850E8}
@@ -2960,33 +2951,33 @@ $Output = vec4(r * -0.05f, 0.0f);
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{8760B263-C70C-46BA-9E97-A3D6B08941E9}
-
-
+
{7ACEE4C2-A92D-4E50-BFAE-C1D744BEE5E0}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
@@ -2996,17 +2987,17 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
@@ -3016,101 +3007,101 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{F0CBF543-3ABA-D346-B737-070FE06DBEC9}
-
-
+
{A62A00A9-83D9-5546-9E26-6D5A40821D7E}
-
-
+
{37007839-EF02-2147-9676-C1C38A214D0F}
-
-
+
{17CACE84-6798-2B44-A575-4A44864947B5}
-
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{05706B00-0F9C-4DBA-B455-9D4E0D96ACD2}
-
-
+
{0664FBEF-CF9D-724A-90D1-BEAB3A517019}
-
-
+
{0664FBEF-CF9D-724A-90D1-BEAB3A517019}
@@ -3120,7 +3111,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
@@ -3140,13 +3131,13 @@ $Output = vec4(r * -0.05f, 0.0f);
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
@@ -3156,21 +3147,21 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
@@ -3186,41 +3177,41 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{AA571ACC-7699-4D10-BCD7-4E857EFB35EA}
-
-
+
{8C41D88A-1D17-4237-B720-CCC0B7FF71B9}
@@ -3230,7 +3221,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{FFE19E4E-24A8-47A4-AE80-307495E31066}
-
+
{BDB32F7B-599C-42C8-A2CE-2B1BD0738E8B}
@@ -3240,7 +3231,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
@@ -3250,107 +3241,107 @@ $Output = vec4(r * -0.05f, 0.0f);
{2D90AB77-694C-4586-AA05-5CF062EFFFAB}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{9BA81525-6E53-498C-AA97-B31FB48F3A50}
-
-
+
{55606599-DA57-584A-9A22-85DB6F4829EF}
-
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{E23CF1C9-F916-D24B-815A-CC7E01284D75}
-
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{E23CF1C9-F916-D24B-815A-CC7E01284D75}
-
-
+
{D3B5F4D8-D054-F740-BB89-11CC0AB7F510}
-
-
+
{22B8EE58-2845-314E-BFDA-E792A95C09DA}
-
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
@@ -3360,13 +3351,13 @@ $Output = vec4(r * -0.05f, 0.0f);
{3B01355D-9153-4864-9B56-7D55F801BFF3}
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
@@ -3376,17 +3367,17 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
@@ -3420,7 +3411,7 @@ $Output = vec4(r * -0.05f, 0.0f);
{4F10C0E3-F820-457F-AB7D-CFDF2AA3C69A}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
@@ -3436,7 +3427,7 @@ $Output = vec4(r * -0.05f, 0.0f);
-
@@ -3456,31 +3447,31 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
@@ -3490,23 +3481,23 @@ $Output = vec4(r * -0.05f, 0.0f);
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
@@ -3516,11 +3507,11 @@ $Output = vec4(r * -0.05f, 0.0f);
-
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
diff --git a/data/Source/System/Weather/Sky/Modules/Sky.xdi b/data/Source/System/Weather/Sky/Modules/Sky.xdi
index 6199c36d1..1ce03e357 100644
--- a/data/Source/System/Weather/Sky/Modules/Sky.xdi
+++ b/data/Source/System/Weather/Sky/Modules/Sky.xdi
@@ -5,25 +5,20 @@
// Sky and clouds from shadertoy.com/view/MdGfzh
#using \{921BBC45-4C75-624A-AA78-9B5FEC80645B}
-vec3 getSkyColor(vec3 sunDirection, vec3 sunColor, vec3 rd)
+vec3 GetSkyColor(vec3 sunDirection, vec3 sunColor, vec3 overHorizon, vec3 underHorizon, vec3 rd)
{
const float sundot = clamp(dot(rd, sunDirection), 0.0f, 1.0f);
// Over horizon
- const vec3 OverHorizon = vec3(0.2f, 0.5f, 0.85f);
- vec3 col = OverHorizon - max(rd.y, 0.01f) * max(rd.y, 0.01f) * 0.5f;
+ vec3 col = overHorizon - max(rd.y, 0.01f) * max(rd.y, 0.01f) * 0.5f;
// Under horizon
- const vec3 UnderHorizon = vec3(0.1f, 0.1f, 0.12f);
- col = mix(col, UnderHorizon, pow(1.0f - max(rd.y, 0.0f), 6.0f));
+ col = mix(col, underHorizon, pow(1.0f - max(rd.y, 0.0f), 6.0f));
// Add sun
- col += 0.25f * sunColor * pow(sundot, 5.0f);
- col += 0.20f * sunColor * pow(sundot, 512.0f);
- col += 0.25f * sunColor * pow(sundot, 64.0f);
- col += sunColor * pow(sundot, 8.0f);
+ col += sunColor * pow(max(sundot - 0.1, 0), 8.0f);
- col += clamp((0.1 - rd.y) * 10.0f, 0.0f, 1.0f) * vec3(0.0f, 0.1f, 0.2f);
+ col += clamp((0.1 - rd.y) * 10.0f, 0.0f, 1.0f) * overHorizon;
return col;
}
@@ -320,6 +315,7 @@ float tilableFbm(vec3 p, const int octaves, float tile)
return c / w;
}
+
]]>
diff --git a/data/Source/System/Weather/Sky/Shaders/Sky.xdi b/data/Source/System/Weather/Sky/Shaders/Sky.xdi
index e913b37b6..8d85440aa 100644
--- a/data/Source/System/Weather/Sky/Shaders/Sky.xdi
+++ b/data/Source/System/Weather/Sky/Shaders/Sky.xdi
@@ -167,8 +167,8 @@
{A6CF4D34-4EFC-A646-AE57-A51459495761}
- 2801
- 944
+ 3117
+ 961
World_ForwardColor
@@ -260,8 +260,8 @@
{FA371FDA-5996-4181-98D2-92B88A67D250}
- 2425
- 1220
+ 2741
+ 1237
false
@@ -306,8 +306,8 @@
{69A59CB0-54FF-E348-8D14-4F7974EF3EF4}
- 2801
- 1113
+ 3117
+ 1130
World_DeferredColor
@@ -353,8 +353,8 @@
{3D7D4539-5904-EC42-B481-B5E9A947DE3E}
- 2801
- 1282
+ 3117
+ 1299
World_SimpleColor
@@ -445,8 +445,8 @@
{B229DF57-A4C7-6D43-B9BD-9A2150252068}
- 2301
- 909
+ 2617
+ 926
{D2F9DC59-6D32-4F4A-9C84-689849C25897}
@@ -487,8 +487,8 @@
{E88E5C56-08FC-CA46-BCEA-4A1DA38CAA35}
- 1995
- 1161
+ 2311
+ 1178
0
10
@@ -516,8 +516,8 @@
{3878417E-8F73-4CE4-8C47-53D163131E1F}
- -427
- 684
+ -431
+ 648
Sky color
@@ -542,6 +542,14 @@
{D31F47A6-19A4-440D-8432-A9E4610D070D}
SunColor
+ -
+ {61462D3A-94EF-D64C-9E85-3EC2E0B01745}
+ OverHorizon
+
+ -
+ {AD277C19-9612-9141-AA5C-097F83F5B743}
+ UnderHorizon
+
-
@@ -553,8 +561,15 @@
@@ -571,8 +586,8 @@ $Output = vec4(clr, 1.0f);
{8FB6549E-5322-4FD8-8912-FD35D323CFF6}
- -770
- 783
+ -754
+ 779
WorldPosition
@@ -669,8 +684,8 @@ $Distance = dist;
{2BB29238-2675-42BB-9382-17C55B6C1380}
- -768
- 902
+ -752
+ 896
FtLinear
FtLinear
@@ -687,8 +702,8 @@ $Distance = dist;
{1AD17D96-8F2E-457A-AAB5-8EBCE60711EA}
- -818
- 824
+ -802
+ 818
Weather_SkyCloud2D
Texture2D
@@ -698,8 +713,8 @@ $Distance = dist;
{20235D86-BCB0-485E-91F7-F7E2ADE78B21}
- -818
- 863
+ -802
+ 857
Weather_SkyCloud3D
Texture3D
@@ -727,7 +742,7 @@ $Distance = dist;
-754
- 941
+ 935
World_Time
Scalar
@@ -737,8 +752,8 @@ $Distance = dist;
{49BB686E-3893-4F3E-AFAC-FAC0AC817383}
- -818
- 744
+ -802
+ 662
Weather_SkySunColor
Vector
@@ -748,8 +763,8 @@ $Distance = dist;
{CFE120E4-0277-41B4-A10C-9C932F6764B0}
- -834
- 705
+ -818
+ 623
Weather_SkySunDirection
Vector
@@ -794,7 +809,7 @@ $Distance = dist;
-818
- 980
+ 974
Weather_SkyEyePosition
Vector
@@ -970,8 +985,8 @@ $Output = vec4(texCoord, 0.0f, 0.0f);
{E7530B7B-E7A2-3C4B-8072-C3B73EE99101}
- -792
- 1019
+ -776
+ 1013
0, 0, 0, 0
@@ -1024,8 +1039,8 @@ $Output = vec4(texCoord, 0.0f, 0.0f);
{BAC7DCC6-4741-B54D-A845-5798F052AEE8}
- 2607
- 960
+ 2923
+ 977
xyz
@@ -1033,8 +1048,8 @@ $Output = vec4(texCoord, 0.0f, 0.0f);
{ED011191-7BF2-2F4B-8AB7-9AF7A659B853}
- 2488
- 1294
+ 2804
+ 1311
xyz
@@ -1086,6 +1101,66 @@ $Output = vec4(texCoord, 0.0f, 0.0f);
Scalar
Frame
+ -
+ {65EE6AC5-7D25-844B-B7AE-790215C27DA1}
+
+
+ 1976
+ 1234
+
+ Weather_CloudsEnable
+
+ -
+ {98628942-AC32-7D44-BB38-C138F1F6D6DF}
+
+
+ 1730
+ 1330
+
+ SkyColor
+
+ -
+ {ACE3D045-2AFD-9741-88E0-3E1F745BD4F6}
+
+
+ 2111
+ 767
+
+ Weather_CloudsEnable
+
+ -
+ {06CE4BB1-B8C6-E24F-9E10-0719CFA745EF}
+
+
+ 1838
+ 852
+
+ Weather_SkyRadius
+ Scalar
+ Once
+
+ -
+ {0CF0ACDC-F017-5E45-8BA8-266248431786}
+
+
+ -818
+ 701
+
+ Weather_SkyOverHorizon
+ Vector
+ Frame
+
+ -
+ {3F5650EA-F241-BC47-B523-B8813F1C899C}
+
+
+ -834
+ 740
+
+ Weather_SkyUnderHorizon
+ Vector
+ Frame
+
-
@@ -1548,16 +1623,6 @@ $Output = vec4(texCoord, 0.0f, 0.0f);
{32EB5230-1F0D-40B8-93F6-9C8E5469454E}
- -
-
-
-
- {9BA81525-6E53-498C-AA97-B31FB48F3A50}
-
-
-
- -
-
-
-
- {51EA7D6F-840D-46B9-9B20-09A837C1300E}
-
-
-
+ -
+
+
+
+ {A1DDB166-9422-45A3-AE93-6702275DAD1C}
+
+
+ -
+
+
+
+ {9BA81525-6E53-498C-AA97-B31FB48F3A50}
+
+
+ -
+
+
+
+ {92AA3735-BB4C-4541-81DA-AC500930B2E6}
+
+
+ -
+
+
+
+ {A1DDB166-9422-45A3-AE93-6702275DAD1C}
+
+
+ -
+
+
+
+ {51EA7D6F-840D-46B9-9B20-09A837C1300E}
+
+
+ -
+
+
+
+ {92AA3735-BB4C-4541-81DA-AC500930B2E6}
+
+
+ -
+
+
+
+ {61462D3A-94EF-D64C-9E85-3EC2E0B01745}
+
+
+ -
+
+
+
+ {AD277C19-9612-9141-AA5C-097F83F5B743}
+
+