Welcome, Guest.
Username: Password: Remember me

TOPIC: Fooled by DisplayDepth.fx?

Fooled by DisplayDepth.fx? 2 months 2 days ago #1

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?
The administrator has disabled public write access.

Fooled by DisplayDepth.fx? 1 month 1 day ago #2

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.
Likes to reinvent the wheel.

My shaders repository: www.github.com/luluco250/FXShaders
The administrator has disabled public write access.

Fooled by DisplayDepth.fx? 3 weeks 17 hours ago #3

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.
Cheers, crosire =)
The administrator has disabled public write access.