X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fplaneinf.h;fp=shaders%2Fplaneinf.h;h=0000000000000000000000000000000000000000;hb=aa4c26eae2208872824e0eb5b71bc05c16d43242;hp=4bd7e86eb06b1824dff68abc9e1fc48f4bb5d3ef;hpb=3e8fda9c7cbc50d1ae95195905c953bdeedf71b9;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/planeinf.h b/shaders/planeinf.h deleted file mode 100644 index 4bd7e86..0000000 --- a/shaders/planeinf.h +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef SHADER_planeinf_H -#define SHADER_planeinf_H -static void shader_planeinf_link(void); -static void shader_planeinf_register(void); -static struct vg_shader _shader_planeinf = { - .name = "planeinf", - .link = shader_planeinf_link, - .vs = -{ -.orig_file = "../../shaders/standard.vs", -.static_src = -"layout (location=0) in vec3 a_co;\n" -"layout (location=1) in vec3 a_norm;\n" -"layout (location=2) in vec2 a_uv;\n" -"layout (location=3) in vec4 a_colour;\n" -"layout (location=4) in vec4 a_weights;\n" -"layout (location=5) in ivec4 a_groups;\n" -"\n" -"#line 2 0 \n" -"#line 1 2 \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 3 0 \n" -"\n" -"uniform mat4x3 uMdl;\n" -"uniform mat4 uPv;\n" -"uniform mat4 uPvmPrev;\n" -"\n" -"out vec4 aColour;\n" -"out vec2 aUv;\n" -"out vec3 aNorm;\n" -"out vec3 aCo;\n" -"out vec3 aWorldCo;\n" -"\n" -"void main()\n" -"{\n" -" vec3 world_pos0 = uMdl * vec4( a_co, 1.0 );\n" -" vec4 vproj0 = uPv * vec4( world_pos0, 1.0 );\n" -" vec4 vproj1 = uPvmPrev * vec4( a_co, 1.0 );\n" -"\n" -" vs_motion_out( vproj0, vproj1 );\n" -"\n" -" gl_Position = vproj0;\n" -" aWorldCo = world_pos0;\n" -" aColour = a_colour;\n" -" aUv = a_uv;\n" -" aNorm = mat3(uMdl) * a_norm;\n" -" aCo = a_co;\n" -"}\n" -""}, - .fs = -{ -.orig_file = "../../shaders/planeinf.fs", -.static_src = -"\n" -"#line 2 0 \n" -"\n" -"out vec4 FragColor;\n" -"\n" -"uniform vec3 uCamera;\n" -"uniform vec4 uPlane;\n" -"\n" -"in vec4 aColour;\n" -"in vec2 aUv;\n" -"in vec3 aNorm;\n" -"in vec3 aCo;\n" -"\n" -"float ray_plane( vec3 pos, vec3 dir, vec4 plane )\n" -"{\n" -" float d = dot( plane.xyz, dir );\n" -" float t = dot((plane.xyz*plane.w - pos),plane.xyz) / d;\n" -" return t;\n" -"}\n" -"\n" -"void main()\n" -"{\n" -" float fdist = ray_plane( uCamera, -aNorm, uPlane );\n" -" vec3 world_pos = uCamera - aNorm*fdist;\n" -"\n" -" FragColor = vec4(fract(world_pos*0.1),1.0);\n" -"}\n" -""}, -}; - -static GLuint _uniform_planeinf_uMdl; -static GLuint _uniform_planeinf_uPv; -static GLuint _uniform_planeinf_uPvmPrev; -static GLuint _uniform_planeinf_uCamera; -static GLuint _uniform_planeinf_uPlane; -static void shader_planeinf_uMdl(m4x3f m){ - glUniformMatrix4x3fv( _uniform_planeinf_uMdl, 1, GL_FALSE, (float *)m ); -} -static void shader_planeinf_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_planeinf_uPv, 1, GL_FALSE, (float *)m ); -} -static void shader_planeinf_uPvmPrev(m4x4f m){ - glUniformMatrix4fv( _uniform_planeinf_uPvmPrev, 1, GL_FALSE, (float *)m ); -} -static void shader_planeinf_uCamera(v3f v){ - glUniform3fv( _uniform_planeinf_uCamera, 1, v ); -} -static void shader_planeinf_uPlane(v4f v){ - glUniform4fv( _uniform_planeinf_uPlane, 1, v ); -} -static void shader_planeinf_register(void){ - vg_shader_register( &_shader_planeinf ); -} -static void shader_planeinf_use(void){ glUseProgram(_shader_planeinf.id); } -static void shader_planeinf_link(void){ - _uniform_planeinf_uMdl = glGetUniformLocation( _shader_planeinf.id, "uMdl" ); - _uniform_planeinf_uPv = glGetUniformLocation( _shader_planeinf.id, "uPv" ); - _uniform_planeinf_uPvmPrev = glGetUniformLocation( _shader_planeinf.id, "uPvmPrev" ); - _uniform_planeinf_uCamera = glGetUniformLocation( _shader_planeinf.id, "uCamera" ); - _uniform_planeinf_uPlane = glGetUniformLocation( _shader_planeinf.id, "uPlane" ); -} -#endif /* SHADER_planeinf_H */