-
Notifications
You must be signed in to change notification settings - Fork 0
/
3d_gs.glsl
70 lines (65 loc) · 1.95 KB
/
3d_gs.glsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#version 330
layout (triangles) in;
layout (triangle_strip, max_vertices=6) out;
in vec3 world_pass[];
in vec2 texcoords_pass[];
in float attenuation_pass[];
in vec3 normals_pass[];
in vec3 shadow_position_pass[];
in vec3 toLight_pass[];
in vec3 toEye_pass[];
in float fog_pass[];
out vec3 world;
out float attenuation;
out vec3 normals;
out vec3 shadow_position;
out vec3 toLight;
out vec3 toEye;
out float fog;
out vec2 texcoords;
void main(void)
{
int i;
for (i = 0; i < gl_in.length(); i++)
{
texcoords=texcoords_pass[i];
world=world_pass[i];
attenuation=attenuation_pass[i];
normals=normals_pass[i];
shadow_position=shadow_position_pass[i];
toLight=toLight_pass[i];
toEye=toEye_pass[i];
fog=fog_pass[i];
gl_Position = gl_in[i].gl_Position;/*-vec4(normalize(normals_pass[i]),0)*0.5;*/
EmitVertex();
/*gl_Position=gl_in[i].gl_Position-vec4(normals_pass[i],0)*0.5;
EmitVertex();*/
/*gl_Position = gl_in[i].gl_Position;
EmitVertex();*/
}
EndPrimitive();
for (i = 0; i < gl_in.length(); i++)
{
texcoords=texcoords_pass[i];
world=world_pass[i];
attenuation=attenuation_pass[i];
normals=normals_pass[i];
shadow_position=shadow_position_pass[i];
toLight=toLight_pass[i];
toEye=toEye_pass[i];
fog=fog_pass[i];
gl_Position = gl_in[i].gl_Position;/*-vec4(normalize(normals_pass[i]),0)*0.5;*/
EmitVertex();
/*gl_Position=gl_in[i].gl_Position-vec4(normals_pass[i],0)*0.5;
EmitVertex();*/
/*gl_Position = gl_in[i].gl_Position;
EmitVertex();*/
}
EndPrimitive();
/*vec3 a=(gl_in[0].gl_Position.xyz+gl_in[1].gl_Position.xyz)/2;
vec3 b=(gl_in[0].gl_Position.xyz+gl_in[2].gl_Position.xyz)/2;
vec3 c=(gl_in[1].gl_Position.xyz+gl_in[2].gl_Position.xyz)/2;
gl_Position = vec4((a+b+c)/3,1);
EmitVertex();*/
//EndPrimitive();
}