From 95b39da7cad68e1bd1a9c8be713ab1df7988f3d0 Mon Sep 17 00:00:00 2001 From: Marcus Wanners Date: Sat, 8 Aug 2009 22:01:18 +0000 Subject: [PATCH] Tooltip for Free Look setting. Postprocessing: Major improvements to nightvision2. Should actually "enhance the game's graphics in a way". Much, much better than the old version. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3951 8ced0084-cf51-0410-be5f-012b33b47a6e --- Data/User/Shaders/nightvision2.txt | 66 ++++++++++++------- .../Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp | 7 +- 2 files changed, 49 insertions(+), 24 deletions(-) diff --git a/Data/User/Shaders/nightvision2.txt b/Data/User/Shaders/nightvision2.txt index 95c67f51fb..e0e75718ee 100644 --- a/Data/User/Shaders/nightvision2.txt +++ b/Data/User/Shaders/nightvision2.txt @@ -2,28 +2,50 @@ uniform samplerRECT samp0 : register(s0); void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) { + //variables + int internalresolution = 1282; //for 800x600; should be changed for other settings. float4 c0 = texRECT(samp0, uv0).rgba; - float grey = ((0.2 * c0.r) + (0.7 * c0.g) + (0.1 * c0.b))*0.7; - if (grey > 0.7){ - ; - } - else if (grey > 0.55){ - grey = grey*1.5; - } - else if (grey > 0.4){ - grey = grey*2; - } - else if (grey > 0.3){ - grey = grey*2.5; - } - else if (grey > 0.2){ - grey = grey*3; - } - else if (grey > 0.1){ - grey = grey*3.5; - } - else{ - grey = grey*4; - } + //blur + float4 blurtotal = float4(0, 0, 0, 0); + float blursize = 1.5; + blurtotal += texRECT(samp0, uv0 + float2(-blursize, -blursize)); + blurtotal += texRECT(samp0, uv0 + float2(-blursize, blursize)); + blurtotal += texRECT(samp0, uv0 + float2( blursize, -blursize)); + blurtotal += texRECT(samp0, uv0 + float2( blursize, blursize)); + blurtotal += texRECT(samp0, uv0 + float2(-blursize, 0)); + blurtotal += texRECT(samp0, uv0 + float2( blursize, 0)); + blurtotal += texRECT(samp0, uv0 + float2( 0, -blursize)); + blurtotal += texRECT(samp0, uv0 + float2( 0, blursize)); + blurtotal *= 0.125; + c0 = blurtotal; + //greyscale + float grey = ((0.3 * c0.r) + (0.4 * c0.g) + (0.3 * c0.b)); + // brighten + grey = grey * 0.5 + 0.7; + // darken edges + float x = uv0[0]; + float y = uv0[1]; + if (x > internalresolution/2) x = internalresolution-x; + if (y > internalresolution/2) y = internalresolution-y; + if (x > internalresolution/2*0.95) x = internalresolution/2*0.95; + if (y > internalresolution/2*0.95) y = internalresolution/2*0.95; + x = -x+641; + y = -y+641; + /*****inline square root routines*****/ + // bit of a performance bottleneck. + // neccessary to make the darkened area rounded + // instead of rhombus-shaped. + float sqrt=x/10; + while((sqrt*sqrt) < x) sqrt+=0.1; + x = sqrt; + sqrt=y/10; + while((sqrt*sqrt) < y) sqrt+=0.1; + y = sqrt; + /*****end of inline square root routines*****/ + x *= 2; + y *= 2; + grey -= x/200; + grey -= y/200; + // output ocol0 = float4(0, grey, 0, 1.0); } \ No newline at end of file diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp b/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp index 42098b2012..fa449102e5 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp @@ -414,8 +414,11 @@ void GFXConfigDialogOGL::CreateGUIControls() " set up for the dump or several gigabytes of space available.")); #endif m_DumpFrames->SetValue(g_Config.bDumpFrames); - m_FreeLook = new wxCheckBox(m_PageAdvanced, ID_FREELOOK, wxT("Free Look"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - m_FreeLook->SetValue(g_Config.bFreeLook); + m_FreeLook = new wxCheckBox(m_PageAdvanced, ID_FREELOOK, wxT("Free Look"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + m_FreeLook->SetToolTip( + wxT("Use WASD to move around, 0 and 9 to move faster or slower, and the") + wxT(" left mouse button to pan the view.")); + m_FreeLook->SetValue(g_Config.bFreeLook); // Hacks controls m_SafeTextureCache = new wxCheckBox(m_PageAdvanced, ID_SAFETEXTURECACHE, wxT("Use Safe texture cache"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);