35 lines
		
	
	
		
			590 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			590 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 330 core
 | |
| 
 | |
| #define MAGNITUDE 0.1
 | |
| 
 | |
| layout (triangles) in;
 | |
| layout (line_strip, max_vertices = 6) out;
 | |
| 
 | |
| uniform float time;
 | |
| 
 | |
| in VS_OUT {
 | |
|   vec3 vert_normal;
 | |
| } gs_in[];
 | |
| 
 | |
| layout (std140) uniform Common {
 | |
|   mat4 projection;
 | |
|   mat4 view;
 | |
|   vec3 camera_position;
 | |
| };
 | |
| 
 | |
| void generate_line(int index) {
 | |
|   gl_Position = projection * gl_in[index].gl_Position;
 | |
|   EmitVertex();
 | |
| 
 | |
|   gl_Position = projection * (gl_in[index].gl_Position + vec4(gs_in[index].vert_normal, 1.0) * MAGNITUDE);
 | |
|   EmitVertex();
 | |
| 
 | |
|   EndPrimitive();
 | |
| }
 | |
| 
 | |
| void main() {
 | |
|   for (int i = 0; i < 3; ++i) {
 | |
|     generate_line(i);
 | |
|   }
 | |
| }
 |