diff options
author | LaG1924 <lag1924@gmail.com> | 2021-11-21 13:49:23 +0100 |
---|---|---|
committer | LaG1924 <lag1924@gmail.com> | 2021-11-21 15:23:37 +0100 |
commit | 0ca11f9bee1cd918acf6ce8247a495442009fec9 (patch) | |
tree | d1e791cf44770660eca6783bc3e9c0a2470b7efb /src/RenderConfigs.cpp | |
parent | Added normals to faces (diff) | |
download | AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.tar AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.tar.gz AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.tar.bz2 AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.tar.lz AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.tar.xz AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.tar.zst AltCraft-0ca11f9bee1cd918acf6ce8247a495442009fec9.zip |
Diffstat (limited to 'src/RenderConfigs.cpp')
-rw-r--r-- | src/RenderConfigs.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/RenderConfigs.cpp b/src/RenderConfigs.cpp index ebdbaef..86418c2 100644 --- a/src/RenderConfigs.cpp +++ b/src/RenderConfigs.cpp @@ -5,24 +5,44 @@ Gbuffer::Gbuffer(size_t geomW, size_t geomH, size_t lightW, size_t lightH) { auto gal = Gal::GetImplementation(); - auto colorConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::R8G8B8A8); + auto colorConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::R8G8B8); + colorConf->SetMinFilter(Gal::Filtering::Bilinear); + colorConf->SetMaxFilter(Gal::Filtering::Bilinear); color = gal->BuildTexture(colorConf); - auto normalConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::R8G8B8A8); + auto normalConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::R8G8B8); + normalConf->SetMinFilter(Gal::Filtering::Bilinear); + normalConf->SetMaxFilter(Gal::Filtering::Bilinear); normal = gal->BuildTexture(normalConf); + auto addColorConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::R8G8B8); + addColorConf->SetMinFilter(Gal::Filtering::Bilinear); + addColorConf->SetMaxFilter(Gal::Filtering::Bilinear); + addColor = gal->BuildTexture(addColorConf); + + auto lightConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::R8G8B8); + lightConf->SetMinFilter(Gal::Filtering::Bilinear); + lightConf->SetMaxFilter(Gal::Filtering::Bilinear); + light = gal->BuildTexture(lightConf); + auto dsConf = gal->CreateTexture2DConfig(geomW, geomH, Gal::Format::D24S8); + dsConf->SetMinFilter(Gal::Filtering::Bilinear); + dsConf->SetMaxFilter(Gal::Filtering::Bilinear); depthStencil = gal->BuildTexture(dsConf); auto geomFbConf = gal->CreateFramebufferConfig(); geomFbConf->SetTexture(0, color); geomFbConf->SetTexture(1, normal); + geomFbConf->SetTexture(2, addColor); + geomFbConf->SetTexture(3, light); geomFbConf->SetDepthStencil(depthStencil); geomFramebuffer = gal->BuildFramebuffer(geomFbConf); geomFramebuffer->SetViewport(0, 0, geomW, geomH); auto finalColorConf = gal->CreateTexture2DConfig(lightW, lightH, Gal::Format::R8G8B8A8); + finalColorConf->SetMinFilter(Gal::Filtering::Bilinear); + finalColorConf->SetMaxFilter(Gal::Filtering::Bilinear); finalColor = gal->BuildTexture(finalColorConf); auto lightFbConf = gal->CreateFramebufferConfig(); @@ -43,8 +63,11 @@ Gbuffer::Gbuffer(size_t geomW, size_t geomH, size_t lightW, size_t lightH) { auto lightPPC = gal->CreatePipelineConfig(); lightPPC->SetTarget(lightFramebuffer); lightPPC->AddStaticTexture("color", color); + lightPPC->AddStaticTexture("addColor", addColor); lightPPC->AddStaticTexture("normal", normal); + lightPPC->AddStaticTexture("light", light); lightPPC->AddStaticTexture("depthStencil", depthStencil); + lightPPC->AddShaderParameter("dayTime", Gal::Type::Float); lightPPC->SetVertexShader(gal->LoadVertexShader(vertexSource)); lightPPC->SetPixelShader(gal->LoadPixelShader(pixelSource)); |