-const char *standard_vertex_src[] =
-{
- "n", "attribute vec3 tangent;\n",
- "n", "attribute vec3 binormal;\n",
- "t|n", "varying vec2 v_texcoord;\n",
- "s", "varying vec3 v_shadowcoord;\n",
- "!lm", "varying vec4 v_color;\n",
- "l!n", "varying vec3 v_normal;\n",
- "l", "varying vec3 v_light_dir;\n",
- "p", "varying vec3 v_eye_dir;\n",
- 0, "void main()\n",
- 0, "{\n",
- 0, "\tvec4 eye_pos = gl_ModelViewMatrix*gl_Vertex;\n",
- 0, "\tgl_Position = gl_ProjectionMatrix*eye_pos;\n",
- "l", "\tvec3 eye_normal = gl_NormalMatrix*gl_Normal;\n",
- "l!n", "\tv_normal = eye_normal;\n",
- "n", "\tvec3 eye_tangent = gl_NormalMatrix*tangent;\n",
- "n", "\tvec3 eye_binormal = gl_NormalMatrix*binormal;\n",
- "l", "\tvec3 eye_light_dir = normalize(gl_LightSource[0].position.xyz-eye_pos.xyz*gl_LightSource[0].position.w);\n",
- "n", "\tv_light_dir = vec3(dot(eye_tangent, eye_light_dir), dot(eye_binormal, eye_light_dir), dot(eye_normal, eye_light_dir));\n",
- "l!n", "\tv_light_dir = eye_light_dir;\n",
- "p", "\tvec3 eye_dir = -normalize(eye_pos.xyz);\n",
- "pn", "\tv_eye_dir = vec3(dot(eye_tangent, eye_dir), dot(eye_binormal, eye_dir), dot(eye_normal, eye_dir));\n",
- "p!n", "\tv_eye_dir = eye_dir;\n",
- "t|n", "\tv_texcoord = gl_MultiTexCoord0.xy;\n",
- "s", "\tv_shadowcoord = vec3(dot(gl_EyePlaneS[3], eye_pos), dot(gl_EyePlaneT[3], eye_pos), dot(gl_EyePlaneR[3], eye_pos));\n",
- "!lm", "\tv_color = gl_Color;\n",
- 0, "}",
- 0, 0
-};
-
-const char *standard_fragment_src[] =