mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-20 04:34:48 +00:00
Phase 1: buffers engine: provides the following hooks and methods A) render target "color", and "matinfo". these correspond to texture[0] = "#color"; texture[2] = "#matinfo"; entries in scripts B) utilizes the independentMrtBitDepth method added GarageGames#857 to set color to an 8RGBA if cards support it C) adds an RenderPrePassMgr::_initShaders() method to support void RenderPrePassMgr::clearBuffers(). This operates as a pseudo-postfx by rendering a veiwspace plane which fills the screen, then calls a shader which fills both the introduced rendertarget buffers and the prepass buffer to relevant defaults (white with full alpha for prepass, black with full alpha for color and material respectively) script: \game\tools\worldEditor\main.cs adds additional hooks similar to GarageGames#863 for colorbuffer, specular map, and backbuffer display \game\core\scripts\client\lighting\advanced\deferredShading.cs adds the clearbuffer shader, visualizers, and the ShaderData( AL_DeferredShader ) + PostEffect( AL_DeferredShading ) which combine the various buffers into the output which reaches the screen under normal conditions, as well as the extended debug visualizers. again, note the lines texture[0] = "#color"; texture[1] = "#lightinfo"; texture[2] = "#matinfo"; target = "$backBuffer"; in particular for the core tie-in. shader: \game\shaders\common\lighting\advanced\deferredColorShaderP.hlsl \game\shaders\common\lighting\advanced\gl\deferredClearGBufferP.glsl the previously mentioned shaders which clear the buffers to specified colors \game\shaders\common\lighting\advanced\deferredShadingP.hlsl \game\shaders\common\lighting\advanced\gl\deferredShadingP.glsl the tie-in shaders the rest are visualizers purpose: to expose methodology that allows one to render color, lighting and material information such as specular and gloss which effect the result of both when combined long term intent: the previous prepass lighting methodology while serviceable, unfortunately had the side effect of throwing out raw color information required by more modern pipelines and methodologies. This preserves that data while also allowing the manipulation to occur only on a screenspace (or reflected speudo-screenspace) basis. |
||
|---|---|---|
| .. | ||
| forcedMaterialMeshMgr.cpp | ||
| forcedMaterialMeshMgr.h | ||
| renderBinManager.cpp | ||
| renderBinManager.h | ||
| renderFormatChanger.cpp | ||
| renderFormatChanger.h | ||
| renderGlowMgr.cpp | ||
| renderGlowMgr.h | ||
| renderImposterMgr.cpp | ||
| renderImposterMgr.h | ||
| renderMeshMgr.cpp | ||
| renderMeshMgr.h | ||
| renderObjectMgr.cpp | ||
| renderObjectMgr.h | ||
| renderOcclusionMgr.cpp | ||
| renderOcclusionMgr.h | ||
| renderParticleMgr.cpp | ||
| renderParticleMgr.h | ||
| renderPassManager.cpp | ||
| renderPassManager.h | ||
| renderPassStateToken.cpp | ||
| renderPassStateToken.h | ||
| renderPrePassMgr.cpp | ||
| renderPrePassMgr.h | ||
| renderTerrainMgr.cpp | ||
| renderTerrainMgr.h | ||
| renderTexTargetBinManager.cpp | ||
| renderTexTargetBinManager.h | ||
| renderTranslucentMgr.cpp | ||
| renderTranslucentMgr.h | ||