Fix formatting on shaders

This commit is contained in:
Sweet Tini
2020-01-30 21:38:52 -05:00
parent afd03f2e3a
commit 19215a353c
3 changed files with 136 additions and 116 deletions

View File

@@ -1,106 +1,116 @@
Shader "Oxysoft/Dither" { Shader "Oxysoft/Dither"
Properties { {
_Threshold ("Threshold", Float) = 0.45 Properties
_Strength ("Strength", Float) = 0.45 {
_Width ("Width", Int) = 0.45 _Threshold("Threshold", Float) = 0.45
_Height ("Height", Int) = 0.45 _Strength("Strength", Float) = 0.45
_Dither ("Dither", 2D) = "white" {} _Width("Width", Int) = 0.45
_MainTex ("", 2D) = "white" {} _Height("Height", Int) = 0.45
_Dither("Dither", 2D) = "white" {}
_MainTex("", 2D) = "white" {}
} }
SubShader { SubShader
{
Lighting Off Lighting Off
ZTest Always ZTest Always
Cull Off Cull Off
ZWrite Off ZWrite Off
Fog { Mode Off } Fog { Mode Off }
Pass { Pass
CGPROGRAM {
CGPROGRAM
// Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays // Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays
#pragma exclude_renderers flash #pragma exclude_renderers flash
#pragma vertex vert_img #pragma vertex vert_img
#pragma fragment frag #pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest #pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc" #include "UnityCG.cginc"
uniform float _Threshold; uniform float _Threshold;
uniform float _Strength; uniform float _Strength;
uniform int _Width; uniform int _Width;
uniform int _Height; uniform int _Height;
uniform sampler2D _Dither; uniform sampler2D _Dither;
uniform sampler2D _MainTex; uniform sampler2D _MainTex;
float luma(fixed3 color) { float luma(fixed3 color)
{
return dot(color, fixed3(0.299, 0.587, 0.114)); return dot(color, fixed3(0.299, 0.587, 0.114));
} }
float luma(fixed4 color) { float luma(fixed4 color)
{
return dot(color.rgb, fixed3(0.299, 0.587, 0.114)); return dot(color.rgb, fixed3(0.299, 0.587, 0.114));
} }
fixed4 ditherBayer2(fixed2 position, float brightness) { fixed4 ditherBayer2(fixed2 position, float brightness)
{
int x = fmod(position.x, 4.0); int x = fmod(position.x, 4.0);
int y = fmod(position.y, 4.0); int y = fmod(position.y, 4.0);
int index = x + y * 4; int index = x + y * 4;
float lim = 0.0; float lim = 0.0;
if (x < 8) { if (x < 8) {
if (index == 0) lim = 0.0625; if (index == 0) lim = 0.0625;
if (index == 1) lim = 0.5625; if (index == 1) lim = 0.5625;
if (index == 2) lim = 0.1875; if (index == 2) lim = 0.1875;
if (index == 3) lim = 0.6875; if (index == 3) lim = 0.6875;
if (index == 4) lim = 0.8125; if (index == 4) lim = 0.8125;
if (index == 5) lim = 0.3125; if (index == 5) lim = 0.3125;
if (index == 6) lim = 0.9375; if (index == 6) lim = 0.9375;
if (index == 7) lim = 0.4375; if (index == 7) lim = 0.4375;
if (index == 8) lim = 0.25; if (index == 8) lim = 0.25;
if (index == 9) lim = 0.75; if (index == 9) lim = 0.75;
if (index == 10) lim = 0.125; if (index == 10) lim = 0.125;
if (index == 11) lim = 0.625; if (index == 11) lim = 0.625;
if (index == 12) lim = 1.0; if (index == 12) lim = 1.0;
if (index == 13) lim = 0.5; if (index == 13) lim = 0.5;
if (index == 14) lim = 0.875; if (index == 14) lim = 0.875;
if (index == 15) lim = 0.375; if (index == 15) lim = 0.375;
} }
if (brightness < lim * _Strength) if (brightness < lim * _Strength)
return 0.0; return 0.0;
return 1.0; return 1.0;
} }
fixed3 ditherPattern2(fixed2 position, float brightness) { fixed3 ditherPattern2(fixed2 position, float brightness)
{
int x = fmod(position.x, _Width); int x = fmod(position.x, _Width);
int y = fmod(position.y, _Height); int y = fmod(position.y, _Height);
float lim = 0.0; float lim = 0.0;
lim = tex2D(_Dither, fixed2(x, y) / _Width).r; lim = tex2D(_Dither, fixed2(x, y) / _Width).r;
if (brightness < lim * _Threshold) if (brightness < lim * _Threshold)
return _Strength; return _Strength;
return 1.0; return 1.0;
} }
fixed3 ditherBayer(fixed2 position, fixed3 col) { fixed3 ditherBayer(fixed2 position, fixed3 col)
{
return col * ditherBayer2(position, luma(col)); return col * ditherBayer2(position, luma(col));
} }
fixed3 ditherPattern(fixed2 position, fixed3 col) { fixed3 ditherPattern(fixed2 position, fixed3 col)
return col * ditherPattern2(position, luma(col)); {
} return col * ditherPattern2(position, luma(col));
}
fixed4 frag (v2f_img i) : COLOR fixed4 frag(v2f_img i) : COLOR
{ {
fixed3 col = tex2D (_MainTex, i.uv).rgb; fixed3 col = tex2D(_MainTex, i.uv).rgb;
return fixed4(ditherPattern(i.pos.xy, col), 1.0); return fixed4(ditherPattern(i.pos.xy, col), 1.0);
} }
ENDCG ENDCG
} }
} }
FallBack "Diffuse" FallBack "Diffuse"

View File

@@ -1,44 +1,48 @@
Shader "Oxysoft/Posterize" { Shader "Oxysoft/Posterize"
Properties { {
_Red ("Red", Int) = 8 Properties
_Green ("Green", Int) = 8 {
_Blue ("Blue", Int) = 8 _Red("Red", Int) = 8
_MainTex ("", 2D) = "white" {} _Green("Green", Int) = 8
_Blue("Blue", Int) = 8
_MainTex("", 2D) = "white" {}
} }
SubShader { SubShader
{
Lighting Off Lighting Off
ZTest Always ZTest Always
Cull Off Cull Off
ZWrite Off ZWrite Off
Fog { Mode Off } Fog { Mode Off }
Pass { Pass
CGPROGRAM {
CGPROGRAM
// Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays // Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays
#pragma exclude_renderers flash #pragma exclude_renderers flash
#pragma vertex vert_img #pragma vertex vert_img
#pragma fragment frag #pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest #pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc" #include "UnityCG.cginc"
uniform int _Red; uniform int _Red;
uniform int _Green; uniform int _Green;
uniform int _Blue; uniform int _Blue;
uniform sampler2D _MainTex; uniform sampler2D _MainTex;
fixed4 frag (v2f_img i) : COLOR fixed4 frag(v2f_img i) : COLOR
{ {
fixed3 col = tex2D (_MainTex, i.uv).rgb; fixed3 col = tex2D(_MainTex, i.uv).rgb;
fixed4 c = fixed4(0.0, 0.0, 0.0, 1.0); fixed4 c = fixed4(0.0, 0.0, 0.0, 1.0);
c.r = floor(col.r * _Red) / _Red; c.r = floor(col.r * _Red) / _Red;
c.g = floor(col.g * _Green) / _Green; c.g = floor(col.g * _Green) / _Green;
c.b = floor(col.b * _Blue) / _Blue; c.b = floor(col.b * _Blue) / _Blue;
return c; return c;
} }
ENDCG ENDCG
} }
} }
FallBack "Diffuse" FallBack "Diffuse"

View File

@@ -1,50 +1,56 @@
Shader "Oxysoft/RetroPixelMax" { Shader "Oxysoft/RetroPixelMax"
Properties { {
_ColorCount ("Color Count", Int) = 8 Properties
_MainTex ("", 2D) = "white" {} {
_ColorCount("Color Count", Int) = 8
_MainTex("", 2D) = "white" {}
} }
SubShader { SubShader
{
Lighting Off Lighting Off
ZTest Always ZTest Always
Cull Off Cull Off
ZWrite Off ZWrite Off
Fog { Mode Off } Fog { Mode Off }
Pass { Pass
CGPROGRAM {
CGPROGRAM
// Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays // Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays
#pragma exclude_renderers flash #pragma exclude_renderers flash
#pragma vertex vert_img #pragma vertex vert_img
#pragma fragment frag #pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest #pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc" #include "UnityCG.cginc"
uniform int _ColorCount; uniform int _ColorCount;
uniform fixed4 _Colors[256]; uniform fixed4 _Colors[256];
uniform sampler2D _MainTex; uniform sampler2D _MainTex;
fixed4 frag (v2f_img i) : COLOR fixed4 frag(v2f_img i) : COLOR
{ {
fixed3 original = tex2D (_MainTex, i.uv).rgb; fixed3 original = tex2D(_MainTex, i.uv).rgb;
fixed4 col = fixed4 (0,0,0,0); fixed4 col = fixed4(0,0,0,0);
fixed dist = 10000000.0; fixed dist = 10000000.0;
for (int i = 0; i < _ColorCount; i++) { for (int i = 0; i < _ColorCount; i++)
fixed4 c = _Colors[i]; {
fixed d = distance(original, c); fixed4 c = _Colors[i];
fixed d = distance(original, c);
if (d < dist) { if (d < dist)
dist = d; {
col = c; dist = d;
} col = c;
} }
}
return col; return col;
} }
ENDCG ENDCG
} }
} }
FallBack "Diffuse" FallBack "Diffuse"