mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-12-29 03:11:50 +01:00
3d492aa656
Should fix the native anti-aliasing preset most importantly, but since I ported all of the packs now the script "watermark" is at least a proper sentence, heh. Also, I fixed the porting scripts. Basically, there were a bug in the verification script that wouldn't check if the uf_* variables matched and the conversion script also had a fun bug where it wasn't automatically fixing an incorrect order of the uf_* variables. So that basically made both of them slip through. Both are now fixed however. Don't know if it's needed to check the previously ported graphic packs to see if the error affected those, but it might not hurt.
53 lines
2.1 KiB
Plaintext
53 lines
2.1 KiB
Plaintext
#version 420
|
|
#extension GL_ARB_texture_gather : enable
|
|
#extension GL_ARB_separate_shader_objects : enable
|
|
#ifdef VULKAN
|
|
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
|
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
|
|
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
|
|
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
|
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
|
#define gl_VertexID gl_VertexIndex
|
|
#define gl_InstanceID gl_InstanceIndex
|
|
#else
|
|
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
|
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
|
|
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
|
|
#define SET_POSITION(_v) gl_Position = _v
|
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
|
#endif
|
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
|
|
|
|
|
// shader cb0e6e8cbec4502a
|
|
// Used for: 1 pass Battle, Camera and Scope Depth of Field Blur
|
|
|
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
|
layout(location = 0) in vec4 passParameterSem3;
|
|
layout(location = 0) out vec4 passPixelColor0;
|
|
#ifdef VULKAN
|
|
layout(set = 1, binding = 1) uniform ufBlock
|
|
{
|
|
uniform vec4 uf_fragCoordScale;
|
|
};
|
|
#else
|
|
uniform vec2 uf_fragCoordScale;
|
|
#endif
|
|
|
|
int radius = int( roundEven(2.0/uf_fragCoordScale.y) );
|
|
vec2 resolution = vec2( textureSize(textureUnitPS0,0) );
|
|
|
|
void main() {
|
|
vec2 center = ( passParameterSem3.xy + passParameterSem3.zw ) / 2.0 ;
|
|
vec3 result = vec3(0.0);
|
|
float count = 0.0;
|
|
for ( int x = 1-radius; x <= radius-1; x+=2 ) {
|
|
for ( int y = 1-radius; y <= radius-1; y+=2 ) {
|
|
if ( length(vec2(x, y)) <= radius ) {
|
|
result += texture( textureUnitPS0, center + vec2(x, y)/resolution ).xyz ;
|
|
count += 1.0;
|
|
}
|
|
}
|
|
}
|
|
passPixelColor0 = vec4( result / count, 0.0 );
|
|
} |