Ganossa's GemFX/ReShade Assistant/Framework Dev Blog

  • Ganossa
  • Topic Author
More
9 years 2 months ago - 9 years 2 months ago #7 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
As a result of yesterdays discussion in the team we concluded to organize the entirety of shaders in more distinct modules. Therefore, I designed a first framework which should allow a smooth combination of shader suites and at the same time a simple transition for everyone to apply our newly discussed concept. After reviewing the design, we will most likely explain how that framework will work. Stay tuned :side:
Last edit: 9 years 2 months ago by Ganossa.
The following user(s) said Thank You: crosire, Wicked Sick, strelokgunslinger, SpinelessJelly, brussell, Thaerryn, GerahJiwo, Constantine PC
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 months ago - 9 years 2 months ago #8 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
The New ReShade Framework

[Binary Folder]
The binary folder contains the game specific ReShade binary file, the upcoming ReShade_Configurator and the licence/readme files. The ReShade.fx file moved to another folder, more information to this change in the following sections.

..binary folder..



[ReShade Folder]
The ReShade folder contains core files and optional effect modules that combine all the effects the user can select. The CustomFX folder can be used by any shader developer to distribute and develop his custom effects. The remaining three folders will contain a wide range of distinct base effects that can be useful for any preset developer::
The GemFX module (by LuciferHawk) comprises all lightning effects and probably also motion blur effects.
The McFX module (by Marty McFly) comprises all depth of field and screen space ambient occlusion effects.
The SweetFX module (by Ceejay) comprises all color correction and any other cool effects that are not covered by GemFX and McFX.

..ReShade folder..



[Core Folder]
The core folder contains all global resources used by any other shader module. Therefore, the ReShade.fx shader is a shared shader, which combines effects from the 4 effect modules (CustomFX, GemFX, McFx, SweetFX) that are able to share similar variables and samplers. Therefore, only those effects should be shared, which do not use up too many samplers. The new structure of the framework file also allows for custom ordering of any effect in the shared ReShade.fx shader. To enable shared resources and effects, it is necessary to assign specific IDs for naming (e.g. RFX (global), CFX (custom)) to each individual module uses .

..core folder..


..ReShade.fx..
/*-----------------------------------------------------------.
  /               global/ReShade Suite (Id:: RFX)               /
  '-----------------------------------------------------------*/
//Global Variables
#define RFX_pixelSize float2(1.0f/BUFFER_WIDTH, 1.0f/BUFFER_HEIGHT)

//Global Textures
texture2D RFX_backbufferTex : COLOR;

//Global Samplers
sampler2D RFX_backbufferColor { Texture = RFX_backbufferTex; };

//Vertex Shader
void RFX_VS_PostProcess(in uint id : SV_VertexID, out float4 pos : SV_Position, out float2 texcoord : TEXCOORD)
{
	texcoord.x = (id == 2) ? 2.0 : 0.0;
	texcoord.y = (id == 1) ? 2.0 : 0.0;
	pos = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0);
}

   /*-----------------------------------------------------------.
  /                 customFX Suite (Id:: CFX)                   /
  '-----------------------------------------------------------*/
#include "ReShade\CustomFX\CFX_settings.cfg" 		//Distinct settings of CustomFX suite
#include "ReShade\CustomFX\Shaders\CFX_sUtil_shader.h" 	//Stuff all/most of CustomFX shared shaders need
#if (USE_CFX_sMB == 1)
	#include "ReShade\CustomFX\Shaders\CFX_sCustom_shader.h"
#endif

   /*-----------------------------------------------------------.
  /                   GemFX Suite (Id:: GFX)                    /
  '-----------------------------------------------------------*/
#include "ReShade\GemFX\GFX_settings.cfg" 		//Distinct settings of GemFX suite
#include "ReShade\GemFX\Shaders\GFX_sUtil_shader.h" 	//Stuff all/most of GemFX shared shaders need
#if (USE_GFX_sMB == 1)
	#include "ReShade\GemFX\Shaders\GFX_sMB_shader.h"
#endif

   /*-----------------------------------------------------------.
  /                    McFX Suite (Id:: MFX)                    /
  '-----------------------------------------------------------*/
#include "ReShade\McFX\MFX_settings.cfg"		//Distinct settings of McFX suite
#include "ReShade\McFX\Shaders\MFX_sUtil_shader.h" 	//Stuff all/most of McFX shared shaders need
#if (USE_MFX_sMagicDoF == 1)
	#include "ReShade\McFX\Shaders\MFX_sMagicDoF_shader.h"
#endif

   /*-----------------------------------------------------------.
  /                  SweetFX Suite (Id:: SFX)                   /
  '-----------------------------------------------------------*/
#include "ReShade\SweetFX\SFX_settings.cfg"		//Distinct settings of SweetFX suite
#include "ReShade\SweetFX\Shaders\SFX_sUtil_shader.h" 	//Stuff all/most of SweetFX shared shaders need
#if (USE_SFX_sCRT == 1)
	#include "ReShade\SweetFX\Shaders\SFX_sCRT_shader.h"
#endif

   /*-----------------------------------------------------------.
  /                    ReShade Shared Passes                    /
  '-----------------------------------------------------------*/
//user presets can have different ordering of shaders here which will later be supported by the configurator
//all also ordering of ReShade.fx, Custom.fx, Gem.fx, Mc.fx and Sweet.fx shaders in source should be supported
technique RFX_shared < enabled = true; >
{
	#if (USE_CFX_sCustom == 1)
		#include "ReShade\CustomFX\Shaders\CFX_sCustom_pass.h"
	#endif

	#if (USE_GFX_sMB == 1)
		#include "ReShade\GemFX\Shaders\GFX_sMB_pass.h"
	#endif

	#if (USE_MFX_sMagicDoF == 1)
		#include "ReShade\McFX\Shaders\MFX_sMagicDoF_pass.h"
	#endif

	#if (USE_SFX_sCRT == 1)
		#include "ReShade\SweetFX\Shaders\SFX_sCRT_pass.h"
	#endif
}


[Effect Module Folders]
All module folders are structured in the same manner::
They contain a <moduleID>_settings.cfg file which allows module specific options and toggling of effects. Their effects are stored in the Shaders folder and are separated into shader and pass files to allow reordering in the shared ReShade.fx file. An 's' indicates that an effect is used in the shared ReShade.fx file. A utility file can further be used to specify values that are valid for most of the shared shaders in a module.
The <module_name>.fx file is a not shared shader file which allows more demanding/complex effects to use another 16 samplers.

..module folder..


..shader folder..
Last edit: 9 years 2 months ago by Ganossa.
The following user(s) said Thank You: crosire, SunBroDave, Nekrik, MaxG3D, SAM609, brussell, Omnipotus, Constantine PC, Iris Lux, BrandonHortman and 1 other people also said thanks.
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 months ago - 9 years 4 weeks ago #9 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Ambient Light Port Progress B)

:woohoo: So, I was finally able to finish a first version of the ported Ambient Light shader. I tried a lot with my DX11 implementation and also got some tips from Ceejay and Crosire to workaround the problems but in the end DX9 boundaries for DX11 implementations will just limit any future ideas and render it useless. Therefore, I decided to port my DX9 implementation instead which lacked some quality compared to DX11 but also had some advantages considering soft lenses. Nevertheless, I struggled also with that port which made me re-implement quiet a few things. The results however are splendid :lol: I could increase the overall quality, add some features from the not yet released natural light shader and integrate simple bloom into the composition. The current version is far from being tweaked perfectly and also most values are not kept in check but visually, it got far beyond previous DX9 implementations::

In the teaser I also used the previously ported motion blur and blur shader with some depth information so you get an idea how far I came and because SD looks rather dull otherwise. However, note that blur/DoF will be part of Marty's shader suit ;) . For the same reason I also left out any color correction cause this will be the part of Ceejay's SweetFX :)

Anyway, its already 9 am here, so I will probably sleep all day now :silly: Have a nice one guys :side:
Last edit: 9 years 4 weeks ago by Ganossa.
The following user(s) said Thank You: crosire, Wicked Sick, SAM609, Omnipotus
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 months ago #10 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Sort Of Eye Adaptation Algorithm B)

I implemented a conceptual generic sort of eye adaptation algorithm. It will control all lightning effects. "Sort of" eye adaptation because this algorithm can do much more than just the usual mimic of eye adjustments. It is also able to generically detect night/day time and therefore adjust the lightning accordingly.
I will show more of it soon, stay tuned :lol:
The following user(s) said Thank You: crosire, GroinShooter, sajittarius, SAM609, klotim, GerahJiwo, jas01
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 1 month ago - 9 years 4 weeks ago #11 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
DX11 Ambient Light & God Ray Port

Due to some problems/limitations with the previous DX9 port of GEMFX, I had to redo a bunch of work. This and some work on another project are the reason there was some delay in news, my apologies :lol:
However, so far everything worked out just fine and as always not everything previously done is lost as I can use all newly gained knowledge and advancements in the current DX11 port. The result is a further visually improved ambient light shader (with natural light and god rays).
The following video showcases the current state using also basic DoF, motion blur, grain shader. However, there are no color changes applied, all you see is the dynamic light in action :cheer:
Enjoy!
Last edit: 9 years 4 weeks ago by Ganossa.
The following user(s) said Thank You: klotim, jas01, Aelius Maximus
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 1 month ago - 9 years 4 weeks ago #12 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
God Rays, Particle Effects, Gradient Mask for SplitScreen and Borders

Since some people requested a showcase to the above effects, here it is (but very WIP)::
Last edit: 9 years 4 weeks ago by Ganossa.
The following user(s) said Thank You: crosire, sajittarius, klotim, Aelius Maximus
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 1 month ago - 9 years 1 month ago #13 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Framework Update

So I finally ported the entire SweetFX stack into the SweetFX suite of the new ReShade framework, while allowing at the same time arbitrary reordering of its shaders. YaY :cheer:
I also started porting ME shaders but that will take some more time before I will be done with it. (the last update to ME 1.1.111 helped a lot)
So far the framework maintains the original performance, which -I hope- help everyone to get more attached to it.
Also the framework structure changed again to fit the taste of everyone involved. Thanks to Crosire we might even introduce namespaces with the next ReShade update which would further ease the work with the framework (thanks Crosire ;) )

In the following you can see effects from all suites (SweetFX, McFX and GemFX) applied to Sleeping Dogs.


Stay tuned guys :side:
Last edit: 9 years 1 month ago by Ganossa.
The following user(s) said Thank You: MaxG3D, Alex_outer, BillyAlt, klotim, BrandonHortman, jas01, jmp909, Aelius Maximus, GhostRider521
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 4 weeks ago - 9 years 4 weeks ago #14 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Split Screen Algorithms

I quickly implemented a few split screen algorithms for the new framework. Since I often edit my own screenshots, I actually felt myself I would need something like this to skip the editor for most use cases :silly:
Last edit: 9 years 4 weeks ago by Ganossa.
The following user(s) said Thank You: crosire, JPulowski, Alex_outer, SpinelessJelly, klotim, jas01, TinchO, GhostRider521, PetkaGtA
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 4 weeks ago - 9 years 3 weeks ago #15 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
ME/McFX SSAO Algorithms

All of Marty McFly's latest and amazing SSAO techniques made it into the McFX suite now :cheer:
The port also helps with noticing what is important to mention in the developer tutorial.

A little break, then its time to finish the DoF port and after that I have also some time to finish my own stuff...

---EDIT---
--McFX Implementation is DONE--

We are almost there guys and gals. :side:
Stay tuned!
Last edit: 9 years 3 weeks ago by Ganossa.
The following user(s) said Thank You: SunBroDave, MaxG3D, Alex_outer, SAM609, Aelius Maximus, GhostRider521
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 3 weeks ago #16 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
ReShade Framework, final Test

The framework implementation is done :woohoo: and we run the last few checks.
My first AL implementation made it barely into the framework (for the other one I need a little more time).
We are very busy with setting everything up and I hope you can enjoy our work soon enough :lol:

Here one last sneak peak on the final GemFX ambient light shader, together with other shader from the suite. (all default settings)

I did not have any time for music editing or similar :P
The following user(s) said Thank You: Alex_outer, BrandonHortman, jas01, GhostRider521
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 weeks ago #17 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Eye Adaptation

As planned, I continued working on my eye adaptation algorithm which was already (partly) introduced with the current releases of my ambient light shader. However, there have been some issues that made it not as effective as is should have been. Therefore, I changed parts of the previous algorithm (now plus exponential dependencies) and also added true eye adaptation based on the original image in conjunction with ambient light adaptation (they kind of balance each other).

I hope later today, I can give you a short showcase on how it works/looks.

Stay tuned! :side:
The following user(s) said Thank You: Wicked Sick, SunBroDave, BillyAlt
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 weeks ago - 9 years 2 weeks ago #18 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Eye Adaptation #2

Sneak Peak::
On the top of the screen you can see the light detected by the eye adaptation algorithm (orange) and the -by the algorithm- selected adaptation amount (green).

Note that I did not use any color correction in this video. Due to AL's eye adaptation, one could say AL replaces the original lighting. Further, eye adaptation is a good way to keep the brightness of some games in check (especially when applying more effects).
Last edit: 9 years 2 weeks ago by Ganossa.
The following user(s) said Thank You: crosire, SunBroDave, GERgta, BrandonHortman, jas01, Aelius Maximus
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 weeks ago - 9 years 2 weeks ago #19 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Fusion:: Ambient Light (GemFX) - HeatHaze (McFX)

Very early WIP :blush: but you get the point
Last edit: 9 years 2 weeks ago by Ganossa.
The following user(s) said Thank You: BrandonHortman, jas01, TinchO, Aelius Maximus
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 weeks ago - 9 years 2 weeks ago #20 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Ambient Light Controled HeatHaze

Some improvements on the algorithm in motion. If it gets better like this, I might be able to release something with the next update? :woohoo:

Last edit: 9 years 2 weeks ago by Ganossa.
The following user(s) said Thank You: BrandonHortman, jas01, YOBA, jmp909
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 2 weeks ago #21 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Missing ME ColorCorrection & Loxa's Gaussian

I finished the port/implementation of all missing ColorCorrection shader from ME, namely::
LUT
SKYRIMTONEMAP
TECHNICOLOR
COLORMOOD
CROSSPROCESS
REINHARD
COLORMOD
SPHERICALTONEMAP
HPD
FILMICCURVE
WATCHDOG_TONEMAP
SINCITY
COLORHUEFX


They are currently included in the CustomFX suite until CJ decides how and which to include into the SweetFX suite.
I also included Loxa's Gaussian shader to the upcoming release version while this part was much easier to do, since he prepared everything already and I was just left off to apply some name conventions. Everyone should now have plenty of examples of Custom shader but I will of course see to finish the developer tutorial as soon as possible! :side:
The following user(s) said Thank You: SunBroDave, Alex_outer, Constantine PC, BrandonHortman, jas01, TinchO, jmp909, Tycholarfero
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 1 week ago #22 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Key Toggles and Messages

Added individual key toggles to all shader techniques :silly:
Also added an option to allow toggle messages (as seen in the SweetFX stand-alone) and statistics.

A few more tedious things to implement/fix/check before release :pinch:
The following user(s) said Thank You: Wicked Sick, Alex_outer, Omnipotus, Quentin-Tarantino, BrandonHortman, jas01
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 1 week ago #23 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
UI Mask Helper

Well, see for yourself :P (should be self-explanatory)

The following user(s) said Thank You: BrandonHortman, jas01
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 6 days ago - 9 years 6 days ago #24 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
UI Mask Helper (UPDATE)

It is now possible to create and apply a UI Mask on the fly. On request, the algorithm can also increase the tolerance level for static UI elements (if they are half transparent) that then blend naturally into the image.

Last edit: 9 years 6 days ago by Ganossa.
The following user(s) said Thank You: Wicked Sick, SunBroDave, Kleio420, Martigen
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 6 days ago #25 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Fixed Depth Detection in GTA V

Crosire found out that we supposedly got a log depth buffer in GTA V. However, the typical logarithmic function to retrieve depth values only returns the depth values of a very limited distance due to a strong fall off which would drastically limit the possible focus range. Fortunately, combining the typical function with a correction applying fall off dependencies solves that problem though I still need to adjust a few more values :huh:

Anyway, here is the current result, showing casing near and far DoF (keep in mind that the new algorithm allows to push back the far DoF much more than in the video)

The following user(s) said Thank You: SunBroDave, NattyDread, huss93, jas01
The topic has been locked.
  • Ganossa
  • Topic Author
More
9 years 14 hours ago #26 by Ganossa Replied by Ganossa on topic Lucifer's GemFX/Mediator/Framework Dev Blog
Tuning Palette

Since there have been quiet a few discussions lately about look up tables, I implemented a tuning palette shader that accepts ENB palettes so you guys can apply your favorite palette of the ENB injector :side:
This shader will also allow a few more options than just applying an ENB palette.

Applied this ENB palette with the TuningPalette shader


to GTA V
The following user(s) said Thank You: Constantine PC, BrandonHortman, Courier, Scorpio82CO
The topic has been locked.
We use cookies
We use cookies on our website. Some of them are essential for the operation of the forum. You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.