mirror of
https://github.com/minetest/minetest.git
synced 2025-01-08 22:37:32 +01:00
a9fe83126a
I originally wanted to get of the legacy IVideoDriver::setRenderTarget altogether, but that ended up being too much work. The remaining usage is in "dynamicshadowsrender.cpp". Here's a comment I wrote about the workaround: ---------------------------------------- Use legacy call when there's single texture without depth texture This means Irrlicht creates a depth texture for us and binds it to the FBO This is currently necessary for a working depth buffer in the following cases: - post-processing disabled, undersampling enabled (addUpscaling specifies no depth texture) - post-processing disabled, 3d_mode = sidebyside / topbottom / crossview (populateSideBySidePipeline specifies no depth texture) - post-processing disabled, 3d_mode = interlaced (probably, can't test since it's broken) (populateInterlacedPipeline specifies no depth texture) With post-processing disabled, the world is rendered to the TextureBufferOutput created in the functions listed above, so a depth buffer is needed (-> this workaround is needed). With post-processing enabled, only a fullscreen rectangle is rendered to this TextureBufferOutput, so a depth buffer isn't actually needed. But: These pipeline steps shouldn't rely on what ends up being rendered to the TextureBufferOutput they provide, since that may change. This workaround was added in 1e9640395468beb53f70303ef6b7aa72e395b7b4 / https://irc.minetest.net/minetest-dev/2022-10-04#i_6021940 This workaround should be replaced by explicitly configuring depth textures where needed. ---------------------------------------- |
||
---|---|---|
.. | ||
async | ||
client | ||
common | ||
emerge | ||
fstk | ||
game | ||
locale | ||
mainmenu | ||
profiler | ||
init.lua | ||
settingtypes.txt |