summaryrefslogtreecommitdiff
path: root/Shaders/color_grading_add_uchimura.diff
blob: aa44115688b2745e17ed8e34c8d5a4d32f09100e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--- a/color_grading.asm	2026-10-07 20:38:52.515256500 -0400
+++ b/color_grading.asm	2026-10-07 23:37:24.393674847 -0400
@@ -148,6 +148,30 @@
     add r1.xyz, r1.xyzx, -cb3[1].yyyy
     mul r0.xyz, r1.xyzx, cb3[1].xxxx
   else
+    ieq r1.x, cb3[0].x, l(7)
+    if_nz r1.x
+      mul r1.xyz, r0.xyzx, l(4.545455, 4.545455, 4.545455, 0.000000)
+      mov_sat r2.xyz, r1.xyzx
+      mad r3.xyz, r2.xyzx, l(-2.000000, -2.000000, -2.000000, 0.000000), l(3.000000, 3.000000, 3.000000, 0.000000)
+      mul r2.xyz, r2.xyzx, r2.xyzx
+      mad r2.xyz, -r3.xyzx, r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
+      ge r3.xyz, r0.xyzx, l(0.532000, 0.532000, 0.532000, 0.000000)
+      and r4.xyz, r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
+      add r5.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
+      movc r3.xyz, r3.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000), l(0x80000000, 0x80000000, 0x80000000, 0)
+      add r3.xyz, r3.xyzx, r5.xyzx
+      log r1.xyz, r1.xyzx
+      mul r1.xyz, r1.xyzx, l(1.330000, 1.330000, 1.330000, 0.000000)
+      exp r1.xyz, r1.xyzx
+      mul r1.xyz, r1.xyzx, r2.xyzx
+      add r2.xyz, r0.xyzx, l(-0.532000, -0.532000, -0.532000, 0.000000)
+      mul r2.xyz, r2.xyzx, l(-3.082682, -3.082682, -3.082682, 0.000000)
+      exp r2.xyz, r2.xyzx
+      mad r2.xyz, -r2.xyzx, l(0.468000, 0.468000, 0.468000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000)
+      mul r3.xyz, r0.xyzx, r3.xyzx
+      mad r1.xyz, r1.xyzx, l(0.220000, 0.220000, 0.220000, 0.000000), r3.xyzx
+      mad r0.xyz, r2.xyzx, r4.xyzx, r1.xyzx
+    else
     if_nz cb3[0].y
       dp3 r1.x, r0.xyzx, l(0.299010, 0.587000, 0.114000, 0.000000)
       switch cb3[0].x
@@ -204,6 +228,7 @@
         break
       endswitch
     endif
+    endif
   endif
 endif
 ine r1.x, cb2[3].x, l(0)