X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fpoint_map.h;fp=shaders%2Fpoint_map.h;h=0000000000000000000000000000000000000000;hb=bececcbb7b2e886e72425e7c070e1fdc3aa126dc;hp=006c98f93b28042b238f68468d12ab4f565a1400;hpb=93790b71d3a89724255dc73239e38c08ad4bbac7;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/point_map.h b/shaders/point_map.h deleted file mode 100644 index 006c98f..0000000 --- a/shaders/point_map.h +++ /dev/null @@ -1,168 +0,0 @@ -#ifndef SHADER_point_map_H -#define SHADER_point_map_H -static void shader_point_map_link(void); -static void shader_point_map_register(void); -static struct vg_shader _shader_point_map = { - .name = "point_map", - .link = shader_point_map_link, - .vs = -{ -.orig_file = "shaders/cloud.vs", -.static_src = -"layout (location=0) in vec4 a_co;\n" -"layout (location=1) in vec4 a_colour;\n" -"\n" -"#line 1 1 \n" -"const float k_motion_lerp_amount = 0.01;\n" -"\n" -"#line 2 0 \n" -"\n" -"out vec3 aMotionVec0;\n" -"out vec3 aMotionVec1;\n" -"\n" -"void vs_motion_out( vec4 vproj0, vec4 vproj1 )\n" -"{\n" -" // This magically solves some artifacting errors!\n" -" //\n" -" vproj1 = vproj0*(1.0-k_motion_lerp_amount) + vproj1*k_motion_lerp_amount;\n" -"\n" -" aMotionVec0 = vec3( vproj0.xy, vproj0.w );\n" -" aMotionVec1 = vec3( vproj1.xy, vproj1.w );\n" -"}\n" -"\n" -"#line 5 0 \n" -"\n" -"uniform mat4x3 uMdl;\n" -"uniform mat3 uNormMtx;\n" -"uniform mat4 uPv;\n" -"uniform mat4 uPvmPrev;\n" -"uniform vec4 uAnim;\n" -"\n" -"out vec4 aColour;\n" -"out vec3 aWorldCo;\n" -"out vec3 aCo;\n" -"\n" -"vec2 rand_hash22( vec2 p )\n" -"{\n" -" vec3 p3 = fract(vec3(p.xyx) * 213.8976123);\n" -" p3 += dot(p3, p3.yzx+19.19);\n" -" return fract(vec2((p3.x + p3.y)*p3.z, (p3.x+p3.z)*p3.y));\n" -"}\n" -"\n" -"vec3 gridify( vec3 p, float s, float t )\n" -"{\n" -" vec3 co = p*s;\n" -" vec2 r2 = rand_hash22(p.xz);\n" -" vec3 grid = (vec3(floor(co.x),co.y,floor(co.z))+vec3(0.5,0.0,0.5)) * (1.0/s);\n" -"\n" -" float t1 = 1.0-t;\n" -" t1 = 1.0-t1*t1;\n" -" float t2 = t*t;\n" -"\n" -" return mix( p, grid, t1 ) + t2*vec3(0.0,r2.y*r2.y*0.2,0.0);\n" -"}\n" -"\n" -"void main()\n" -"{\n" -" vec3 co = gridify( a_co.xyz, uAnim.x, uAnim.y );\n" -"\n" -" vec3 world_pos0 = uMdl * vec4( co, 1.0 );\n" -" vec4 vproj0 = uPv * vec4( world_pos0, 1.0 );\n" -" vec4 vproj1 = uPvmPrev * vec4( co, 1.0 );\n" -"\n" -" float scaler = smoothstep(0.6,0.58,length(co.xz));\n" -"\n" -" vs_motion_out( vproj0, vproj1 );\n" -"\n" -" gl_Position = vproj0;\n" -" gl_PointSize = (9.0*scaler) / (max( gl_Position.z, 2.0 ));\n" -" aWorldCo = world_pos0;\n" -" aColour = a_colour*scaler*(1.0-uAnim.y*uAnim.y);\n" -" aCo = co;\n" -"}\n" -""}, - .fs = -{ -.orig_file = "shaders/cloud.fs", -.static_src = -"out vec4 FragColor;\n" -"\n" -"#line 1 1 \n" -"const float k_motion_lerp_amount = 0.01;\n" -"\n" -"#line 2 0 \n" -"\n" -"layout (location = 1) out vec2 oMotionVec;\n" -"\n" -"in vec3 aMotionVec0;\n" -"in vec3 aMotionVec1;\n" -"\n" -"void compute_motion_vectors()\n" -"{\n" -" // Write motion vectors\n" -" vec2 vmotion0 = aMotionVec0.xy / aMotionVec0.z;\n" -" vec2 vmotion1 = aMotionVec1.xy / aMotionVec1.z;\n" -"\n" -" oMotionVec = (vmotion1-vmotion0) * (1.0/k_motion_lerp_amount);\n" -"}\n" -"\n" -"#line 4 0 \n" -"\n" -"uniform vec3 uCamera;\n" -"\n" -"in vec4 aColour;\n" -"in vec3 aCo;\n" -"in vec3 aWorldCo;\n" -"\n" -"void main()\n" -"{\n" -" vec2 ssuv = gl_FragCoord.xy;\n" -" vec3 vDither = vec3( dot( vec2( 171.0, 231.0 ), ssuv) );\n" -" float dither = fract( vDither.g / 71.0 ) - 0.5;\n" -"\n" -" float diff = length(gl_PointCoord.xy-vec2(0.5));\n" -" if( diff+dither>0.5 )discard;\n" -"\n" -" compute_motion_vectors();\n" -" FragColor = aColour;\n" -"}\n" -""}, -}; - -static GLuint _uniform_point_map_uMdl; -static GLuint _uniform_point_map_uNormMtx; -static GLuint _uniform_point_map_uPv; -static GLuint _uniform_point_map_uPvmPrev; -static GLuint _uniform_point_map_uAnim; -static GLuint _uniform_point_map_uCamera; -static void shader_point_map_uMdl(m4x3f m){ - glUniformMatrix4x3fv(_uniform_point_map_uMdl,1,GL_FALSE,(float*)m); -} -static void shader_point_map_uNormMtx(m3x3f m){ - glUniformMatrix3fv(_uniform_point_map_uNormMtx,1,GL_FALSE,(float*)m); -} -static void shader_point_map_uPv(m4x4f m){ - glUniformMatrix4fv(_uniform_point_map_uPv,1,GL_FALSE,(float*)m); -} -static void shader_point_map_uPvmPrev(m4x4f m){ - glUniformMatrix4fv(_uniform_point_map_uPvmPrev,1,GL_FALSE,(float*)m); -} -static void shader_point_map_uAnim(v4f v){ - glUniform4fv(_uniform_point_map_uAnim,1,v); -} -static void shader_point_map_uCamera(v3f v){ - glUniform3fv(_uniform_point_map_uCamera,1,v); -} -static void shader_point_map_register(void){ - vg_shader_register( &_shader_point_map ); -} -static void shader_point_map_use(void){ glUseProgram(_shader_point_map.id); } -static void shader_point_map_link(void){ - _uniform_point_map_uMdl = glGetUniformLocation( _shader_point_map.id, "uMdl" ); - _uniform_point_map_uNormMtx = glGetUniformLocation( _shader_point_map.id, "uNormMtx" ); - _uniform_point_map_uPv = glGetUniformLocation( _shader_point_map.id, "uPv" ); - _uniform_point_map_uPvmPrev = glGetUniformLocation( _shader_point_map.id, "uPvmPrev" ); - _uniform_point_map_uAnim = glGetUniformLocation( _shader_point_map.id, "uAnim" ); - _uniform_point_map_uCamera = glGetUniformLocation( _shader_point_map.id, "uCamera" ); -} -#endif /* SHADER_point_map_H */