Subversion Repositories gelsvn

Rev

Rev 386 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 386 Rev 397
Line 16... Line 16...
16
namespace 
16
namespace 
17
{
17
{
18
	const string vp = 
18
	const string vp = 
19
	"#version 120\n"
19
	"#version 120\n"
20
	"#extension GL_EXT_gpu_shader4 : enable\n"
20
	"#extension GL_EXT_gpu_shader4 : enable\n"
21
	"\n"
21
	"varying vec4 diffuseIn;\n"
22
	"void main(void)\n"
22
	"void main(void)\n"
23
	"{\n"
23
	"{\n"
-
 
24
	"   float ndot = dot(gl_NormalMatrix*gl_Normal,vec3(0,0,1));\n"
-
 
25
	"   diffuseIn = vec4(0.7,0.9,1,1) * abs(ndot);\n"
24
	"   gl_Position =  ftransform();\n"
26
	"   gl_Position =  ftransform();\n"
25
	"}\n";
27
	"}\n";
26
	
28
	
27
	const string gp = 
29
	const string gp = 
28
	"#version 120\n"
30
	"#version 120\n"
29
	"#extension GL_EXT_gpu_shader4 : enable\n"
31
	"#extension GL_EXT_gpu_shader4 : enable\n"
30
	"\n"
32
	"\n"
31
	"uniform vec2 WIN_SCALE;\n"
33
	"uniform vec2 WIN_SCALE;\n"
-
 
34
	"varying in vec4 diffuseIn[3];\n"
-
 
35
	"varying vec4 diffuse;\n"
32
	"noperspective varying vec3 dist;\n"
36
	"noperspective varying vec3 dist;\n"
33
	"void main(void)\n"
37
	"void main(void)\n"
34
	"{\n"
38
	"{\n"
35
	"  vec2 p0 = WIN_SCALE * gl_PositionIn[0].xy/gl_PositionIn[0].w;\n"
39
	"  vec2 p0 = WIN_SCALE * gl_PositionIn[0].xy/gl_PositionIn[0].w;\n"
36
	"  vec2 p1 = WIN_SCALE * gl_PositionIn[1].xy/gl_PositionIn[1].w;\n"
40
	"  vec2 p1 = WIN_SCALE * gl_PositionIn[1].xy/gl_PositionIn[1].w;\n"
Line 41... Line 45...
41
	"  vec2 v2 = p1-p0;\n"
45
	"  vec2 v2 = p1-p0;\n"
42
	"  float area = abs(v1.x*v2.y - v1.y * v2.x);\n"
46
	"  float area = abs(v1.x*v2.y - v1.y * v2.x);\n"
43
	"\n"
47
	"\n"
44
	"  dist = vec3(area/length(v0),0,0);\n"
48
	"  dist = vec3(area/length(v0),0,0);\n"
45
	"  gl_Position = gl_PositionIn[0];\n"
49
	"  gl_Position = gl_PositionIn[0];\n"
-
 
50
	"  diffuse = diffuseIn[0];\n"
46
	"  EmitVertex();\n"
51
	"  EmitVertex();\n"
47
	"	\n"
52
	"	\n"
48
	"  dist = vec3(0,area/length(v1),0);\n"
53
	"  dist = vec3(0,area/length(v1),0);\n"
49
	"  gl_Position = gl_PositionIn[1];\n"
54
	"  gl_Position = gl_PositionIn[1];\n"
-
 
55
	"  diffuse = diffuseIn[1];\n"
50
	"  EmitVertex();\n"
56
	"  EmitVertex();\n"
51
	"\n"
57
	"\n"
52
	"  dist = vec3(0,0,area/length(v2));\n"
58
	"  dist = vec3(0,0,area/length(v2));\n"
53
	"  gl_Position = gl_PositionIn[2];\n"
59
	"  gl_Position = gl_PositionIn[2];\n"
-
 
60
	"  diffuse = diffuseIn[2];\n"
54
	"  EmitVertex();\n"
61
	"  EmitVertex();\n"
55
	"\n"
62
	"\n"
56
	"  EndPrimitive();\n"
63
	"  EndPrimitive();\n"
57
	"}\n";
64
	"}\n";
58
	
65
	
59
	const string fp =
66
	const string fp =
60
	"#version 120\n"
67
	"#version 120\n"
61
	"#extension GL_EXT_gpu_shader4 : enable\n"
68
	"#extension GL_EXT_gpu_shader4 : enable\n"
62
	"\n"
69
	"\n"
63
	"noperspective varying vec3 dist;\n"
70
	"noperspective varying vec3 dist;\n"
-
 
71
	"varying vec4 diffuse;\n"
64
	"const vec4 WIRE_COL = vec4(1.0,0.0,0.0,1);\n"
72
	"const vec4 WIRE_COL = vec4(1.0,0.0,0.0,1);\n"
65
	"const vec4 FILL_COL = vec4(1,1,1,1);\n"
-
 
66
	"\n"
73
	"\n"
67
	"void main(void)\n"
74
	"void main(void)\n"
68
	"{\n"
75
	"{\n"
69
	"	float d = min(dist[0],min(dist[1],dist[2]));\n"
76
	"	float d = min(dist[0],min(dist[1],dist[2]));\n"
70
	"	// Compute intensity\n"
77
	"	// Compute intensity\n"
71
	"\n"
78
	"\n"
72
	" 	float I = exp2(-2*d*d);\n"
79
	" 	float I = exp2(-2*d*d);\n"
73
	" 	gl_FragColor = I*WIRE_COL + (1.0 - I)*FILL_COL;\n"
80
	" 	gl_FragColor = I*WIRE_COL + (1.0 - I)*diffuse;\n"
74
	"}\n";
81
	"}\n";
75
	
82
	
76
	static GLhandleARB prog_P0;
83
	static GLhandleARB prog_P0;
77
}
84
}
78
 
85