forked from Themaister/slang-shaders
-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add 2xsal-level2-xbr shader and presets (#573)
* Add 2xsal-level2-xbr shader and presets Port of guest' shaders from Cg. * xbr-xsal presets moved to presets subdir
- Loading branch information
Showing
5 changed files
with
262 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
#version 450 | ||
|
||
/* | ||
Copyright (C) 2016 guest(r) - [email protected] | ||
|
||
This program is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU General Public License | ||
as published by the Free Software Foundation; either version 2 | ||
of the License, or (at your option) any later version. | ||
|
||
This program is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
|
||
You should have received a copy of the GNU General Public License | ||
along with this program; if not, write to the Free Software | ||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
*/ | ||
|
||
layout(push_constant) uniform Push | ||
{ | ||
vec4 OutputSize; | ||
vec4 OriginalSize; | ||
vec4 SourceSize; | ||
float AAOFFSET; | ||
} params; | ||
|
||
layout(std140, set = 0, binding = 0) uniform UBO | ||
{ | ||
mat4 MVP; | ||
} global; | ||
|
||
#pragma parameter AAOFFSET "Filter width" 1.0 0.25 2.0 0.125 | ||
|
||
#define AAOFFSET params.AAOFFSET | ||
|
||
#pragma stage vertex | ||
layout(location = 0) in vec4 Position; | ||
layout(location = 1) in vec2 TexCoord; | ||
layout(location = 0) out vec2 vTexCoord; | ||
|
||
/* VERTEX_SHADER */ | ||
void main() | ||
{ | ||
gl_Position = global.MVP * Position; | ||
vTexCoord = TexCoord; | ||
} | ||
|
||
#pragma stage fragment | ||
layout(location = 0) in vec2 vTexCoord; | ||
layout(location = 1) in vec2 FragCoord; | ||
layout(location = 0) out vec4 FragColor; | ||
layout(set = 0, binding = 2) uniform sampler2D Source; | ||
|
||
void main() | ||
{ | ||
vec2 texsize = params.SourceSize.xy; | ||
float dx = AAOFFSET/texsize.x; | ||
float dy = AAOFFSET/texsize.y; | ||
vec3 dt = vec3(1.0, 1.0, 1.0); | ||
|
||
vec4 yx = vec4( dx, dy, -dx, -dy); | ||
vec4 xh = yx*vec4(3.0,1.0,3.0,1.0); | ||
vec4 yv = yx*vec4(1.0,3.0,1.0,3.0); | ||
|
||
vec3 c11 = texture(Source, vTexCoord ).xyz; | ||
vec3 s00 = texture(Source, vTexCoord + yx.zw).xyz; | ||
vec3 s20 = texture(Source, vTexCoord + yx.xw).xyz; | ||
vec3 s22 = texture(Source, vTexCoord + yx.xy).xyz; | ||
vec3 s02 = texture(Source, vTexCoord + yx.zy).xyz; | ||
vec3 h00 = texture(Source, vTexCoord + xh.zw).xyz; | ||
vec3 h20 = texture(Source, vTexCoord + xh.xw).xyz; | ||
vec3 h22 = texture(Source, vTexCoord + xh.xy).xyz; | ||
vec3 h02 = texture(Source, vTexCoord + xh.zy).xyz; | ||
vec3 v00 = texture(Source, vTexCoord + yv.zw).xyz; | ||
vec3 v20 = texture(Source, vTexCoord + yv.xw).xyz; | ||
vec3 v22 = texture(Source, vTexCoord + yv.xy).xyz; | ||
vec3 v02 = texture(Source, vTexCoord + yv.zy).xyz; | ||
|
||
float m1=1.0/(dot(abs(s00-s22),dt)+0.00001); | ||
float m2=1.0/(dot(abs(s02-s20),dt)+0.00001); | ||
float h1=1.0/(dot(abs(s00-h22),dt)+0.00001); | ||
float h2=1.0/(dot(abs(s02-h20),dt)+0.00001); | ||
float h3=1.0/(dot(abs(h00-s22),dt)+0.00001); | ||
float h4=1.0/(dot(abs(h02-s20),dt)+0.00001); | ||
float v1=1.0/(dot(abs(s00-v22),dt)+0.00001); | ||
float v2=1.0/(dot(abs(s02-v20),dt)+0.00001); | ||
float v3=1.0/(dot(abs(v00-s22),dt)+0.00001); | ||
float v4=1.0/(dot(abs(v02-s20),dt)+0.00001); | ||
|
||
vec3 t1 = 0.5*(m1*(s00+s22)+m2*(s02+s20))/(m1+m2); | ||
vec3 t2 = 0.5*(h1*(s00+h22)+h2*(s02+h20)+h3*(h00+s22)+h4*(h02+s20))/(h1+h2+h3+h4); | ||
vec3 t3 = 0.5*(v1*(s00+v22)+v2*(s02+v20)+v3*(v00+s22)+v4*(v02+s20))/(v1+v2+v3+v4); | ||
|
||
float k1 = 1.0/(dot(abs(t1-c11),dt)+0.00001); | ||
float k2 = 1.0/(dot(abs(t2-c11),dt)+0.00001); | ||
float k3 = 1.0/(dot(abs(t3-c11),dt)+0.00001); | ||
|
||
FragColor = vec4((k1*t1 + k2*t2 + k3*t3)/(k1+k2+k3),1.0); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
shaders = 6 | ||
|
||
shader0 = ../../edge-smoothing/xbr/shaders/support/linearize.slang | ||
scale_type0 = "source" | ||
scale0 = "1.000000" | ||
filter_linear0 = "false" | ||
alias0 = XbrSource | ||
|
||
shader1 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass0.slang | ||
scale_type1 = "source" | ||
scale1 = "1.000000" | ||
filter_linear1 = "false" | ||
|
||
shader2 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass1.slang | ||
scale_type2 = "source" | ||
scale2 = "4.000000" | ||
filter_linear2 = "false" | ||
|
||
shader3 = ../../edge-smoothing/xsal/shaders/2xsal-level2-xbr.slang | ||
filter_linear3 = true | ||
scale_type3 = source | ||
scale3 = 1.0 | ||
|
||
shader4 = ../../anti-aliasing/shaders/aa-shader-4.0.slang | ||
filter_linear4 = false | ||
scale_type4 = viewport | ||
scale4 = 1.0 | ||
|
||
shader5 = ../../edge-smoothing/xbr/shaders/support/delinearize.slang | ||
scale_type5 = "source" | ||
scale5 = "1.000000" | ||
filter_linear5 = "false" | ||
|
||
INTERNAL_RES = 2.0 | ||
AAOFFSET = 0.675 | ||
XBR_BLENDING = 0.0 | ||
WP4 = "0.8" | ||
InputGamma = "1.000000" | ||
SMALL_DETAILS = "0.000000" | ||
KA = "0.950000" | ||
XBR_EQ_THRESHOLD = "0.450000" | ||
OutputGamma = "1.000000" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
shaders = "6" | ||
|
||
shader0 = ../../edge-smoothing/xbr/shaders/support/linearize.slang | ||
scale_type0 = "source" | ||
scale0 = "1.000000" | ||
filter_linear0 = "false" | ||
alias0 = XbrSource | ||
|
||
shader1 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass0.slang | ||
scale_type1 = "source" | ||
scale1 = "1.000000" | ||
filter_linear1 = "false" | ||
|
||
shader2 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass1.slang | ||
scale_type2 = "source" | ||
scale2 = "5.000000" | ||
filter_linear2 = "false" | ||
|
||
shader3 = ../../edge-smoothing/xsal/shaders/2xsal-level2-xbr.slang | ||
filter_linear3 = true | ||
scale_type3 = source | ||
scale3 = 1.0 | ||
|
||
shader4 = ../../anti-aliasing/shaders/aa-shader-4.0.slang | ||
filter_linear4 = false | ||
scale_type4 = viewport | ||
scale4 = 1.0 | ||
|
||
shader5 = ../../edge-smoothing/xbr/shaders/support/delinearize.slang | ||
scale_type5 = "source" | ||
scale5 = "1.000000" | ||
filter_linear5 = "false" | ||
|
||
INTERNAL_RES = 2.0 | ||
XBR_BLENDING = 0.0 | ||
WP4 = "0.8" | ||
InputGamma = "1.000000" | ||
SMALL_DETAILS = "0.000000" | ||
KA = "0.950000" | ||
XBR_EQ_THRESHOLD = "0.450000" | ||
OutputGamma = "1.000000" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
shaders = 4 | ||
|
||
shader0 = ../../edge-smoothing/xbr/shaders/support/linearize.slang | ||
scale_type0 = "source" | ||
scale0 = "1.000000" | ||
filter_linear0 = "false" | ||
alias0 = XbrSource | ||
|
||
shader1 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass0.slang | ||
scale_type1 = "source" | ||
scale1 = "1.000000" | ||
filter_linear1 = "false" | ||
|
||
shader2 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass1.slang | ||
scale_type2 = "source" | ||
scale2 = "5.000000" | ||
filter_linear2 = "false" | ||
|
||
shader3 = ../../anti-aliasing/shaders/aa-shader-4.0.slang | ||
filter_linear3 = false | ||
scale_type3 = viewport | ||
scale3 = 1.0 | ||
|
||
shader4 = ../../edge-smoothing/xbr/shaders/support/delinearize.slang | ||
scale_type4 = "source" | ||
scale4 = "1.000000" | ||
filter_linear4 = "false" | ||
|
||
parameters = "INTERNAL_RES" | ||
|
||
INTERNAL_RES = 4.0 | ||
XBR_BLENDING = 0.0 | ||
WP4 = "0.8" | ||
InputGamma = "1.000000" | ||
SMALL_DETAILS = "0.000000" | ||
KA = "0.950000" | ||
XBR_EQ_THRESHOLD = "0.450000" | ||
OutputGamma = "1.000000" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
shaders = 4 | ||
|
||
shader0 = ../../edge-smoothing/xbr/shaders/support/linearize.slang | ||
scale_type0 = "source" | ||
scale0 = "1.000000" | ||
filter_linear0 = "false" | ||
alias0 = XbrSource | ||
|
||
shader1 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass0.slang | ||
scale_type1 = "source" | ||
scale1 = "1.000000" | ||
filter_linear1 = "false" | ||
|
||
shader2 = ../../edge-smoothing/xbr/shaders/xbr-lv3-multipass/xbr-lv3-pass1.slang | ||
scale_type2 = "source" | ||
scale2 = "4.000000" | ||
filter_linear2 = "false" | ||
|
||
shader3 = ../../anti-aliasing/shaders/aa-shader-4.0.slang | ||
filter_linear3 = false | ||
scale_type3 = viewport | ||
scale3 = 1.0 | ||
|
||
shader4 = ../../edge-smoothing/xbr/shaders/support/delinearize.slang | ||
scale_type4 = "source" | ||
scale4 = "1.000000" | ||
filter_linear4 = "false" | ||
|
||
parameters = "INTERNAL_RES" | ||
|
||
INTERNAL_RES = 4.0 | ||
XBR_BLENDING = 0.0 | ||
WP4 = "0.8" | ||
InputGamma = "1.000000" | ||
SMALL_DETAILS = "0.000000" | ||
KA = "0.950000" | ||
XBR_EQ_THRESHOLD = "0.450000" | ||
OutputGamma = "1.000000" |