mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
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
This commit is contained in:
45
Data/User/Shaders/bad_bloom.txt
Normal file
45
Data/User/Shaders/bad_bloom.txt
Normal file
@ -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;
|
||||
}
|
7
Data/User/Shaders/invert.txt
Normal file
7
Data/User/Shaders/invert.txt
Normal file
@ -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;
|
||||
}
|
Reference in New Issue
Block a user