80 lines
1.7 KiB
GLSL
80 lines
1.7 KiB
GLSL
/*
|
|
BSL Shaders v8 Series by Capt Tatsu
|
|
https://bitslablab.com
|
|
*/
|
|
|
|
//Settings//
|
|
#include "/lib/settings.glsl"
|
|
|
|
//Fragment Shader///////////////////////////////////////////////////////////////////////////////////
|
|
#ifdef FSH
|
|
|
|
//Varyings//
|
|
varying vec2 texCoord;
|
|
|
|
//Uniforms//
|
|
uniform int frameCounter;
|
|
uniform float viewWidth, viewHeight, aspectRatio;
|
|
|
|
uniform vec3 cameraPosition, previousCameraPosition;
|
|
|
|
uniform mat4 gbufferPreviousProjection, gbufferProjectionInverse;
|
|
uniform mat4 gbufferPreviousModelView, gbufferModelViewInverse;
|
|
|
|
uniform sampler2D colortex1;
|
|
uniform sampler2D colortex2;
|
|
uniform sampler2D depthtex1;
|
|
|
|
#ifdef TAA_SELECTIVE
|
|
uniform sampler2D colortex3;
|
|
#endif
|
|
|
|
//Optifine Constants//
|
|
#ifdef LIGHT_SHAFT
|
|
const bool colortex1MipmapEnabled = true;
|
|
#endif
|
|
|
|
//Common Functions//
|
|
float GetLuminance(vec3 color) {
|
|
return dot(color, vec3(0.299, 0.587, 0.114));
|
|
}
|
|
|
|
//Includes//
|
|
#include "/lib/antialiasing/taa.glsl"
|
|
|
|
//Program//
|
|
void main() {
|
|
vec2 newTexCoord = texCoord;
|
|
#if defined TAA && TAA_MODE == 1
|
|
vec2 offset = frameCounter % 2 == 0 ? vec2(0.5, 0.0) : vec2(0.0, 0.5);
|
|
newTexCoord += offset / vec2(viewWidth, viewHeight);
|
|
#endif
|
|
|
|
vec3 color = texture2DLod(colortex1, newTexCoord, 0.0).rgb;
|
|
vec4 prev = vec4(texture2DLod(colortex2, texCoord, 0).r, 0.0, 0.0, 0.0);
|
|
|
|
#ifdef TAA
|
|
prev = TemporalAA(color, prev.r);
|
|
#endif
|
|
|
|
/*DRAWBUFFERS:12*/
|
|
gl_FragData[0] = vec4(color, 1.0);
|
|
gl_FragData[1] = vec4(prev);
|
|
}
|
|
|
|
#endif
|
|
|
|
//Vertex Shader/////////////////////////////////////////////////////////////////////////////////////
|
|
#ifdef VSH
|
|
|
|
//Varyings//
|
|
varying vec2 texCoord;
|
|
|
|
//Program//
|
|
void main() {
|
|
texCoord = gl_MultiTexCoord0.xy;
|
|
|
|
gl_Position = ftransform();
|
|
}
|
|
|
|
#endif |