• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › Development Discussion v
« Previous 1 2 3 4 5 … 117 Next »

DolphinFX - (Post-processing suite for the OpenGL backend)
View New Posts | View Today's Posts

Pages (31): 1 2 3 4 5 … 31 Next »
Jump to page 
Thread Rating:
  • 8 Vote(s) - 4.75 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Threaded Mode
DolphinFX - (Post-processing suite for the OpenGL backend)
11-18-2013, 08:09 AM (This post was last modified: 02-02-2015, 02:08 AM by Asmodean.)
#1
Asmodean Offline
★( `_´)乂(`_´ )★
***
Posts: 104
Threads: 4
Joined: Aug 2011
Photo 
DolphinFX is a post-processing suite for the OpenGL backend. If you're interested in that sort of thing, the description is below.

Current effects include:

  • HQ FXAA 3.11
    -
  • Bicubic Interpolation Scaling
  • Lanzcos Interpolation Scaling
  • Bilinear Texture Filtering
    -

  • High Quality Blended Bloom
  • HDR Scene Tone Mapping
  • Colour Correction
  • Gamma Correction Curve
  • Filmic Cross Processing
  • Local Contrast Enhancement
  • Texture Unsharp Mask
  • Pixel Vibrance Adjustment
  • Px Cel Shading
    -
  • Scanline Emulation
  • Film Grain
  • Vignette
  • Subpixel Dithering


To Install:
Extract DolphinFX to your Dolphin-> \Sys\Shaders folder. Then enable the shader in the OpenGL graphics options->enhancements->post-processing effect->DolphinFX.

Config Settings:
Backend->OpenGL->Configuration->Enhancements->Post-Processing Effect: select DolphinFX.

Then click of the 'config' button next to it. You can enable, and disable each effect independently from each other. Or disable/enable them all at once in the general tab. There are various options for each individual effect, that can all be adjusted in real-time, during gameplay. So, play around with the settings.


Link: DolphinFX 2.0
You can keep track of latest changes at GitHub






Code:
Version History
----------------------------
Updated to 2.00 - 14/11/2014

Too many changes to effectively list :p
Rewrote most effect logic.
Various additions, improvements, and optimizations.
Added support for the latest Dolphin builds, PP FW updates, and GUI functionality.

----------------------------
Updated to 1.50 - 12/01/2014

FXAA: Improved Lod coverage.
FXAA: Fxaa should now produce no visible blurring whatsoever.
FXAA: Removed Fxaa debug option.
Texture Filtering: Added Bilinear filtering to the list of texture filtering options, for use.
BiCubic Filtering: Improved filtering quality
BiCubic Filtering: Added a strength param as an option, to adjust the overall level of texture filtering.
BiCubic Filtering: Added a cubic interpolation type to the interpolation options. Options are now (lightest, to strongest): CatMullRom, Bell, BSpline, Triangular, Cubic.
Blended Bloom: Some small improvements to the bloom blending output.
Blended Bloom: Added an option to directly control the level of blending to use in the bloom (BlendPower).
Gamma Correction: Implemented a new gamma correction curve to replace the pow function previously used, which I think yields nicer, more accurate results.
Colour Correction: Implemented a new curve for the pre tone mapping colour correction.
Scene Tonemapping: Rewrote alot of the tonemapping code.
Scene Tonemapping: Improved some colour conversion operations.
Scene Tonemapping: Added RGB colour curve options, for Red, Green, and Blue respectively.
Scene Tonemapping: Added filmic tonemapping operations, and a Filmic Tonemapping type, as a tonemap type to choose. The two types are now - Natural(default), and Filmic(cinematic style)
Contrast: Slightly Improved contrast curve type 1.
Texture Sharpening: Updated the texture sharpening. Fixed an oversight bug, and improved sharpen quality
Texture Sharpening: Added a new bicubic based sharpening type with highly improved edge detection. It's a little bit slower than the original though.
Cel Shading: Changed the cel edge thickness option from a bool, to float, to allow arbitrary edge thickness values.
Cel Shading: Improved some colour conversion operations.
Scanlines: Improved the scanlines output a bit.
Effects: Added Post-Complement Colour Grading, as an effect to choose.
Effects: Added Vignette as an effect to choose.
Effects:  Added Subpixel Dithering as an effect to choose.
Generic: Overall general coding cleanup, and improvements
Generic: Updated effect options & descriptions.
----------------------------
Updated to 1.40 - 14/12/2013

FXAA has now been completed.
-FXAA: now has accurate alpha calculations, the algorithm is now based on full alpha-based luma detection. Previously It would only output correctly in Dolphin, using the green component as luma.
-FXAA: added early exit pathing. [luma edge detection, and fullscreen anti aliasing].
-FXAA: due to the above alpha changes, subpixel detection is improved, you are now accurately able to use 0.0 FxaaSubpixMax to achieve a completely edge-only based anti aliasing, with no visible blurring whatsoever.
NFAA: updated & improved NFAA texture tapping, and samples, the settings have slightly altered because of this. (I'm considering just removing NFAA tbh. It's a bit redundant, and inferior to the HQ FXAA in general)
Gaussian Filtering: texture taps have been improved and slightly reworked, with slightly improved offsetting also.
Blended Bloom: slightly improved the bloom blend output.
-Blended Bloom: reworked BloomMixType 3. Mixing coefficients are now based on alpha values instead of the r component. produces better results.
-Blended Bloom: improved the blending power of the bloom glow, it now produces nicer results. new options are [0 or 1].
-Blended Bloom: added the option BloomLift, which adds the option of extra y axis offsetting to the bloom blend. Can increase the prominence of light reflecting on objects.
Texture Sharpening: Updated, and slighly improved the 9-tap sampling, and bias.
-Texture Sharpening: removed the option to use color for edge calculations. It wasn't working as well as I thought, and was inferior to luma detection.
Cel Shading: Toon shading has been completely rewritten, and is now called Cel Shading (not 100% accurate, as I don't have lighting, and depth info, but it's the best I can do with the limitations I have.). Using RGB & YUV luminance calculations with rounded blending of color components.
-Cel Shading: Improved Cel edge calculations, and output.
-Cel Shading: new options are as follows: EdgeStrength, EdgeFilter, EdgeThickness, PaletteType, UseYuvLuma, LumaConversion, ColorRounding. See in-shader documentation commenting for info on each.
Scanlines: updated, and improved scanlines a bit, also reworked, and added some new options.
Fixed some luminance, & clamping issues with various effects.
Removed the f suffix on floating point values.
Reordered the pseudo pass order of the main, for better merging of effects.
Various other small coding improvements.
----------------------------
Updated to 1.30 - 30/11/2013

-Added a simple Scanline effect, as requested. For those who like that effect in 2D/sprite oriented games, etc.
-Slightly improved FXAA's edge detection, for better coverage. Also a small increase in performance.
-Slightly improved Gaussian filtering, & NFAA's Bilinear filtering.
-Texture Sharpening: added the option to use Luminance, or color based edge detection.
-Improved Bloom's output blend slightly.
-Updated options commenting a bit, again. Also included small postfix on AA, to indicate if the technique is better for 2D, or 3D.
-Various small coding improvements overall.
----------------------------
Updated to 1.25 - 27/11/2013

-Added Gaussian-based fullscreen filtering, for testing.
-Added Pixel Vibrance adjustment.
-Small updates/improvements to existing effects.
-Various small coding improvements.
-Updated options section layout, and document commenting.
----------------------------
Updated to 1.20 - 21/11/2013

-Replaced the LQ console FXAA with a superior high quality FXAA adapted from Timothy Lottes FXAA 3.11.
-Added FXAA quality preset options (lowQ, mediumQ, highQ, ultraQ) respectively. Making it easier for people to change the settings based on what they want.
-Some code cleaning & improvements.
----------------------------
Updated to 1.15 - 20/11/2013

-Updated BiCubic FS filtering (I wasn't happy with the previous version, so I've changed it) - Added 4 different interpolation types: CatMullRom, BSpline, Triangular, Bell.
-Updated the two optional tone mapping types I added yesterday in the previous version. Again, because I didn't like the implementation. New types are: Natural, Cinematic, Vivid.
-Changed Bloom's blend power back to a default 1, and lowered Texture Sharpening's sharpening clamp to compensate.
----------------------------
Updated to 1.10 - 19/11/2013

-Added Bicubic FS filtering effect.
-Added embedded Bilinear filtering options to both FXAA, & NFAA. disabled by default, can be enabled via options.
-Improved luminance calculations a bit.
-Improved tonemap calculations.
-Added 3 tone options (neutral, cool, warm).
-Small general coding improvements.
-Changed the default bloom BlendPower to 2, up from 1. Helpful feedback is appreciated.
-Removed forced extensions.
-Added Bicubic filter options.


Attached Files
.zip   DolphinFX.zip (Size: 11.31 KB / Downloads: 32,758)
Find
Reply
11-18-2013, 08:38 AM
#2
Sonicadvance1 Offline
Professional Hand Holder
**********
Developers (Some Administrators and Super Moderators)
Posts: 716
Threads: 15
Joined: Jan 2013
Awesome, if you have any considerations on how to improve our post processing shaders, give them to us and we may think implement it since our system is still relatively immature for these shaders.
Find
Reply
11-18-2013, 09:22 AM
#3
NaturalViolence Offline
It's not that I hate people, I just hate stupid people
*******
Posts: 9,013
Threads: 24
Joined: Oct 2009
@Asmodean

I will build a shrine to honor you. Seriously this is great.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."  
-Ron Swanson

"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
Website Find
Reply
11-18-2013, 09:36 AM
#4
Shonumi Offline
Linux User/Tester
**********
Administrators
Posts: 6,526
Threads: 55
Joined: Dec 2011
^__^

This made my day man. People haven't been interested in making additional shaders for Dolphin, but it's great to see that someone out there taking the time and effort to do something like this. Will try it out later.
Website Find
Reply
11-18-2013, 09:44 AM
#5
ThorhiantheUltimate Offline
Member
***
Posts: 185
Threads: 4
Joined: Sep 2012
:O Its been a while since Ive posted here, and I come to see this awesomeness! Ill give it a try!

And your username, Asmodean, is that where I think it came from?
Find
Reply
11-18-2013, 09:44 AM
#6
Link_to_the_past Offline
Link on steroids really
*******
Posts: 1,767
Threads: 17
Joined: Feb 2010
Nice! Btw i think that dolphin lacks a good filter for 2d games, it would be awesome if one could be implemented as a shader.
Find
Reply
11-18-2013, 04:27 PM
#7
delroth Offline
Making the world a better place through reverse engineered DSP firmwares
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,354
Threads: 63
Joined: Aug 2011
Merge that to master!
Pierre "delroth" Bourdon - @delroth_ - Blog

<@neobrain> that looks sophisticated enough to not be a totally dumb thing to do
Website Find
Reply
11-18-2013, 06:10 PM
#8
shuffle2 Offline
godisgovernment
*
Project Owner  Developers (Administrators)
Posts: 698
Threads: 17
Joined: Mar 2009
Good job there, guy.
Find
Reply
11-18-2013, 07:38 PM
#9
mudlord Offline
Member
***
Posts: 61
Threads: 3
Joined: Apr 2009
Oh nice, a shader which appears to be not coded by a bloody moron. The bloom shader is nicely unrolled too. Smile
Find
Reply
11-19-2013, 12:55 AM (This post was last modified: 12-15-2013, 09:26 AM by Asmodean.)
#10
Asmodean Offline
★( `_´)乂(`_´ )★
***
Posts: 104
Threads: 4
Joined: Aug 2011
(11-18-2013, 08:38 AM)Sonicadvance1 Wrote: Awesome, if you have any considerations on how to improve our post processing shaders, give them to us and we may think implement it since our system is still relatively immature for these shaders.

Having external compilation of the vertex shader would be useful. Maybe a conditional statement to check if there is an external vs present, and if so, compile it. If there's no external vs, compile the internal one. If you're interested in furthering Dolphin's post processing, I can leave feedback here, as I think of it.
Not so important for now, but would still be nice, is: access to the depth buffer (I could do various DoF, AO etc). A few more uniforms for eg: depth, lighting, and samplers.

Post processing can go a long way visually, especially in older games, where upscaling can only do so much.

---------------------------
Thanks for the comments. Feedback is helpful.

I'll also take reasonable requests for effects. I'm limited to color (ps) effects for now.
Find
Reply
« Next Oldest | Next Newest »
Pages (31): 1 2 3 4 5 … 31 Next »
Jump to page 


  • View a Printable Version
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma