I am using reshade with Star Wars: Knights of The Old Republic. As some of you may know, modern AMD gpus (and their drivers) do not play nicely with this game, requiring the soft shadows, frame buffer effects, and grass effects to be disabled, though there are workarounds. The workaround for the last one (grass appearing invisible, causing the game to look like this) is to use GLOverride enabling the ForceAlphaToCoverage option. However, this uses opengl32.dll for hooking just like reshade, leaving me stuck between the two. Is there any way to implement this effect through reshade?
Yes. But it's not going to happen in the official build because it's outside the scope of ReShade.
The alpha to coverage test is specific to multisampling, so you could just disable MSAA. Anyway, it's really trivial to implement this in ReShade. You can do it yourself even. Clone the source code for ReShade from github.com/crosire/reshade using Git, open the file "source/opengl/stubs_gl.cpp" and search for the following lines:
Now simply replace them with the following and build the project in Visual Studio to get a custom ReShade build which forces alpha to coverage sampling. Instructions on how to build can be found in the readme at github.com/crosire/reshade. It's pretty trivial for the most part.
I should note that the process was made a little more complicated by glcorearb.h not including a definition for GL_ALPHA_TEST (presumably this is due to the cap being deprecated as of opengl 3.1), so I had to look up the proper definition (found at www.khronos.org/registry/OpenGL/api/GLES/1.0/gl.h, it is
#define GL_ALPHA_TEST 0x0BC0
), build gl3w, add that to glcorearb.h, then disable gl3w from the solution build (so glcorearb.h does not get overwritten), then build the solution.