mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Fixed broken previous commit
This commit is contained in:
parent
bb3d0b993b
commit
92eb4af796
4 changed files with 250 additions and 304 deletions
|
@ -57,7 +57,7 @@ test = Level.new()
|
||||||
test.nameKey = "level_test"
|
test.nameKey = "level_test"
|
||||||
test.scriptFile = "Scripts\\Levels\\New_Level.lua"
|
test.scriptFile = "Scripts\\Levels\\New_Level.lua"
|
||||||
test.ambientTrack = "108"
|
test.ambientTrack = "108"
|
||||||
test.levelFile = "Data\\TestLevel.ten"
|
test.levelFile = "Data\\Tut1_water.ten"
|
||||||
test.loadScreenFile = "Screens\\rome.jpg"
|
test.loadScreenFile = "Screens\\rome.jpg"
|
||||||
|
|
||||||
-- 0 is no weather, 1 is rain, 2 is snow.
|
-- 0 is no weather, 1 is rain, 2 is snow.
|
||||||
|
|
|
@ -1801,9 +1801,6 @@ namespace TEN::Renderer
|
||||||
DrawRats(nullptr, view, RendererPass::GBuffer);
|
DrawRats(nullptr, view, RendererPass::GBuffer);
|
||||||
DrawLocusts(nullptr, view, RendererPass::GBuffer);
|
DrawLocusts(nullptr, view, RendererPass::GBuffer);
|
||||||
|
|
||||||
// Downsample G-Buffer for making faster soft particles and SSAO
|
|
||||||
DownsampleGBuffer();
|
|
||||||
|
|
||||||
// Calculate ambient occlusion.
|
// Calculate ambient occlusion.
|
||||||
if (g_Configuration.EnableAmbientOcclusion)
|
if (g_Configuration.EnableAmbientOcclusion)
|
||||||
{
|
{
|
||||||
|
@ -3734,8 +3731,8 @@ namespace TEN::Renderer
|
||||||
D3D11_VIEWPORT viewport;
|
D3D11_VIEWPORT viewport;
|
||||||
viewport.TopLeftX = 0;
|
viewport.TopLeftX = 0;
|
||||||
viewport.TopLeftY = 0;
|
viewport.TopLeftY = 0;
|
||||||
viewport.Width = _screenWidth/2;
|
viewport.Width = _screenWidth;
|
||||||
viewport.Height = _screenHeight / 2;
|
viewport.Height = _screenHeight;
|
||||||
viewport.MinDepth = 0.0f;
|
viewport.MinDepth = 0.0f;
|
||||||
viewport.MaxDepth = 1.0f;
|
viewport.MaxDepth = 1.0f;
|
||||||
|
|
||||||
|
@ -3810,58 +3807,4 @@ namespace TEN::Renderer
|
||||||
_gameCamera.Camera.NearPlane = _currentGameCamera.Camera.NearPlane;
|
_gameCamera.Camera.NearPlane = _currentGameCamera.Camera.NearPlane;
|
||||||
_gameCamera.Camera.FarPlane = _currentGameCamera.Camera.FarPlane;
|
_gameCamera.Camera.FarPlane = _currentGameCamera.Camera.FarPlane;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::DownsampleGBuffer()
|
|
||||||
{
|
|
||||||
// Downsample depth
|
|
||||||
_doingFullscreenPass = true;
|
|
||||||
|
|
||||||
SetBlendMode(BlendMode::Opaque);
|
|
||||||
SetCullMode(CullMode::CounterClockwise);
|
|
||||||
SetDepthState(DepthState::Write);
|
|
||||||
|
|
||||||
// Common vertex shader to all full screen effects
|
|
||||||
_context->VSSetShader(_vsPostProcess.Get(), nullptr, 0);
|
|
||||||
|
|
||||||
_context->PSSetShader(_psDownsampleDepthBuffer.Get(), nullptr, 0);
|
|
||||||
_context->ClearRenderTargetView(_downsampledDepthRenderTarget.RenderTargetView.Get(), Colors::White);
|
|
||||||
_context->OMSetRenderTargets(1, _downsampledDepthRenderTarget.RenderTargetView.GetAddressOf(), nullptr);
|
|
||||||
|
|
||||||
D3D11_VIEWPORT viewport;
|
|
||||||
viewport.TopLeftX = 0;
|
|
||||||
viewport.TopLeftY = 0;
|
|
||||||
viewport.Width = _screenWidth / 2;
|
|
||||||
viewport.Height = _screenHeight / 2;
|
|
||||||
viewport.MinDepth = 0.0f;
|
|
||||||
viewport.MaxDepth = 1.0f;
|
|
||||||
|
|
||||||
_context->RSSetViewports(1, &viewport);
|
|
||||||
|
|
||||||
D3D11_RECT rects[1];
|
|
||||||
rects[0].left = 0;
|
|
||||||
rects[0].right = viewport.Width;
|
|
||||||
rects[0].top = 0;
|
|
||||||
rects[0].bottom = viewport.Height;
|
|
||||||
|
|
||||||
_context->RSSetScissorRects(1, rects);
|
|
||||||
|
|
||||||
_context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
|
||||||
_context->IASetInputLayout(_fullscreenTriangleInputLayout.Get());
|
|
||||||
|
|
||||||
UINT stride = sizeof(PostProcessVertex);
|
|
||||||
UINT offset = 0;
|
|
||||||
|
|
||||||
_context->IASetVertexBuffers(0, 1, _fullscreenTriangleVertexBuffer.Buffer.GetAddressOf(), &stride, &offset);
|
|
||||||
|
|
||||||
BindRenderTargetAsTexture(static_cast<TextureRegister>(0), &_depthRenderTarget, SamplerStateRegister::PointWrap);
|
|
||||||
|
|
||||||
_stPostProcessBuffer.ViewportWidth = viewport.Width;
|
|
||||||
_stPostProcessBuffer.ViewportHeight = viewport.Height;
|
|
||||||
memcpy(_stPostProcessBuffer.SSAOKernel, _SSAOKernel.data(), 16 * _SSAOKernel.size());
|
|
||||||
_cbPostProcessBuffer.UpdateData(_stPostProcessBuffer, _context.Get());
|
|
||||||
|
|
||||||
DrawTriangles(3, 0);
|
|
||||||
|
|
||||||
_doingFullscreenPass = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1421,12 +1421,15 @@ bool LoadLevel(const std::string& path, bool partial)
|
||||||
g_Level.Mirrors.clear();
|
g_Level.Mirrors.clear();
|
||||||
|
|
||||||
MirrorInfo mirror;
|
MirrorInfo mirror;
|
||||||
mirror.RoomNumber = 7;
|
mirror.RoomNumber = 17;
|
||||||
mirror.MirrorPlane = Plane(Vector3(0, 0, 30000), Vector3(0, 0, -1));
|
mirror.MirrorPlane = Plane(Vector3(BLOCK(10), 0, 0), Vector3(-1, 0, 0));
|
||||||
g_Level.Mirrors.push_back(mirror);
|
g_Level.Mirrors.push_back(mirror);
|
||||||
|
|
||||||
mirror.MirrorPlane = Plane(Vector3(0, -2048, 0), Vector3(0,-1, 0));
|
//mirror.MirrorPlane = Plane(Vector3(0, 0, 30000), Vector3(0, 0, -1));
|
||||||
g_Level.Mirrors.push_back(mirror);
|
//g_Level.Mirrors.push_back(mirror);
|
||||||
|
|
||||||
|
//mirror.MirrorPlane = Plane(Vector3(0, -2048, 0), Vector3(0,-1, 0));
|
||||||
|
//g_Level.Mirrors.push_back(mirror);
|
||||||
|
|
||||||
TENLog("Level loading complete.", LogLevel::Info);
|
TENLog("Level loading complete.", LogLevel::Info);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue