diff options
| author | hrydgard <hrydgard@gmail.com> | 2009-06-08 19:42:25 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2009-06-08 19:42:25 +0000 |
| commit | 085fa5f526522674909f670ffa89c8b3f51bdf8d (patch) | |
| tree | 62154c265b83b5f289c4552d5ae35d9de83c0605 /Data/User | |
| parent | fd5a4ee71ac483936bf8282b556b085a37d3fdd6 (diff) | |
Simple post-processing shader implementation. No UI yet. Does not work together with AA yet. To use shader bad_bloom, for example, set PostProcessingShader under [Enhancements] in gfx_opengl.ini.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3380 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Data/User')
| -rw-r--r-- | Data/User/Shaders/bad_bloom.txt | 45 | ||||
| -rw-r--r-- | Data/User/Shaders/invert.txt | 7 |
2 files changed, 52 insertions, 0 deletions
diff --git a/Data/User/Shaders/bad_bloom.txt b/Data/User/Shaders/bad_bloom.txt new file mode 100644 index 0000000000..720786754a --- /dev/null +++ b/Data/User/Shaders/bad_bloom.txt @@ -0,0 +1,45 @@ +uniform samplerRECT samp0 : register(s0);
+
+const float2 samples[8] = {
+ float2(-1.5, -1.5),
+ float2(-2.5, 0),
+ float2(-1.5, 1.5),
+ float2(0, 2.5),
+ float2(1.5, 1.5),
+ float2(2.5, 0),
+ float2(1.5, -1.5),
+ float2(0, -2.5),
+};
+
+void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0)
+{
+ float4 c_center = texRECT(samp0, uv0).rgba;
+
+ float4 bloom_sum = float4(0.0, 0.0, 0.0, 0.0);
+ uv0 += float2(0.3, 0.3);
+ float radius1 = 1.3;
+ bloom_sum += texRECT(samp0, uv0 + float2(-1.5, -1.5) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(-2.5, 0) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(-1.5, 1.5) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(0, 2.5) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(1.5, 1.5) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(2.5, 0) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(1.5, -1.5) * radius1);
+ bloom_sum += texRECT(samp0, uv0 + float2(0, -2.5) * radius1);
+
+ float radius2 = 4.6;
+ bloom_sum += texRECT(samp0, uv0 + float2(-1.5, -1.5) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(-2.5, 0) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(-1.5, 1.5) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(0, 2.5) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(1.5, 1.5) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(2.5, 0) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(1.5, -1.5) * radius2);
+ bloom_sum += texRECT(samp0, uv0 + float2(0, -2.5) * radius2);
+
+ bloom_sum *= 0.07;
+ bloom_sum -= float4(0.3, 0.3, 0.3, 0.3);
+ bloom_sum = max(bloom_sum, float4(0,0,0,0));
+
+ ocol0 = c_center * 0.7 + bloom_sum;
+}
diff --git a/Data/User/Shaders/invert.txt b/Data/User/Shaders/invert.txt new file mode 100644 index 0000000000..efd57def22 --- /dev/null +++ b/Data/User/Shaders/invert.txt @@ -0,0 +1,7 @@ +uniform samplerRECT samp0 : register(s0);
+
+void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0)
+{
+ float4 c0 = texRECT(samp0, uv0).rgba;
+ ocol0 = float4(1.0, 1.0, 1.0, 1.0) - c0;
+}
|
