Subversion Repositories gelsvn

Rev

Rev 399 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 399 Rev 401
Line 101... Line 101...
101
"\n"
101
"\n"
102
"void main(void)\n"
102
"void main(void)\n"
103
"{\n"
103
"{\n"
104
"	// calculate the reflection\n"
104
"	// calculate the reflection\n"
105
"	vec3 r = normalize(2.0*dot(-v, n)*n + v);\n"
105
"	vec3 r = normalize(2.0*dot(-v, n)*n + v);\n"
-
 
106
"	vec3 viewer_lightdir = vec3(0, 0, 1.0);\n"
-
 
107
"   float diff  = dot(n,viewer_lightdir);\n"
106
"	\n"
108
"	\n"
107
"	vec2 r2 = normalize(vec2(r[0], r[2]));\n"
109
"	vec2 r2 = normalize(vec2(r[0], r[2]));\n"
108
"	vec2 x = vec2(1, 0);\n"
110
"	vec2 x = vec2(1, 0);\n"
109
"	float angle = acos(dot(r2, x));\n"
111
"	float angle = acos(dot(r2, x));\n"
110
"	\n"
112
"	\n"
111
"	// decide if we hit a white or black ring, based on y value\n"
113
"	// decide if we hit a white or black ring, based on y value\n"
112
"	gl_FragColor = smoothstep(-0.8,0.8,cos(angle*50.0)) * vec4(1.0,1.0,1.0,0.0);\n"
114
"	gl_FragColor = diff * vec4(0.5,0.5,0.4,0.0) + smoothstep(0.8, 1.0,cos(13.0*angle)) * vec4(0.5,0.5,0.6,0.0);\n"
113
"}\n";
115
"}\n";
114
 
116
 
115
const string IsophoteLineRenderer::vss = 
117
const string IsophoteLineRenderer::vss = 
116
"varying vec3 n;\n"
118
"varying vec3 n;\n"
117
"varying vec3 v;\n"
119
"varying vec3 v;\n"
Line 130... Line 132...
130
"varying vec3 n;\n"
132
"varying vec3 n;\n"
131
"varying vec3 v;\n"
133
"varying vec3 v;\n"
132
"\n"
134
"\n"
133
"void main(void)\n"
135
"void main(void)\n"
134
"{\n"
136
"{\n"
135
"	vec3 l = vec3(0, 1,0);\n"
137
"	vec3 viewer_lightdir = vec3(0, 0, 1.0);\n"
-
 
138
"	vec3 isophote_lightdir = viewer_lightdir;\n"
136
"	float angle = acos(dot(n, l));\n"
139
"	float angle = acos(dot(n, isophote_lightdir));\n"
-
 
140
"   float diff  = dot(n,viewer_lightdir);\n"
137
"	\n"
141
"	\n"
138
"	// decide if we hit a white or black ring, based on y value\n"
142
"	// decide if we hit a white or black ring, based on y value\n"
139
"	gl_FragColor = smoothstep(-0.8, 0.8,cos(angle*80.0)) * vec4(1.0,1.0,1.0,0.0);\n"
143
"	gl_FragColor = diff * vec4(0.5,0.5,0.4,0.0) + smoothstep(0.8, 1.0,cos(20.0*angle)) * vec4(0.5,0.5,0.6,0.0);\n"
140
"}\n";
144
"}\n";
141
 
145
 
142
const string MetallicRenderer::vss = 
146
const string MetallicRenderer::vss = 
143
"varying vec3 n;\n"
147
"varying vec3 n;\n"
144
"varying vec3 v;\n"
148
"varying vec3 v;\n"
Line 160... Line 164...
160
"	vec3 e = l;\n"
164
"	vec3 e = l;\n"
161
"	vec3 r = normalize(2.0*dot(l, n)*n - l);\n"
165
"	vec3 r = normalize(2.0*dot(l, n)*n - l);\n"
162
"	\n"
166
"	\n"
163
"	vec4 a = vec4(0.0,0.1,.3,1.0);\n"
167
"	vec4 a = vec4(0.0,0.1,.3,1.0);\n"
164
"	vec4 d = vec4(0.7,0.7,0.0,1.0) * abs(dot(l, n));\n"
168
"	vec4 d = vec4(0.7,0.7,0.0,1.0) * abs(dot(l, n));\n"
165
"	float sr = 0.2*smoothstep(0.3,0.95,dot(r, e));\n"
169
"	float sr = 0.2*smoothstep(0.2,0.95,dot(r, e));\n"
166
"	float sg = 0.1*smoothstep(0.4,0.95,dot(r, e));\n"
170
"	float sg = 0.09*smoothstep(0.4,0.95,dot(r, e));\n"
167
"	float sb = 0.3*smoothstep(0.9,0.95,dot(r, e));\n"
171
"	float sb = 0.07*smoothstep(0.9,0.95,dot(r, e));\n"
168
"	\n"
172
"	\n"
169
"	gl_FragColor =  a + d + vec4(sr,sg,sb,1.0);\n"
173
"	gl_FragColor =  a + d + vec4(sr,sg,sb,1.0);\n"
170
"}\n";
174
"}\n";
171
 
175
 
-
 
176
const string GlazedRenderer::vss = 
-
 
177
"varying vec3 n;\n"
-
 
178
"varying vec3 v;\n"
-
 
179
"\n"
-
 
180
"void main(void)\n"
-
 
181
"{\n"
-
 
182
"	gl_Position = ftransform();\n"
-
 
183
"	v = vec3(gl_ModelViewMatrix * gl_Vertex);\n"
-
 
184
"	n = normalize(gl_NormalMatrix * gl_Normal);\n"
-
 
185
"}\n"
-
 
186
"\n";
-
 
187
 
-
 
188
const string GlazedRenderer::fss =
-
 
189
"varying vec3 n;\n"
-
 
190
"varying vec3 v;\n"
-
 
191
"\n"
-
 
192
"vec4 glazed_shader(vec4 mat_col,  vec4 light_col, vec3 light_dir)\n"
-
 
193
"{\n"
-
 
194
"	vec3 e = normalize(-v);\n"
-
 
195
"	vec3 r = normalize(2.0*dot(e, n)*n - e);\n"
-
 
196
"	float d = max(0.05,dot(light_dir, n));\n"
-
 
197
"	vec4 diff = mat_col * light_col *d; 	\n"
-
 
198
"	vec4 refl = smoothstep(0.7,0.75,dot(r,light_dir)) * light_col;\n"
-
 
199
"	return 0.15*refl + diff;\n"
-
 
200
"}\n"
-
 
201
"\n"
-
 
202
"void main(void)\n"
-
 
203
"{\n"
-
 
204
"	vec4 mat_col = vec4(0.9,1.0,0.4,1.0);\n"
-
 
205
"	\n"
-
 
206
"	vec3 light0_dir = vec3(0.0,1.0,0.0);\n"
-
 
207
"	vec4 light0_col = vec4(0.7,0.9,1.0,1.0);\n"
-
 
208
"	\n"
-
 
209
"	vec3 light1_dir = vec3(0.0,0.0,1.0);\n"
-
 
210
"	vec4 light1_col = vec4(1.0,1.0,0.7,1.0);\n"
-
 
211
"	\n"
-
 
212
"	gl_FragColor = \n"
-
 
213
"	0.5*glazed_shader(mat_col, light0_col, light0_dir)+\n"
-
 
214
"	0.5*glazed_shader(mat_col, light1_col, light1_dir);\n"
-
 
215
"	\n"
-
 
216
"	gl_FragColor.a = 1.0;\n"
-
 
217
"}\n";
-
 
218
 
-
 
219
 
-
 
220