68 lines
2.0 KiB
GLSL
68 lines
2.0 KiB
GLSL
#version 120
|
|
|
|
#define composite2
|
|
#define gbuffers_texturedblock
|
|
#define lightingColors
|
|
#include "shaders.settings"
|
|
|
|
varying vec4 color;
|
|
varying vec2 texcoord;
|
|
varying vec3 ambientNdotL;
|
|
|
|
uniform vec3 sunPosition;
|
|
uniform vec3 upPosition;
|
|
|
|
uniform int worldTime;
|
|
uniform float rainStrength;
|
|
uniform float nightVision;
|
|
|
|
uniform mat4 gbufferModelView;
|
|
uniform mat4 gbufferModelViewInverse;
|
|
|
|
const vec3 ToD[7] = vec3[7]( vec3(0.58597,0.15,0.02),
|
|
vec3(0.58597,0.35,0.09),
|
|
vec3(0.58597,0.5,0.26),
|
|
vec3(0.58597,0.5,0.35),
|
|
vec3(0.58597,0.5,0.36),
|
|
vec3(0.58597,0.5,0.37),
|
|
vec3(0.58597,0.5,0.38));
|
|
#ifdef TAA
|
|
uniform float viewWidth;
|
|
uniform float viewHeight;
|
|
vec2 texelSize = vec2(1.0/viewWidth,1.0/viewHeight);
|
|
uniform int framemod8;
|
|
const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
|
vec2(-1.,3.)/8.,
|
|
vec2(5.0,1.)/8.,
|
|
vec2(-3,-5.)/8.,
|
|
vec2(-5.,5.)/8.,
|
|
vec2(-7.,-1.)/8.,
|
|
vec2(3,7.)/8.,
|
|
vec2(7.,-7.)/8.);
|
|
#endif
|
|
|
|
void main() {
|
|
|
|
color = gl_Color;
|
|
vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex;
|
|
gl_Position = gl_ProjectionMatrix * gbufferModelView * position;
|
|
|
|
#ifdef TAA
|
|
gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize;
|
|
#endif
|
|
vec3 normal = normalize(gl_NormalMatrix * gl_Normal);
|
|
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy;
|
|
vec2 lmcoord = (gl_TextureMatrix[1] * gl_MultiTexCoord1).xy;
|
|
/*--------------------------------*/
|
|
|
|
//Emissive blocks lighting
|
|
float torch_lightmap = 16.0-min(15.,(lmcoord.s-0.5/16.)*16.*16./15);
|
|
float fallof1 = clamp(1.0 - pow(torch_lightmap/16.0,4.0),0.0,1.0);
|
|
torch_lightmap = fallof1*fallof1/(torch_lightmap*torch_lightmap+1.0);
|
|
//vec3 emissiveLightC = vec3(emissive_R,emissive_G,emissive_B)*torch_lightmap;
|
|
vec3 emissiveLightC = vec3(0.5, 0.0, 1.0); //purple eyes
|
|
float finalminlight = (nightVision > 0.01)? 0.025 : (minlight+0.006)*10.0; //multiply by 10 to improve eye rendering
|
|
|
|
ambientNdotL.rgb = emissiveLightC + finalminlight;
|
|
|
|
} |