Reverse depth & 32F buffer format

-Adds reversed depth projection model, dramatically increasing depth buffer effective resolution.
-Adds 32F depth 8U stencil format GFXFormatD32FS8X24 (following DX naming conventions). Note this is a 64-bit format, and likely not suitable for mobile platforms. Revert to GFXFormatD24S8 in renderManager.tscript for mobile & "ancient" platforms.
-Corrects alignment of texture type details array.
This commit is contained in:
AtomicWalrus 2023-04-14 20:13:28 -06:00
parent c08fa359d2
commit 75625dc679
37 changed files with 91 additions and 57 deletions

View file

@ -321,7 +321,7 @@ void RenderDeferredMgr::render( SceneRenderState *state )
const bool isRenderingToTarget = _onPreRender(state);
// Clear z-buffer and g-buffer.
GFX->clear(GFXClearZBuffer | GFXClearStencil, LinearColorF::ZERO, 1.0f, 0);
GFX->clear(GFXClearZBuffer | GFXClearStencil, LinearColorF::ZERO, 0.0f, 0);
GFX->clearColorAttachment(0, LinearColorF::ONE);//normdepth
GFX->clearColorAttachment(1, LinearColorF::ZERO);//albedo
GFX->clearColorAttachment(2, LinearColorF::ZERO);//matinfo

View file

@ -129,7 +129,7 @@ void RenderFormatToken::process(SceneRenderState *state, RenderPassStateBin *cal
GFX->setViewport( mTarget.getViewport() );
// Clear
GFX->clear(GFXClearTarget | GFXClearZBuffer | GFXClearStencil, gCanvasClearColor, 1.0f, 0);
GFX->clear(GFXClearTarget | GFXClearZBuffer | GFXClearStencil, gCanvasClearColor, 0.0f, 0);
// Set active z target on render pass
if(mTargetDepthStencilTexture[mTargetChainIdx].isValid())