////////////////////////////////////////// // Complementary Shaders by EminGT // // With Euphoria Patches by SpacEagle17 // ////////////////////////////////////////// //Common// #include "/lib/common.glsl" #if defined MIRROR_DIMENSION || defined WORLD_CURVATURE #include "/lib/misc/distortWorld.glsl" #endif //////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// #ifdef FRAGMENT_SHADER in vec2 texCoord; flat in vec4 glColor; //Pipeline Constants// //Common Variables// //Common Functions// //Includes// #ifdef COLOR_CODED_PROGRAMS #include "/lib/misc/colorCodedPrograms.glsl" #endif //Program// void main() { vec4 color = texture2D(tex, texCoord); color *= glColor; color.rgb *= glColor.a; // Needed for Minecraft's "Glint Strength" apparently #ifdef COLOR_CODED_PROGRAMS ColorCodeProgram(color, -1); #endif /* DRAWBUFFERS:06 */ gl_FragData[0] = color; gl_FragData[1] = vec4(texelFetch(colortex6, texelCoord, 0).rgb, 1.0); } #endif //////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// #ifdef VERTEX_SHADER out vec2 texCoord; flat out vec4 glColor; //Attributes// #if defined ATLAS_ROTATION || defined WAVE_EVERYTHING attribute vec4 mc_midTexCoord; vec2 lmCoord = GetLightMapCoordinates(); #endif //Common Variables// //Common Functions// //Includes// #ifdef WAVE_EVERYTHING #include "/lib/materials/materialMethods/wavingBlocks.glsl" #endif //Program// void main() { gl_Position = ftransform(); texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; #ifdef ATLAS_ROTATION texCoord += texCoord * float(hash33(mod(cameraPosition * 0.5, vec3(100.0)))); #endif glColor = gl_Color; #if HAND_SWAYING > 0 if (gl_ProjectionMatrix[2][2] > -0.5) { #include "/lib/misc/handSway.glsl" } #endif #if defined MIRROR_DIMENSION || defined WORLD_CURVATURE || defined WAVE_EVERYTHING if (gl_ProjectionMatrix[2][2] < -0.5) { vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; #ifdef MIRROR_DIMENSION doMirrorDimension(position); #endif #ifdef WORLD_CURVATURE position.y += doWorldCurvature(position.xz); #endif #ifdef WAVE_EVERYTHING DoWaveEverything(position.xyz); #endif gl_Position = gl_ProjectionMatrix * gbufferModelView * position; } #endif } #endif