mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Reorganize renderer code a little
This commit is contained in:
parent
1f002745f3
commit
6d195dbb63
2 changed files with 28 additions and 31 deletions
|
@ -1714,8 +1714,6 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
ResetDebugVariables();
|
ResetDebugVariables();
|
||||||
|
|
||||||
_doingFullscreenPass = false;
|
|
||||||
|
|
||||||
auto& level = *g_GameFlow->GetLevel(CurrentLevel);
|
auto& level = *g_GameFlow->GetLevel(CurrentLevel);
|
||||||
|
|
||||||
// Prepare scene to draw.
|
// Prepare scene to draw.
|
||||||
|
@ -1871,11 +1869,7 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
// Calculate ambient occlusion.
|
// Calculate ambient occlusion.
|
||||||
if (g_Configuration.EnableAmbientOcclusion)
|
if (g_Configuration.EnableAmbientOcclusion)
|
||||||
{
|
|
||||||
_doingFullscreenPass = true;
|
|
||||||
CalculateSSAO(view);
|
CalculateSSAO(view);
|
||||||
_doingFullscreenPass = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
_context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
_context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
||||||
_context->IASetInputLayout(_inputLayout.Get());
|
_context->IASetInputLayout(_inputLayout.Get());
|
||||||
|
@ -1913,33 +1907,8 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
if (renderMode != SceneRenderMode::NoPostprocess)
|
if (renderMode != SceneRenderMode::NoPostprocess)
|
||||||
{
|
{
|
||||||
_doingFullscreenPass = true;
|
|
||||||
|
|
||||||
// Apply antialiasing.
|
|
||||||
switch (g_Configuration.AntialiasingMode)
|
|
||||||
{
|
|
||||||
case AntialiasingMode::None:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AntialiasingMode::Low:
|
|
||||||
ApplyFXAA(&_renderTarget, view);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AntialiasingMode::Medium:
|
|
||||||
case AntialiasingMode::High:
|
|
||||||
ApplySMAA(&_renderTarget, view);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Draw post-process effects (cinematic bars, fade, flash, HDR, tone mapping, etc.).
|
|
||||||
DrawPostprocess(renderTarget, view, renderMode);
|
DrawPostprocess(renderTarget, view, renderMode);
|
||||||
|
|
||||||
_doingFullscreenPass = false;
|
|
||||||
|
|
||||||
// Draw binoculars or lasersight overlay.
|
|
||||||
DrawOverlays(view);
|
DrawOverlays(view);
|
||||||
|
|
||||||
// Draw 2D debug lines.
|
|
||||||
DrawLines2D();
|
DrawLines2D();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2478,6 +2447,9 @@ namespace TEN::Renderer
|
||||||
RendererStatic* current = statics[s];
|
RendererStatic* current = statics[s];
|
||||||
RendererRoom* room = &_rooms[current->RoomNumber];
|
RendererRoom* room = &_rooms[current->RoomNumber];
|
||||||
|
|
||||||
|
if (IgnoreReflectionPassForRoom(current->RoomNumber))
|
||||||
|
continue;
|
||||||
|
|
||||||
_stStatic.World = current->World;
|
_stStatic.World = current->World;
|
||||||
_stStatic.Color = current->Color;
|
_stStatic.Color = current->Color;
|
||||||
_stStatic.AmbientLight = room->AmbientLight;
|
_stStatic.AmbientLight = room->AmbientLight;
|
||||||
|
@ -3752,6 +3724,8 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
void Renderer::CalculateSSAO(RenderView& view)
|
void Renderer::CalculateSSAO(RenderView& view)
|
||||||
{
|
{
|
||||||
|
_doingFullscreenPass = true;
|
||||||
|
|
||||||
SetBlendMode(BlendMode::Opaque);
|
SetBlendMode(BlendMode::Opaque);
|
||||||
SetCullMode(CullMode::CounterClockwise);
|
SetCullMode(CullMode::CounterClockwise);
|
||||||
SetDepthState(DepthState::Write);
|
SetDepthState(DepthState::Write);
|
||||||
|
@ -3812,6 +3786,8 @@ namespace TEN::Renderer
|
||||||
BindRenderTargetAsTexture(TextureRegister::SSAO, &_SSAORenderTarget, SamplerStateRegister::PointWrap);
|
BindRenderTargetAsTexture(TextureRegister::SSAO, &_SSAORenderTarget, SamplerStateRegister::PointWrap);
|
||||||
|
|
||||||
DrawTriangles(3, 0);
|
DrawTriangles(3, 0);
|
||||||
|
|
||||||
|
_doingFullscreenPass = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::InterpolateCamera(float interpFactor)
|
void Renderer::InterpolateCamera(float interpFactor)
|
||||||
|
|
|
@ -6,6 +6,24 @@ namespace TEN::Renderer
|
||||||
{
|
{
|
||||||
void Renderer::DrawPostprocess(RenderTarget2D* renderTarget, RenderView& view, SceneRenderMode renderMode)
|
void Renderer::DrawPostprocess(RenderTarget2D* renderTarget, RenderView& view, SceneRenderMode renderMode)
|
||||||
{
|
{
|
||||||
|
_doingFullscreenPass = true;
|
||||||
|
|
||||||
|
// Apply antialiasing.
|
||||||
|
switch (g_Configuration.AntialiasingMode)
|
||||||
|
{
|
||||||
|
case AntialiasingMode::None:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AntialiasingMode::Low:
|
||||||
|
ApplyFXAA(&_renderTarget, view);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AntialiasingMode::Medium:
|
||||||
|
case AntialiasingMode::High:
|
||||||
|
ApplySMAA(&_renderTarget, view);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
SetBlendMode(BlendMode::Opaque);
|
SetBlendMode(BlendMode::Opaque);
|
||||||
SetCullMode(CullMode::CounterClockwise);
|
SetCullMode(CullMode::CounterClockwise);
|
||||||
SetDepthState(DepthState::Write);
|
SetDepthState(DepthState::Write);
|
||||||
|
@ -111,6 +129,9 @@ namespace TEN::Renderer
|
||||||
BindTexture(TextureRegister::ColorMap, &_postProcessRenderTarget[currentRenderTarget], SamplerStateRegister::PointWrap);
|
BindTexture(TextureRegister::ColorMap, &_postProcessRenderTarget[currentRenderTarget], SamplerStateRegister::PointWrap);
|
||||||
|
|
||||||
DrawTriangles(3, 0);
|
DrawTriangles(3, 0);
|
||||||
|
|
||||||
|
|
||||||
|
_doingFullscreenPass = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PostProcessMode Renderer::GetPostProcessMode()
|
PostProcessMode Renderer::GetPostProcessMode()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue