doodlum / skyrim-community-shaders

Community-driven advanced graphics modifications for AE, SE and VR. Also fixes bugs and improves performance.
GNU General Public License v3.0
202 stars 49 forks source link

VR - SSGI eye mismatch #667

Open alandtse opened 1 month ago

alandtse commented 1 month ago

While we fixed the ghosting in VR, there is a more subtle issue present where the eyes are mismatched.

Examples: Output from ambientcompositescs.hlsl MainRW UAV

Enabled only: image Within the red circle, you can see there is a shadow separating the logs. However, looking at the right eye, that shadow is missing. These are the subtle mismatches. and may be tolerable.

Diffuse IL enabled image In this case, the entire face of the log in the circle is mismatched. The left eye is slightly darker particularly the farther it is from the camera. This is specifically caused by the SSGITexture input (slightly brightened).

image

alandtse commented 1 month ago

So the hard coded settings appear to break for other HMDs. We'll either need to disable SSGI for non q3 headsets or get people with different headsets to run renderdoc and do the math.

alandtse commented 1 month ago

I'll need some help to see if we can get the offset from the game. Basically this requires renderdoc. Follow the wiki to attach.

From the vertex shader for basically any part of the pipeline, I need constant buffer 13, also known as VRValues.

Quest 3

AlphaTestRefRS 0.00                    0  float
StereoEnabled  1.00                    4  float
EyeOffsetScale -0.50, 0.50             8  float2
EyeClipEdge                            16 float4[2]
EyeClipEdge[0] -1.00, 0.00, 0.00, 1.00 16 float4
EyeClipEdge[1] 1.00, 0.00, 0.00, 1.00  32 float4

Basically with any annotation on, you just find basically any drawindexed and look at Pipeline State -> Vertex Shader and pull the contents of cb13 (top right). There should be a copy option when you right click on the values.

image

doodlum commented 1 week ago

is the issue report up to date?

alandtse commented 1 week ago

Yes. Although the specific issues with the workaround aren't in here yet.