Fooled by DisplayDepth.fx?

More
2 years 2 months ago #1 by Daodan
Fooled by DisplayDepth.fx? was created by Daodan
While working on a shader I came across an issue regarding the depth-buffer. In some games it doesn't matter whether RESHADE_DEPTH_INPUT_IS_LOGARITHMIC is set to 1 or 0. DisplayDepth.fx shows you the depth-buffer regardless. But when it comes to using ReShade::GetLinearizedDepth() the results are quite different.

Here is an example (The Evil Within, d3d11)
The shaders used are: DisplayDepth.fx, MeshEdges.fx and qUINT_mxao.fx
In the images on the top: RESHADE_DEPTH_INPUT_IS_LOGARITHMIC=0
In the images on the bottom: RESHADE_DEPTH_INPUT_IS_LOGARITHMIC=1


What is going on there? Is it just that the values from the linear depth-buffer are in a range where they are still fairly linear after the conversion from logarithmic?

Please Log in or Create an account to join the conversation.

More
2 years 1 month ago #2 by luluco250
Replied by luluco250 on topic Fooled by DisplayDepth.fx?
Small differences in the depth buffer are usually very difficult to tell apart through just the naked eye.

Also try changing some of the depth preprocessor settings/macros.

Please Log in or Create an account to join the conversation.

More
2 years 1 month ago #3 by crosire
Replied by crosire on topic Fooled by DisplayDepth.fx?
I imagine the values are quite different, but since DisplayDepth is truncating everything to 8bit (because the monitor shows RGBA8), a lot of that is lost visually. You will notice it arithmetically though, like you noticed in your example.

Please Log in or Create an account to join the conversation.