diff --git a/WickedEngine/ShaderInterop.h b/WickedEngine/ShaderInterop.h
index 4d1f918e7..4faa9aadc 100644
--- a/WickedEngine/ShaderInterop.h
+++ b/WickedEngine/ShaderInterop.h
@@ -134,8 +134,5 @@ struct ShaderEntityType
#define GENERATEMIPCHAIN_2D_BLOCK_SIZE 16
#define GENERATEMIPCHAIN_3D_BLOCK_SIZE 8
-// Skinning compute params:
-#define SKINNING_COMPUTE_THREADCOUNT 128
-
#endif
diff --git a/WickedEngine/ShaderInterop_Skinning.h b/WickedEngine/ShaderInterop_Skinning.h
new file mode 100644
index 000000000..512973461
--- /dev/null
+++ b/WickedEngine/ShaderInterop_Skinning.h
@@ -0,0 +1,10 @@
+#ifndef _SHADERINTEROP_SKINNING_H_
+#define _SHADERINTEROP_SKINNING_H_
+#include "ShaderInterop.h"
+
+
+// Skinning compute params:
+#define SKINNING_COMPUTE_THREADCOUNT 128
+
+
+#endif // _SHADERINTEROP_SKINNING_H_
diff --git a/WickedEngine/WickedEngine_SHARED.vcxitems b/WickedEngine/WickedEngine_SHARED.vcxitems
index a4f841fca..c9034bef7 100644
--- a/WickedEngine/WickedEngine_SHARED.vcxitems
+++ b/WickedEngine/WickedEngine_SHARED.vcxitems
@@ -240,6 +240,7 @@
+
diff --git a/WickedEngine/WickedEngine_SHARED.vcxitems.filters b/WickedEngine/WickedEngine_SHARED.vcxitems.filters
index 6490683f5..58032cbda 100644
--- a/WickedEngine/WickedEngine_SHARED.vcxitems.filters
+++ b/WickedEngine/WickedEngine_SHARED.vcxitems.filters
@@ -1143,6 +1143,9 @@
ENGINE\Helpers
+
+ ENGINE\Graphics\GPUMapping
+
diff --git a/WickedEngine/skinningCS.hlsl b/WickedEngine/skinningCS.hlsl
index 92e016a51..e2ef26d25 100644
--- a/WickedEngine/skinningCS.hlsl
+++ b/WickedEngine/skinningCS.hlsl
@@ -1,5 +1,5 @@
#include "ResourceMapping.h"
-#include "ShaderInterop.h"
+#include "ShaderInterop_Skinning.h"
// This will make use of LDS to preload bones into local memory:
// #define USE_LDS
diff --git a/WickedEngine/wiLoader.h b/WickedEngine/wiLoader.h
index 09116519e..557197189 100644
--- a/WickedEngine/wiLoader.h
+++ b/WickedEngine/wiLoader.h
@@ -967,7 +967,7 @@ struct WorldInfo{
ambient = XMFLOAT3(0.2f, 0.2f, 0.2f);
fogSEH = XMFLOAT3(100, 1000, 0);
water = XMFLOAT4(0, 0, 0, 0);
- cloudiness = 0.53f;
+ cloudiness = 0.0f;
cloudScale = 0.0003f;
cloudSpeed = 0.1f;
}
diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp
index 3d0ed16b4..731545ae5 100644
--- a/WickedEngine/wiRenderer.cpp
+++ b/WickedEngine/wiRenderer.cpp
@@ -27,6 +27,7 @@
#include "wiProfiler.h"
#include "wiOcean.h"
#include "ShaderInterop_CloudGenerator.h"
+#include "ShaderInterop_Skinning.h"
#include
@@ -62,6 +63,7 @@ bool wiRenderer::TRANSPARENTSHADOWSENABLED = true;
bool wiRenderer::wireRender = false, wiRenderer::debugSpheres = false, wiRenderer::debugBoneLines = false, wiRenderer::debugPartitionTree = false, wiRenderer::debugEmitters = false, wiRenderer::freezeCullingCamera = false
, wiRenderer::debugEnvProbes = false, wiRenderer::debugForceFields = false, wiRenderer::gridHelper = false, wiRenderer::voxelHelper = false, wiRenderer::requestReflectionRendering = false, wiRenderer::advancedLightCulling = true
, wiRenderer::advancedRefractions = false;
+bool wiRenderer::ldsSkinningEnabled = true;
float wiRenderer::SPECULARAA = 0.0f;
float wiRenderer::renderTime = 0, wiRenderer::renderTime_Prev = 0, wiRenderer::deltaTime = 0;
XMFLOAT2 wiRenderer::temporalAAJitter = XMFLOAT2(0, 0), wiRenderer::temporalAAJitterPrev = XMFLOAT2(0, 0);
@@ -3374,7 +3376,7 @@ void wiRenderer::UpdateRenderData(GRAPHICSTHREAD threadID)
CSTYPES targetCS = CSTYPE_SKINNING_LDS;
- if (armature->boneCollection.size() > SKINNING_COMPUTE_THREADCOUNT)
+ if (!GetLDSSkinningEnabled() || armature->boneCollection.size() > SKINNING_COMPUTE_THREADCOUNT)
{
// If we have more bones that can fit into LDS, we switch to a skinning shader which loads from device memory:
targetCS = CSTYPE_SKINNING;
@@ -3453,7 +3455,7 @@ void wiRenderer::UpdateRenderData(GRAPHICSTHREAD threadID)
}
// Generate cloud layer:
- if(enviroMap == nullptr) // generate only when sky is dynamic
+ if(enviroMap == nullptr && GetScene().worldInfo.cloudiness > 0) // generate only when sky is dynamic
{
if (textures[TEXTYPE_2D_CLOUDS] == nullptr)
{
@@ -5386,7 +5388,14 @@ void wiRenderer::DrawSky(GRAPHICSTHREAD threadID)
else
{
GetDevice()->BindGraphicsPSO(PSO_sky[SKYRENDERING_DYNAMIC], threadID);
- GetDevice()->BindResource(PS, textures[TEXTYPE_2D_CLOUDS], TEXSLOT_ONDEMAND0, threadID);
+ if (GetScene().worldInfo.cloudiness > 0)
+ {
+ GetDevice()->BindResource(PS, textures[TEXTYPE_2D_CLOUDS], TEXSLOT_ONDEMAND0, threadID);
+ }
+ else
+ {
+ GetDevice()->BindResource(PS, wiTextureHelper::getInstance()->getBlack(), TEXSLOT_ONDEMAND0, threadID);
+ }
}
GetDevice()->Draw(240, 0, threadID);
diff --git a/WickedEngine/wiRenderer.h b/WickedEngine/wiRenderer.h
index 22c9c525b..e6545ac0d 100644
--- a/WickedEngine/wiRenderer.h
+++ b/WickedEngine/wiRenderer.h
@@ -248,6 +248,7 @@ protected:
static bool wireRender, debugSpheres, debugBoneLines, debugPartitionTree, debugEnvProbes, debugEmitters, debugForceFields, gridHelper, voxelHelper, advancedLightCulling, advancedRefractions;
+ static bool ldsSkinningEnabled;
static bool requestReflectionRendering;
@@ -352,6 +353,8 @@ public:
static bool GetAdvancedLightCulling() { return advancedLightCulling; }
static void SetOcclusionCullingEnabled(bool enabled); // also inits query pool!
static bool GetOcclusionCullingEnabled() { return occlusionCulling; }
+ static void SetLDSSkinningEnabled(bool enabled) { ldsSkinningEnabled = enabled; }
+ static bool GetLDSSkinningEnabled() { return ldsSkinningEnabled; }
static void SetTemporalAAEnabled(bool enabled) { temporalAA = enabled; }
static bool GetTemporalAAEnabled() { return temporalAA; }
static void SetTemporalAADebugEnabled(bool enabled) { temporalAADEBUG = enabled; }
diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp
index 6216f9183..f097790f3 100644
--- a/WickedEngine/wiVersion.cpp
+++ b/WickedEngine/wiVersion.cpp
@@ -9,7 +9,7 @@ namespace wiVersion
// minor features, major updates
const int minor = 15;
// minor bug fixes, alterations, refactors, updates
- const int revision = 1;
+ const int revision = 2;
long GetVersion()
diff --git a/WickedEngine/wiWidget.cpp b/WickedEngine/wiWidget.cpp
index 7afdbc7a4..faa636e49 100644
--- a/WickedEngine/wiWidget.cpp
+++ b/WickedEngine/wiWidget.cpp
@@ -405,7 +405,7 @@ void wiLabel::Render(wiGUI* gui)
scissorRect.right = (LONG)(translation.x + scale.x);
scissorRect.top = (LONG)(translation.y);
wiRenderer::GetDevice()->SetScissorRects(1, &scissorRect, gui->GetGraphicsThread());
- wiFont(text, wiFontProps((int)translation.x, (int)translation.y, -1, WIFALIGN_LEFT, WIFALIGN_TOP, 2, 1,
+ wiFont(text, wiFontProps((int)translation.x + 2, (int)translation.y + 2, -1, WIFALIGN_LEFT, WIFALIGN_TOP, 2, 1,
textColor, textShadowColor)).Draw(gui->GetGraphicsThread());
}
@@ -1037,6 +1037,8 @@ void wiComboBox::Update(wiGUI* gui, float dt )
if (hovered >= 0)
{
SetSelected(hovered);
+ gui->DeactivateWidget(this);
+ combostate = COMBOSTATE_INACTIVE;
}
}
}