diff --git a/src/game/compiled-shaders/dx11/dither/frag.bin b/src/game/compiled-shaders/dx11/dither/frag.bin index a323aac..2306b49 100644 --- a/src/game/compiled-shaders/dx11/dither/frag.bin +++ b/src/game/compiled-shaders/dx11/dither/frag.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3e248466275e5c0a99c9704d3df112a8de305259dbb2dd5d65387fbcc5cd10a -size 9407 +oid sha256:52cc744ddec095dc8827e30853b0aa7495cb4957d18c88b561eba7324f7b1b20 +size 13655 diff --git a/src/game/compiled-shaders/glsl/dither/frag.bin b/src/game/compiled-shaders/glsl/dither/frag.bin index 9e42ee1..0b7a080 100644 --- a/src/game/compiled-shaders/glsl/dither/frag.bin +++ b/src/game/compiled-shaders/glsl/dither/frag.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9a0a87773eea48bf63115c4c769e0d8eb98190ba1af36dfc73bad98caae21f65 -size 13825 +oid sha256:7d48b140ffa9a9a67b65285720d29fd1be394f3ede30457527efb6fd906d6bed +size 14266 diff --git a/src/game/data/puzzles/0.pzl b/src/game/data/puzzles/0.pzl index e5f040d..ffb761d 100644 --- a/src/game/data/puzzles/0.pzl +++ b/src/game/data/puzzles/0.pzl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ec5fe55b7e5d26428ba3781eb8c5ec4612602b86edd08391892c0c57de4842fd +oid sha256:96d71120502693549f8fc1c0ac4d54bcc3ef810a21a10e341440fb5ad9ec584c size 11441 diff --git a/src/game/data/static/uiconfig.dat b/src/game/data/static/uiconfig.dat index 4652027..6794047 100644 Binary files a/src/game/data/static/uiconfig.dat and b/src/game/data/static/uiconfig.dat differ diff --git a/src/game/shaders/dither/frag.sc b/src/game/shaders/dither/frag.sc index e010f96..26070bf 100644 --- a/src/game/shaders/dither/frag.sc +++ b/src/game/shaders/dither/frag.sc @@ -86,12 +86,26 @@ float dither(float brightness, vec2 inputUv) vec4 rgbToCmyk(vec3 rgb) { - return vec4(1.0, 1.0, 1.0, 1.0); + float k = min(1.0 - rgb.r, min(1.0 - rgb.g, 1.0 - rgb.b)); + vec3 cmy = vec3(0.0, 0.0, 0.0); + float invK = 1.0 - k; + if (invK != 0.0) + { + cmy.x = 1.0 - rgb.r - k; + cmy.y = 1.0 - rgb.g - k; + cmy.z = 1.0 - rgb.b - k; + cmy /= invK; + } + return saturate(vec4(cmy, k)); } vec3 cmykToRgb(vec4 cmyk) { - return vec3(1.0, 1.0, 1.0); + float invK = 1.0 - cmyk.w; + float r = 1.0 - min(1.0, cmyk.x * invK + cmyk.w); + float g = 1.0 - min(1.0, cmyk.y * invK + cmyk.w); + float b = 1.0 - min(1.0, cmyk.z * invK + cmyk.w); + return saturate(vec3(r,g,b)); } vec2 rotateUV(vec2 uv, vec2 angle) @@ -117,17 +131,17 @@ void main() float r = dither(texColor.r * brightness, v_uv0); float g = dither(texColor.g * brightness, v_uv0); float b = dither(texColor.b * brightness, v_uv0); - vec3 ditheredColor = vec3(r,g,b); + // vec3 ditheredColor = vec3(r,g,b); vec4 cmyk = rgbToCmyk(texColor * brightness); cmyk.x = dither(cmyk.x, rotateUV(v_uv0, float2(0.966, 0.259))); cmyk.y = dither(cmyk.y, rotateUV(v_uv0, float2(0.259, 0.966))); cmyk.z = dither(cmyk.z, rotateUV(v_uv0, float2(1.000, 0.000))); cmyk.w = dither(cmyk.w, rotateUV(v_uv0, float2(0.707, 0.707))); - // vec3 ditheredColor = cmykToRgb(cmyk); + vec3 ditheredColor = cmykToRgb(cmyk); // finalize vec3 finalColor = mix(baseColor, ditheredColor, ditheredColor); - gl_FragColor = vec4(finalColor, 1.0); - // gl_FragColor = vec4(texColor * brightness, 1.0); + gl_FragColor = vec4(finalColor.rg, finalColor.b * 0.99, 1.0); + // gl_FragColor = vec4(ditheredColor, 1.0); }