Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 120
- varying vec4 color;
- varying vec4 texcoord;
- varying vec4 lmcoord;
- attribute vec4 mc_Entity;
- uniform float frameTimeCounter;
- void main() {
- texcoord = gl_TextureMatrix[0] * gl_MultiTexCoord0;
- //Uniform random direction using equal-area projection
- float noisep = clamp(fract(sin(dot(gl_Vertex ,vec4(12.9898f,78.233f,16.5f,0.0f))) * 43758.5453f),0.0f,1.0f)*6.2831853f;
- float noisez = clamp(fract(sin(dot(gl_Vertex, vec4(16.5f, 12.9898f,78.233f,0.0f))) * 43758.5453f),0.0f,1.0f)*2.0f-1.0f;
- float k = sqrt(1-noisez*noisez);
- vec4 dir = vec4(k*cos(noisep), k*sin(noisep), noisez, 0.0f);
- //Box-Muller method to generate normal variates
- float noise3 = clamp(fract(sin(dot(gl_Vertex, vec4(12.9898f,16.5f, 78.233f,0.0f))) * 43758.5453f),0.0f,1.0f);
- float noise4 = clamp(fract(sin(dot(gl_Vertex, vec4(16.6f, 16.6f,16.6f,0.0f))) * 43758.5453f),0.0f,1.0f);
- float normv = sqrt(-2.0f * log(noise3)) * sin(6.2831853f*noise4);
- float scale = clamp(normv*0.33f,-1.0f,1.0f)*0.8; //increase last number for greater effect
- vec4 position = gl_ModelViewMatrix * (gl_Vertex + dir*scale);
- gl_Position = gl_ProjectionMatrix * position; //Update position of matrix
- color = gl_Color;
- lmcoord = gl_TextureMatrix[1] * gl_MultiTexCoord1;
- gl_FogFragCoord = gl_Position.z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement