diff --git a/WickedEngine/DeferredRenderableComponent.cpp b/WickedEngine/DeferredRenderableComponent.cpp
index 43ef135fe..2d27c422d 100644
--- a/WickedEngine/DeferredRenderableComponent.cpp
+++ b/WickedEngine/DeferredRenderableComponent.cpp
@@ -1,13 +1,16 @@
#include "DeferredRenderableComponent.h"
#include "WickedEngine.h"
-DeferredRenderableComponent::DeferredRenderableComponent(bool ssao, bool ssr) :ssao(ssao), ssr(ssr){
+DeferredRenderableComponent::DeferredRenderableComponent() :ssao(false), ssr(false){
static const float lightShaftQuality = .4f;
static const float bloomDownSample = 4.f;
static const float particleDownSample = 1.0f;
static const float reflectionDownSample = 0.5f;
static const float ssaoQuality = 0.3f;
+ wiRenderer::SetEnviromentMap(nullptr);
+ wiRenderer::SetColorGrading(nullptr);
+
rtSun.resize(2);
rtSun[0].Initialize(
screenW
@@ -126,11 +129,6 @@ void DeferredRenderableComponent::Compose(){
RenderColorGradedComposition();
- wiImage::BatchBegin();
- ImageEffects fx = ImageEffects(0, 0, 200, 200);
- fx.blendFlag = BLENDMODE_OPAQUE;
- fx.mipLevel = 4.5f;
- wiImage::Draw(rtBloom.back().shaderResource[0], fx);
}
void DeferredRenderableComponent::RenderReflections(){
diff --git a/WickedEngine/DeferredRenderableComponent.h b/WickedEngine/DeferredRenderableComponent.h
index cfea46309..cb67e187d 100644
--- a/WickedEngine/DeferredRenderableComponent.h
+++ b/WickedEngine/DeferredRenderableComponent.h
@@ -1,7 +1,5 @@
#pragma once
#include "RenderableComponent.h"
-#include "RenderTarget.h"
-#include "DepthTarget.h"
class DeferredRenderableComponent :
@@ -36,13 +34,12 @@ private:
void RenderComposition2();
void RenderColorGradedComposition();
+protected:
bool ssr, ssao;
public:
- DeferredRenderableComponent(bool ssao, bool ssr);
- ~DeferredRenderableComponent();
-
- virtual void Load() = 0;
- virtual void Start() = 0;
+ DeferredRenderableComponent();
+ ~DeferredRenderableComponent();
+
void Update();
void Render();
void Compose();
diff --git a/WickedEngine/RenderableComponent.h b/WickedEngine/RenderableComponent.h
index c122f1302..8fbd24596 100644
--- a/WickedEngine/RenderableComponent.h
+++ b/WickedEngine/RenderableComponent.h
@@ -1,17 +1,31 @@
#pragma once
#include "CommonInclude.h"
+#include "RenderTarget.h"
+#include "DepthTarget.h"
class RenderableComponent
{
public:
static int screenW, screenH;
- virtual void Load() = 0;
- virtual void Start() = 0;
- virtual void Update() = 0;
- //Render the composition by layers
- virtual void Render() = 0;
+ RenderableComponent(){}
+ ~RenderableComponent(){}
+
+ //initialize component
+ virtual void Initialize(){};
+ //load (graphics) resources
+ virtual void Load(){};
+ //delete resources
+ virtual void Unload(){};
+ //start component, load temporary resources
+ virtual void Start(){};
+ //unload temporary resources
+ virtual void Stop(){};
+ //update logic
+ virtual void Update(){};
+ //Render to layers, rendertargets, etc
+ virtual void Render(){};
//Compose the rendered layers (for example blend the layers together as Images)
- virtual void Compose() = 0;
+ virtual void Compose(){};
};
diff --git a/WickedEngine/Renderer.cpp b/WickedEngine/Renderer.cpp
index a83045190..e8f6efd1e 100644
--- a/WickedEngine/Renderer.cpp
+++ b/WickedEngine/Renderer.cpp
@@ -3920,6 +3920,9 @@ void wiRenderer::DrawWorldTransparent(const XMMATRIX& newView, ID3D11ShaderResou
void wiRenderer::DrawSky(const XMVECTOR& newCenter, ID3D11DeviceContext* context)
{
+ if (enviroMap == nullptr)
+ return;
+
//context->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST );
BindPrimitiveTopology(TRIANGLELIST,context);
//context->RSSetState(backFaceRS);
diff --git a/WickedEngine/WickedEngine.h b/WickedEngine/WickedEngine.h
index 1cee0ffa4..80c2eabca 100644
--- a/WickedEngine/WickedEngine.h
+++ b/WickedEngine/WickedEngine.h
@@ -31,7 +31,9 @@
#include "WickedHelper.h"
#include "InputManager.h"
-
+#include "RenderableComponent.h"
+#include "ForwardRenderableComponent.h"
+#include "DeferredRenderableComponent.h"
diff --git a/WickedEngine/WickedEngine.vcxproj b/WickedEngine/WickedEngine.vcxproj
index 03c75c793..37b6931d9 100644
--- a/WickedEngine/WickedEngine.vcxproj
+++ b/WickedEngine/WickedEngine.vcxproj
@@ -329,6 +329,7 @@
+
@@ -578,6 +579,7 @@
+
diff --git a/WickedEngine/WickedEngine.vcxproj.filters b/WickedEngine/WickedEngine.vcxproj.filters
index b3a59025d..2ca4a1d79 100644
--- a/WickedEngine/WickedEngine.vcxproj.filters
+++ b/WickedEngine/WickedEngine.vcxproj.filters
@@ -590,6 +590,9 @@
ComponentTemplates
+
+ ComponentTemplates
+
@@ -1375,6 +1378,9 @@
Header Files
+
+ ComponentTemplates
+
diff --git a/WickedEngine/dirLightPS.hlsl b/WickedEngine/dirLightPS.hlsl
index f2f713754..91a4abf87 100644
--- a/WickedEngine/dirLightPS.hlsl
+++ b/WickedEngine/dirLightPS.hlsl
@@ -20,7 +20,7 @@ float4 main( VertexToPixel PSIn ) : SV_TARGET
[branch]if(!unshaded){
float4 material = materialMap.SampleLevel(Sampler,screenPos,0);
float specular = material.w*specularMaximumIntensity;
- uint specular_power = material.z*1000;
+ uint specular_power = material.z;
float3 normal = norU.xyz;
bool toonshaded = isToon(norU.w);
diff --git a/WickedEngine/effectPS.hlsl b/WickedEngine/effectPS.hlsl
index 106214a2e..88529804b 100644
--- a/WickedEngine/effectPS.hlsl
+++ b/WickedEngine/effectPS.hlsl
@@ -95,7 +95,7 @@ PixelOutputType main(PixelInputType PSIn)
Out.col = float4((baseColor.rgb+colorMask.rgb)*(1+emit),1);
Out.nor = float4((normal.xyz),properties);
- Out.vel = float4(PSIn.vel.xy*float2(-1,1),specular_power*0.001,spec.a);
+ Out.vel = float4(PSIn.vel.xy*float2(-1,1),specular_power,spec.a);
return Out;
diff --git a/WickedEngine/pointLightPS.hlsl b/WickedEngine/pointLightPS.hlsl
index 3be26cce9..ef5c5739c 100644
--- a/WickedEngine/pointLightPS.hlsl
+++ b/WickedEngine/pointLightPS.hlsl
@@ -18,7 +18,7 @@ float4 main(VertexToPixel PSIn) : SV_TARGET
[branch]if(!unshaded){
float4 material = materialMap.SampleLevel(Sampler,screenPos,0);
float specular = material.w*specularMaximumIntensity;
- uint specular_power = material.z*1000;
+ uint specular_power = material.z;
float3 normal = norU.xyz;
bool toonshaded = isToon(norU.w);
diff --git a/WickedEngine/spotLightPS.hlsl b/WickedEngine/spotLightPS.hlsl
index f1e58fafd..0cf2fd837 100644
--- a/WickedEngine/spotLightPS.hlsl
+++ b/WickedEngine/spotLightPS.hlsl
@@ -22,7 +22,7 @@ float4 main(VertexToPixel PSIn) : SV_TARGET
[branch]if(!unshaded){
float4 material = materialMap.SampleLevel(Sampler,screenPos,0);
float specular = material.w*specularMaximumIntensity;
- uint specular_power = material.z*1000;
+ uint specular_power = material.z;
float3 normal = norU.xyz;
bool toonshaded = isToon(norU.w);