OpenGL ES 2.0 / GLSL 1.0
Texturing
最終更新:
opengles
-
view
Shaders support texturing using at least MAX_VERTEX_TEXTURE_IMAGE_UNITS images for vertex shaders and at least MAX_TEXTURE_IMAGE_UNITS images for fragment shaders.
void ActiveTexture(enum texture);
// texture: [TEXTURE0..TEXTUREi] where i = MAX_COMBINED_TEXTURE_IMAGE_UNITS-1
Texture Image Specification [3.7.1]
void TexImage2D(enum target, int level, int internalformat, sizei width, sizei height, int border, enum format, enum type, void *data);
// target: TEXTURE_2D, TEXTURE_CUBE_MAP_POSITIVE_{X,Y,Z}, TEXTURE_CUBE_MAP_NEGATIVE_{X,Y,Z}
// internalformat: ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA
// format: ALPHA, RGB, RGBA, LUMINANCE, LUMINANCE_ALPHA
// type: UNSIGNED_BYTE, UNSIGNED_SHORT_5_6_5, UNSIGNED_SHORT_4_4_4_4, UNSIGNED_SHORT_5_5_5_1
Conversion from RGBA pixel components to internal texture components:
Base Internal Format | RGBA | Internal Components |
ALPHA | A | A |
LUMINANCE | R | L |
LUMINANCE_ALPHA | R, A | L, A |
RGB | R, G, B | R, G, B |
RGBA | R, G, B, A | R, G, B, A |
Alt. Texture Image Specification Commands [3.7.2]
Texture images may also be specified using image data taken
directly from the framebuffer, and rectangular subregions of
existing texture images may be respecified.
directly from the framebuffer, and rectangular subregions of
existing texture images may be respecified.
void CopyTexImage2D(enum target, int level, enum internalformat, int x, int y, sizei width, sizei height, int border);
// target: TEXTURE_2D, TEXTURE_CUBE_MAP_POSITIVE_{X, Y, Z}, TEXTURE_CUBE_MAP_NEGATIVE_{X, Y, Z}
// internalformat: See TexImage2D
void TexSubImage2D(enum target, int level, int xoffset, int yoffset, sizei width, sizei height, enum format, enum type, void *data);
// target: TEXTURE_CUBE_MAP_POSITIVE_{X, Y, Z}, TEXTURE_CUBE_MAP_NEGATIVE_{X, Y, Z}
// format and type: See TexImage2D
void CopyTexSubImage2D(enum target, int level, int xoffset, int yoffset, int x, int y, sizei width, sizei height);
format and type: See TexImage2D
Compressed Texture Images [3.7.3]
void CompressedTexImage2D(enum target, int level, enum internalformat, sizei width, sizei height, int border, sizei imageSize, void *data);
// target and internalformat: See TexImage2D
void CompressedTexSubImage2D(enum target, int level, int xoffset, int yoffset, sizei width, sizei height, enum format, sizei imageSize, void *data);
// target and internalformat: See TexImage2D
Texture Parameters [3.7.4]
void TexParameter{if}(enum target, enum pname, T param);
void TexParameter{if}v(enum target, enum pname, T params);
// target: TEXTURE_2D, TEXTURE_CUBE_MAP
// pname: TEXTURE_WRAP_{S, T}, TEXTURE_{MIN, MAG}_FILTER
Manual Mipmap Generation [3.7.11]
void GenerateMipmap(enum target);
// target: TEXTURE_2D, TEXTURE_CUBE_MAP
Texture Objects [3.7.13]
void BindTexture(enum target, uint texture);
void DeleteTextures(sizei n, uint *textures);
void GenTextures(sizei n, uint *textures);
Enumerated Queries [6.1.3]
void GetTexParameter{if}v(enum target, enum value, T data);
// target: TEXTURE_2D, TEXTURE_CUBE_MAP
// value: TEXTURE_WRAP_{S, T}, TEXTURE_{MIN, MAG}_FILTER
Texture Queries [6.1.4]
boolean IsTexture(uint texture);