vertex_shader "attribute float offset; attribute vec3 direction; void main() { vec4 eye_pos = gl_ModelViewMatrix*gl_Vertex; vec3 eye_dir = gl_NormalMatrix*direction; vec4 offset_dir = normalize(vec4(-eye_dir.y, eye_dir.x, 0.0, 0.0)); gl_Position = gl_ProjectionMatrix*(eye_pos+offset_dir*offset); }"; fragment_shader "uniform float fade; void main() { gl_FragColor = vec4(30.0, 30.0, 50.0, fade); }"; attribute 1 "offset"; attribute 2 "direction";