Skip to content

Commit

Permalink
FCPrimal: Fix fake reflections in cave
Browse files Browse the repository at this point in the history
This follows the same pattern as Unity & MGSV specular highlights by
moving the camera position, and overall this seems to be a very
successful pattern for fixing reflections.
  • Loading branch information
DarkStarSword committed Mar 6, 2016
1 parent efad59d commit f9f24ac
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions Far Cry Primal/ShaderFixes/d909f411b9443090-ps.txt
@@ -1,3 +1,4 @@
// Water in caves with only environment reflections
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
Expand Down Expand Up @@ -323,10 +324,29 @@ dcl_input_ps linear v4.xyz
dcl_input_ps linear v5.xyz
dcl_input_ps linear v6.xy
dcl_output o0.xyzw
dcl_temps 21
dcl_temps 24
dcl_resource_texture2d (float,float,float,float) t125

ld_indexable(texture2d)(float,float,float,float) r21.xyzw, l(0, 0, 0, 0), t125.xyzw

// Fix envionment reflections by adjusting the world space CameraPosition:

mul r22.x, -r21.x, r21.y
mov r22.yzw, l(0.0)

dp4 r23.x, r22.xyzw, cb0[0].xyzw
dp4 r23.y, r22.xyzw, cb0[1].xyzw
dp4 r23.z, r22.xyzw, cb0[2].xyzw
dp4 r23.w, r22.xyzw, cb0[3].xyzw
dp4 r22.x, r23.xyzw, cb0[4].xyzw
dp4 r22.y, r23.xyzw, cb0[5].xyzw
dp4 r22.z, r23.xyzw, cb0[6].xyzw

add r22.xyz, cb0[42].xyz, -r22.xyz

dp3 r0.x, v3.xyzx, v3.xyzx
sqrt r0.x, r0.x
add r0.yzw, -v4.xxzy, cb0[42].xxzy
add r0.yzw, -v4.xxzy, r22.xxzy
dp3 r1.x, r0.yzwy, r0.yzwy
rsq r1.x, r1.x
mul r1.yzw, r0.yyzw, r1.xxxx
Expand Down Expand Up @@ -466,7 +486,7 @@ mad r5.w, r5.w, cb1[2].x, cb1[2].y
add r5.w, -r5.w, v4.z
mul_sat r5.w, -r5.w, cb2[18].x
sqrt r5.w, r5.w
add r8.xy, v4.xyxx, -cb0[42].xyxx
add r8.xy, v4.xyxx, -r22.xyxx
dp2 r6.w, r8.xyxx, r8.xyxx
mad r6.w, cb1[1].x, r6.w, cb1[1].y
mul_sat r6.w, r6.w, l(3.000000)
Expand Down Expand Up @@ -885,7 +905,7 @@ mul r9.xyz, r7.wwww, r9.xyzx
mul r9.xyz, r8.wwww, r9.xyzx
mul r9.xyz, r4.wwww, r9.xyzx
mul r4.xyz, r4.xyzx, r7.wwww
mad r7.xzw, -r1.yywz, r3.xxxx, cb0[42].xxyz
mad r7.xzw, -r1.yywz, r3.xxxx, r22.xxyz
mul_sat r10.xyz, cb7[11].xyzx, -cb7[12].zzzz
add r4.w, -r7.w, v4.z
max r4.w, r4.w, l(0.000000)
Expand Down Expand Up @@ -1080,7 +1100,7 @@ mad r0.yzw, r0.yyzw, r1.wwww, r1.xxyz
lt r1.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[39].zwzz
and r1.x, r1.y, r1.x
if_nz r1.x
add r1.xyz, v4.xyzx, -cb0[42].xyzx
add r1.xyz, v4.xyzx, -r22.xyzx
dp3 r1.x, r1.xyzx, r1.xyzx
sqrt r1.x, r1.x
utof r1.yz, r6.xxzx
Expand All @@ -1100,7 +1120,7 @@ if_nz r1.x
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, l(0), l(12), t2.xxxx
mul r1.xyz, r1.xyzx, r3.xxxx
else
add r3.xyz, v4.xyzx, -cb0[42].xyzx
add r3.xyz, v4.xyzx, -r22.xyzx
dp3 r3.x, r3.xyzx, r3.xyzx
sqrt r3.x, r3.x
mad_sat r3.x, r3.x, cb0[35].y, cb0[35].x
Expand Down

0 comments on commit f9f24ac

Please sign in to comment.