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