1GLTEXENV(3G) OpenGL Manual GLTEXENV(3G)
2
3
4
6 glTexEnv - set texture environment parameters
7
9 void glTexEnvf(GLenum target, GLenum pname, GLfloat param);
10
11 void glTexEnvi(GLenum target, GLenum pname, GLint param);
12
14 target
15 Specifies a texture environment. May be GL_TEXTURE_ENV,
16 GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
17
18 pname
19 Specifies the symbolic name of a single-valued texture environment
20 parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS,
21 GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB,
22 GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA,
23 GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB,
24 GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA,
25 GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
26
27 param
28 Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED,
29 GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE,
30 GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR,
31 GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
32 GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite
33 texture coordinate replacement, a single floating-point value for
34 the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when
35 specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
36
38 void glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params);
39
40 void glTexEnviv(GLenum target, GLenum pname, const GLint * params);
41
43 target
44 Specifies a texture environment. May be either GL_TEXTURE_ENV, or
45 GL_TEXTURE_FILTER_CONTROL.
46
47 pname
48 Specifies the symbolic name of a texture environment parameter.
49 Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, or
50 GL_TEXTURE_LOD_BIAS.
51
52 params
53 Specifies a pointer to a parameter array that contains either a
54 single symbolic constant, single floating-point number, or an RGBA
55 color.
56
58 A texture environment specifies how texture values are interpreted when
59 a fragment is textured. When target is GL_TEXTURE_FILTER_CONTROL, pname
60 must be GL_TEXTURE_LOD_BIAS. When target is GL_TEXTURE_ENV, pname can
61 be GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_COMBINE_RGB,
62 GL_COMBINE_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, GL_SRC0_RGB,
63 GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, or
64 GL_SRC2_ALPHA.
65
66 If pname is GL_TEXTURE_ENV_MODE, then params is (or points to) the
67 symbolic name of a texture function. Six texture functions may be
68 specified: GL_ADD, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, or
69 GL_COMBINE.
70
71 The following table shows the correspondence of filtered texture values
72 R t, G t, B t, A t, L t, I t to texture source components. C s and A s
73 are used by the texture functions described below.
74
75 ┌───────────────────┬────────────────────────────┬───────────────────────────┐
76 │Texture Base │ C │ A │
77 │Internal Format │ s │ s │
78 ├───────────────────┼────────────────────────────┼───────────────────────────┤
79 │GL_ALPHA │ (0, 0, 0) │ A │
80 │ │ │ t │
81 ├───────────────────┼────────────────────────────┼───────────────────────────┤
82 │GL_LUMINANCE │ ( │ 1 │
83 │ │ L │ │
84 │ │ t, │ │
85 │ │ L │ │
86 │ │ t, │ │
87 │ │ L │ │
88 │ │ t │ │
89 │ │ ) │ │
90 ├───────────────────┼────────────────────────────┼───────────────────────────┤
91 │GL_LUMINANCE_ALPHA │ ( │ A │
92 │ │ L │ t │
93 │ │ t, │ │
94 │ │ L │ │
95 │ │ t, │ │
96 │ │ L │ │
97 │ │ t │ │
98 │ │ ) │ │
99 ├───────────────────┼────────────────────────────┼───────────────────────────┤
100 │GL_INTENSITY │ ( │ I │
101 │ │ I │ t │
102 │ │ t, │ │
103 │ │ I │ │
104 │ │ t, │ │
105 │ │ I │ │
106 │ │ t │ │
107 │ │ ) │ │
108 ├───────────────────┼────────────────────────────┼───────────────────────────┤
109 │GL_RGB │ ( │ 1 │
110 │ │ R │ │
111 │ │ t, │ │
112 │ │ G │ │
113 │ │ t, │ │
114 │ │ B │ │
115 │ │ t │ │
116 │ │ ) │ │
117 ├───────────────────┼────────────────────────────┼───────────────────────────┤
118 │GL_RGBA │ ( │ A │
119 │ │ R │ t │
120 │ │ t, │ │
121 │ │ G │ │
122 │ │ t, │ │
123 │ │ B │ │
124 │ │ t │ │
125 │ │ ) │ │
126 └───────────────────┴────────────────────────────┴───────────────────────────┘
127
128 A texture function acts on the fragment to be textured using the
129 texture image value that applies to the fragment (see glTexParameter())
130 and produces an RGBA color for that fragment. The following table shows
131 how the RGBA color is produced for each of the first five texture
132 functions that can be chosen. C is a triple of color values (RGB) and
133 A is the associated alpha value. RGBA values extracted from a texture
134 image are in the range [0,1]. The subscript p refers to the color
135 computed from the previous texture stage (or the incoming fragment if
136 processing texture stage 0), the subscript s to the texture source
137 color, the subscript c to the texture environment color, and the
138 subscript v indicates a value produced by the texture function.
139
140 ┌─────────────────┬────────────────────────────────┬────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────────────┬────────────────────────────────────────────┬────────────────────────────────────┐
141 │ Texture │ Value │ GL_REPLACE │ GL_MODULATE │ GL_DECAL │ GL_BLEND │ GL_ADD │
142 │ Base │ │ Function │ Function │ Function │ Function │ Function │
143 │ Internal │ │ │ │ │ │ │
144 │ Format │ │ │ │ │ │ │
145 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
146 │ GL_ALPHA │C │C │ C │ undefined │ C │ C │
147 │ │ v│ p│ p │ │ p │ p │
148 │ │ │ │ │ │ │ │
149 │ │ =│ │ │ │ │ │
150 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
151 │ │A │A │A │ │ A │A │
152 │ │ v│ s│ p│ │ v │ p│
153 │ │ │ │ │ │ │ │
154 │ │ =│ │ │ │ = │ │
155 │ │ │ │ A│ │ │ A│
156 │ │ │ │ s│ │ A │ s│
157 │ │ │ │ │ │ p │ │
158 │ │ │ │ │ │ │ │
159 │ │ │ │ │ │ │ │
160 │ │ │ │ │ │ A │ │
161 │ │ │ │ │ │ s │ │
162 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
163 │ GL_LUMINANCE │C │C │C │ undefined │C │C │
164 │ │ v│ s│ p│ │ p │ p│
165 │ │ │ │ │ │ │ │
166 │ │ =│ │ │ │ │ +│
167 │ │ │ │ C│ │ │ C│
168 │ │ │ │ s│ │ │ s│
169 │ │ │ │ │ │ 1│ │
170 │ │ │ │ │ │ -│ │
171 │ │ │ │ │ │ C│ │
172 │ │ │ │ │ │ s│ │
173 │ │ │ │ │ │ │ │
174 │ │ │ │ │ │ │ │
175 │ │ │ │ │ │ │ │
176 │ │ │ │ │ │ + │ │
177 │ │ │ │ │ │ C │ │
178 │ │ │ │ │ │ c │ │
179 │ │ │ │ │ │ │ │
180 │ │ │ │ │ │ │ │
181 │ │ │ │ │ │ C │ │
182 │ │ │ │ │ │ s │ │
183 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
184 │ (or 1) │A │A │ A │ │ A │ A │
185 │ │ v│ p│ p │ │ p │ p │
186 │ │ │ │ │ │ │ │
187 │ │ =│ │ │ │ │ │
188 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
189 │GL_LUMINANCE_ALPHA│C │C │C │ undefined │C │C │
190 │ │ v│ s│ p│ │ p │ p│
191 │ │ │ │ │ │ │ │
192 │ │ =│ │ │ │ │ +│
193 │ │ │ │ C│ │ │ C│
194 │ │ │ │ s│ │ │ s│
195 │ │ │ │ │ │ 1│ │
196 │ │ │ │ │ │ -│ │
197 │ │ │ │ │ │ C│ │
198 │ │ │ │ │ │ s│ │
199 │ │ │ │ │ │ │ │
200 │ │ │ │ │ │ │ │
201 │ │ │ │ │ │ │ │
202 │ │ │ │ │ │ + │ │
203 │ │ │ │ │ │ C │ │
204 │ │ │ │ │ │ c │ │
205 │ │ │ │ │ │ │ │
206 │ │ │ │ │ │ │ │
207 │ │ │ │ │ │ C │ │
208 │ │ │ │ │ │ s │ │
209 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
210 │ (or 2) │A │A │A │ │ A │A │
211 │ │ v│ s│ p│ │ p │ p│
212 │ │ │ │ │ │ │ │
213 │ │ =│ │ │ │ │ │
214 │ │ │ │ A│ │ A │ A│
215 │ │ │ │ s│ │ s │ s│
216 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
217 │ GL_INTENSITY │C │C │C │ undefined │C │C │
218 │ │ v│ s│ p│ │ p │ p│
219 │ │ │ │ │ │ │ │
220 │ │ =│ │ │ │ │ +│
221 │ │ │ │ C│ │ │ C│
222 │ │ │ │ s│ │ │ s│
223 │ │ │ │ │ │ 1│ │
224 │ │ │ │ │ │ -│ │
225 │ │ │ │ │ │ C│ │
226 │ │ │ │ │ │ s│ │
227 │ │ │ │ │ │ │ │
228 │ │ │ │ │ │ │ │
229 │ │ │ │ │ │ │ │
230 │ │ │ │ │ │ + │ │
231 │ │ │ │ │ │ C │ │
232 │ │ │ │ │ │ c │ │
233 │ │ │ │ │ │ │ │
234 │ │ │ │ │ │ │ │
235 │ │ │ │ │ │ C │ │
236 │ │ │ │ │ │ s │ │
237 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
238 │ │A │A │A │ │A │A │
239 │ │ v│ s│ p│ │ p │ p│
240 │ │ │ │ │ │ │ │
241 │ │ =│ │ │ │ │ +│
242 │ │ │ │ A│ │ │ A│
243 │ │ │ │ s│ │ │ s│
244 │ │ │ │ │ │ 1│ │
245 │ │ │ │ │ │ -│ │
246 │ │ │ │ │ │ A│ │
247 │ │ │ │ │ │ s│ │
248 │ │ │ │ │ │ │ │
249 │ │ │ │ │ │ │ │
250 │ │ │ │ │ │ │ │
251 │ │ │ │ │ │ + │ │
252 │ │ │ │ │ │ A │ │
253 │ │ │ │ │ │ c │ │
254 │ │ │ │ │ │ │ │
255 │ │ │ │ │ │ │ │
256 │ │ │ │ │ │ A │ │
257 │ │ │ │ │ │ s │ │
258 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
259 │ GL_RGB │C │C │C │ C │C │C │
260 │ │ v│ s│ p│ s │ p │ p│
261 │ │ │ │ │ │ │ │
262 │ │ =│ │ │ │ │ +│
263 │ │ │ │ C│ │ │ C│
264 │ │ │ │ s│ │ │ s│
265 │ │ │ │ │ │ 1│ │
266 │ │ │ │ │ │ -│ │
267 │ │ │ │ │ │ C│ │
268 │ │ │ │ │ │ s│ │
269 │ │ │ │ │ │ │ │
270 │ │ │ │ │ │ │ │
271 │ │ │ │ │ │ │ │
272 │ │ │ │ │ │ + │ │
273 │ │ │ │ │ │ C │ │
274 │ │ │ │ │ │ c │ │
275 │ │ │ │ │ │ │ │
276 │ │ │ │ │ │ │ │
277 │ │ │ │ │ │ C │ │
278 │ │ │ │ │ │ s │ │
279 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
280 │ (or 3) │A │A │ A │ A │ A │ A │
281 │ │ v│ p│ p │ p │ p │ p │
282 │ │ │ │ │ │ │ │
283 │ │ =│ │ │ │ │ │
284 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
285 │ GL_RGBA │C │C │C │C │C │C │
286 │ │ v│ s│ p│ p │ p │ p│
287 │ │ │ │ │ │ │ │
288 │ │ =│ │ │ │ │ +│
289 │ │ │ │ C│ │ │ C│
290 │ │ │ │ s│ │ │ s│
291 │ │ │ │ │ 1│ 1│ │
292 │ │ │ │ │ -│ -│ │
293 │ │ │ │ │ A│ C│ │
294 │ │ │ │ │ s│ s│ │
295 │ │ │ │ │ │ │ │
296 │ │ │ │ │ │ │ │
297 │ │ │ │ │ │ │ │
298 │ │ │ │ │ + │ + │ │
299 │ │ │ │ │ C │ C │ │
300 │ │ │ │ │ s │ c │ │
301 │ │ │ │ │ │ │ │
302 │ │ │ │ │ │ │ │
303 │ │ │ │ │ A │ C │ │
304 │ │ │ │ │ s │ s │ │
305 ├─────────────────┼────────────────────────────────┼────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────────────┼────────────────────────────────────┤
306 │ (or 4) │A │A │A │ A │ A │A │
307 │ │ v│ s│ p│ p │ p │ p│
308 │ │ │ │ │ │ │ │
309 │ │ =│ │ │ │ │ │
310 │ │ │ │ A│ │ A │ A│
311 │ │ │ │ s│ │ s │ s│
312 └─────────────────┴────────────────────────────────┴────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────────────┴────────────────────────────────────────────┴────────────────────────────────────┘
313
314 If pname is GL_TEXTURE_ENV_MODE, and params is GL_COMBINE, the form of
315 the texture function depends on the values of GL_COMBINE_RGB and
316 GL_COMBINE_ALPHA.
317
318 The following describes how the texture sources, as specified by
319 GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA,
320 and GL_SRC2_ALPHA, are combined to produce a final texture color. In
321 the following tables, GL_SRC0_c is represented by Arg0, GL_SRC1_c is
322 represented by Arg1, and GL_SRC2_c is represented by Arg2.
323
324 GL_COMBINE_RGB accepts any of GL_REPLACE, GL_MODULATE, GL_ADD,
325 GL_ADD_SIGNED, GL_INTERPOLATE, GL_SUBTRACT, GL_DOT3_RGB, or
326 GL_DOT3_RGBA.
327
328 ┌───────────────────────────────────────┬──────────────────────────────────────────────────────────────────┐
329 │ │ │
330 │ GL_COMBINE_RGB │ Texture │
331 │ │ Function │
332 │ │ │
333 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
334 │GL_REPLACE │ Arg0 │
335 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
336 │GL_MODULATE │ Arg0 │
337 │ │ × │
338 │ │ Arg1 │
339 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
340 │GL_ADD │ Arg0 │
341 │ │ + │
342 │ │ Arg1 │
343 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
344 │GL_ADD_SIGNED │ Arg0 │
345 │ │ + │
346 │ │ Arg1 │
347 │ │ - │
348 │ │ 0.5 │
349 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
350 │GL_INTERPOLATE │ Arg0 │
351 │ │ × │
352 │ │ Arg2 │
353 │ │ │
354 │ │ + │
355 │ │ │
356 │ │ Arg1 │
357 │ │ × │
358 │ │ │
359 │ │ │
360 │ │ 1 │
361 │ │ - │
362 │ │ Arg2 │
363 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
364 │GL_SUBTRACT │ Arg0 │
365 │ │ - │
366 │ │ Arg1 │
367 ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────┤
368 │GL_DOT3_RGB │ 4 │
369 │ or │ × │
370 │ GL_DOT3_RGBA │ │
371 │ │ │
372 │ │ │
373 │ │ │
374 │ │ │
375 │ │ │
376 │ │ │
377 │ │ Arg0 │
378 │ │ r │
379 │ │ │
380 │ │ │
381 │ │ - │
382 │ │ 0.5 │
383 │ │ │
384 │ │ │
385 │ │ × │
386 │ │ │
387 │ │ │
388 │ │ │
389 │ │ Arg1 │
390 │ │ r │
391 │ │ │
392 │ │ │
393 │ │ - │
394 │ │ 0.5 │
395 │ │ │
396 │ │ │
397 │ │ │
398 │ │ │
399 │ │ + │
400 │ │ │
401 │ │ │
402 │ │ │
403 │ │ │
404 │ │ │
405 │ │ Arg0 │
406 │ │ g │
407 │ │ │
408 │ │ │
409 │ │ - │
410 │ │ 0.5 │
411 │ │ │
412 │ │ │
413 │ │ × │
414 │ │ │
415 │ │ │
416 │ │ │
417 │ │ Arg1 │
418 │ │ g │
419 │ │ │
420 │ │ │
421 │ │ - │
422 │ │ 0.5 │
423 │ │ │
424 │ │ │
425 │ │ │
426 │ │ │
427 │ │ + │
428 │ │ │
429 │ │ │
430 │ │ │
431 │ │ │
432 │ │ │
433 │ │ Arg0 │
434 │ │ b │
435 │ │ │
436 │ │ │
437 │ │ - │
438 │ │ 0.5 │
439 │ │ │
440 │ │ │
441 │ │ × │
442 │ │ │
443 │ │ │
444 │ │ │
445 │ │ Arg1 │
446 │ │ b │
447 │ │ │
448 │ │ │
449 │ │ - │
450 │ │ 0.5 │
451 └───────────────────────────────────────┴──────────────────────────────────────────────────────────────────┘
452
453 The scalar results for GL_DOT3_RGB and GL_DOT3_RGBA are placed into
454 each of the 3 (RGB) or 4 (RGBA) components on output.
455
456 Likewise, GL_COMBINE_ALPHA accepts any of GL_REPLACE, GL_MODULATE,
457 GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, or GL_SUBTRACT. The following
458 table describes how alpha values are combined:
459
460 ┌─────────────────────────────────────────┬──────────────────────────────────────────────────┐
461 │ │ │
462 │ GL_COMBINE_ALPHA │ Texture │
463 │ │ Function │
464 │ │ │
465 ├─────────────────────────────────────────┼──────────────────────────────────────────────────┤
466 │GL_REPLACE │ Arg0 │
467 ├─────────────────────────────────────────┼──────────────────────────────────────────────────┤
468 │GL_MODULATE │ Arg0 │
469 │ │ × │
470 │ │ Arg1 │
471 ├─────────────────────────────────────────┼──────────────────────────────────────────────────┤
472 │GL_ADD │ Arg0 │
473 │ │ + │
474 │ │ Arg1 │
475 ├─────────────────────────────────────────┼──────────────────────────────────────────────────┤
476 │GL_ADD_SIGNED │ Arg0 │
477 │ │ + │
478 │ │ Arg1 │
479 │ │ - │
480 │ │ 0.5 │
481 ├─────────────────────────────────────────┼──────────────────────────────────────────────────┤
482 │GL_INTERPOLATE │ Arg0 │
483 │ │ × │
484 │ │ Arg2 │
485 │ │ │
486 │ │ + │
487 │ │ │
488 │ │ Arg1 │
489 │ │ × │
490 │ │ │
491 │ │ │
492 │ │ 1 │
493 │ │ - │
494 │ │ Arg2 │
495 ├─────────────────────────────────────────┼──────────────────────────────────────────────────┤
496 │GL_SUBTRACT │ Arg0 │
497 │ │ - │
498 │ │ Arg1 │
499 └─────────────────────────────────────────┴──────────────────────────────────────────────────┘
500
501 In the following tables, the value C s represents the color sampled
502 from the currently bound texture, C c represents the constant
503 texture-environment color, C f represents the primary color of the
504 incoming fragment, and C p represents the color computed from the
505 previous texture stage or C f if processing texture stage 0. Likewise,
506 A s, A c, A f, and A p represent the respective alpha values.
507
508 The following table describes the values assigned to Arg0, Arg1, and
509 Arg2 based upon the RGB sources and operands:
510
511 ┌────────────────────────────────────┬─────────────────────────────────────────┬───────────────────────────────────────┐
512 │ │ │ │
513 │ GL_SRCn_RGB │ GL_OPERANDn_RGB │ Argument │
514 │ │ │ Value │
515 │ │ │ │
516 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
517 │GL_TEXTURE │ GL_SRC_COLOR │ C │
518 │ │ │ s │
519 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
520 │ │ GL_ONE_MINUS_SRC_COLOR │ 1 │
521 │ │ │ - │
522 │ │ │ │
523 │ │ │ C │
524 │ │ │ s │
525 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
526 │ │ GL_SRC_ALPHA │ A │
527 │ │ │ s │
528 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
529 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
530 │ │ │ - │
531 │ │ │ │
532 │ │ │ A │
533 │ │ │ s │
534 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
535 │GL_TEXTUREn │ GL_SRC_COLOR │ C │
536 │ │ │ s │
537 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
538 │ │ GL_ONE_MINUS_SRC_COLOR │ 1 │
539 │ │ │ - │
540 │ │ │ │
541 │ │ │ C │
542 │ │ │ s │
543 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
544 │ │ GL_SRC_ALPHA │ A │
545 │ │ │ s │
546 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
547 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
548 │ │ │ - │
549 │ │ │ │
550 │ │ │ A │
551 │ │ │ s │
552 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
553 │GL_CONSTANT │ GL_SRC_COLOR │ C │
554 │ │ │ c │
555 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
556 │ │ GL_ONE_MINUS_SRC_COLOR │ 1 │
557 │ │ │ - │
558 │ │ │ │
559 │ │ │ C │
560 │ │ │ c │
561 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
562 │ │ GL_SRC_ALPHA │ A │
563 │ │ │ c │
564 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
565 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
566 │ │ │ - │
567 │ │ │ │
568 │ │ │ A │
569 │ │ │ c │
570 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
571 │GL_PRIMARY_COLOR │ GL_SRC_COLOR │ C │
572 │ │ │ f │
573 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
574 │ │ GL_ONE_MINUS_SRC_COLOR │ 1 │
575 │ │ │ - │
576 │ │ │ │
577 │ │ │ C │
578 │ │ │ f │
579 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
580 │ │ GL_SRC_ALPHA │ A │
581 │ │ │ f │
582 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
583 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
584 │ │ │ - │
585 │ │ │ │
586 │ │ │ A │
587 │ │ │ f │
588 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
589 │GL_PREVIOUS │ GL_SRC_COLOR │ C │
590 │ │ │ p │
591 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
592 │ │ GL_ONE_MINUS_SRC_COLOR │ 1 │
593 │ │ │ - │
594 │ │ │ │
595 │ │ │ C │
596 │ │ │ p │
597 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
598 │ │ GL_SRC_ALPHA │ A │
599 │ │ │ p │
600 ├────────────────────────────────────┼─────────────────────────────────────────┼───────────────────────────────────────┤
601 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
602 │ │ │ - │
603 │ │ │ │
604 │ │ │ A │
605 │ │ │ p │
606 └────────────────────────────────────┴─────────────────────────────────────────┴───────────────────────────────────────┘
607
608 For GL_TEXTUREn sources, C s and A s represent the color and alpha,
609 respectively, produced from texture stage n.
610
611 The follow table describes the values assigned to Arg0, Arg1, and Arg2
612 based upon the alpha sources and operands:
613
614 ┌──────────────────────────────────────┬───────────────────────────────────────────┬───────────────────────────────────────┐
615 │ │ │ │
616 │ GL_SRCn_ALPHA │ GL_OPERANDn_ALPHA │ Argument │
617 │ │ │ Value │
618 │ │ │ │
619 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
620 │GL_TEXTURE │ GL_SRC_ALPHA │ A │
621 │ │ │ s │
622 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
623 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
624 │ │ │ - │
625 │ │ │ │
626 │ │ │ A │
627 │ │ │ s │
628 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
629 │GL_TEXTUREn │ GL_SRC_ALPHA │ A │
630 │ │ │ s │
631 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
632 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
633 │ │ │ - │
634 │ │ │ │
635 │ │ │ A │
636 │ │ │ s │
637 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
638 │GL_CONSTANT │ GL_SRC_ALPHA │ A │
639 │ │ │ c │
640 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
641 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
642 │ │ │ - │
643 │ │ │ │
644 │ │ │ A │
645 │ │ │ c │
646 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
647 │GL_PRIMARY_COLOR │ GL_SRC_ALPHA │ A │
648 │ │ │ f │
649 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
650 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
651 │ │ │ - │
652 │ │ │ │
653 │ │ │ A │
654 │ │ │ f │
655 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
656 │GL_PREVIOUS │ GL_SRC_ALPHA │ A │
657 │ │ │ p │
658 ├──────────────────────────────────────┼───────────────────────────────────────────┼───────────────────────────────────────┤
659 │ │ GL_ONE_MINUS_SRC_ALPHA │ 1 │
660 │ │ │ - │
661 │ │ │ │
662 │ │ │ A │
663 │ │ │ p │
664 └──────────────────────────────────────┴───────────────────────────────────────────┴───────────────────────────────────────┘
665
666 The RGB and alpha results of the texture function are multipled by the
667 values of GL_RGB_SCALE and GL_ALPHA_SCALE, respectively, and clamped to
668 the range 0 1.
669
670 If pname is GL_TEXTURE_ENV_COLOR, params is a pointer to an array that
671 holds an RGBA color consisting of four values. Integer color components
672 are interpreted linearly such that the most positive integer maps to
673 1.0, and the most negative integer maps to -1.0. The values are clamped
674 to the range [0,1] when they are specified. C c takes these four
675 values.
676
677 If pname is GL_TEXTURE_LOD_BIAS, the value specified is added to the
678 texture level-of-detail parameter, that selects which mipmap, or
679 mipmaps depending upon the selected GL_TEXTURE_MIN_FILTER, will be
680 sampled.
681
682 GL_TEXTURE_ENV_MODE defaults to GL_MODULATE and GL_TEXTURE_ENV_COLOR
683 defaults to (0, 0, 0, 0).
684
685 If target is GL_POINT_SPRITE and pname is GL_COORD_REPLACE, the boolean
686 value specified is used to either enable or disable point sprite
687 texture coordinate replacement. The default value is GL_FALSE.
688
690 GL_REPLACE may only be used if the GL version is 1.1 or greater.
691
692 GL_TEXTURE_FILTER_CONTROL and GL_TEXTURE_LOD_BIAS may only be used if
693 the GL version is 1.4 or greater.
694
695 GL_COMBINE mode and its associated constants may only be used if the GL
696 version is 1.3 or greater.
697
698 GL_TEXTUREn may only be used if the GL version is 1.4 or greater.
699
700 Internal formats other than 1, 2, 3, or 4 may only be used if the GL
701 version is 1.1 or greater.
702
703 For OpenGL versions 1.3 and greater, or when the ARB_multitexture
704 extension is supported, glTexEnv controls the texture environment for
705 the current active texture unit, selected by glActiveTexture().
706
707 GL_POINT_SPRITE and GL_COORD_REPLACE are available only if the GL
708 version is 2.0 or greater.
709
711 GL_INVALID_ENUM is generated when target or pname is not one of the
712 accepted defined values, or when params should have a defined constant
713 value (based on the value of pname) and does not.
714
715 GL_INVALID_VALUE is generated if the params value for GL_RGB_SCALE or
716 GL_ALPHA_SCALE are not one of 1.0, 2.0, or 4.0.
717
718 GL_INVALID_OPERATION is generated if glTexEnv is executed between the
719 execution of glBegin() and the corresponding execution of glEnd().
720
722 glGetTexEnv()
723
725 glActiveTexture(), glCopyPixels(), glCopyTexImage1D(),
726 glCopyTexImage2D(), glCopyTexSubImage1D(), glCopyTexSubImage2D(),
727 glCopyTexSubImage3D(), glTexImage1D(), glTexImage2D(), glTexImage3D(),
728 glTexParameter(), glTexSubImage1D(), glTexSubImage2D(),
729 glTexSubImage3D()
730
732 Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed
733 under the SGI Free Software B License. For details, see
734 http://oss.sgi.com/projects/FreeB/.
735
737 opengl.org
738
739
740
741opengl.org 06/10/2014 GLTEXENV(3G)