Portal:OpenGL Objects/Texture Objects
A Texture is an object that contains one or more images, of a certain dimensionality. These images can be sampled from shaders or access via direct image load/store. The images they store can also be attached to Framebuffer Objects. Storage for texture images can be allocated and updated in numerous ways.
Texture objects are peculiar in a certain sense. When you first bind a texture object to a target, the texture object is permanently associated with that target; it is an error to bind it to another target. This is because the target defines what kind of texture the object represents. The texture's type determines how many images it may have, how many dimensions those images have, etc.
Texture objects store a number of intrinsic parameters that define certain aspects of the texture. They can also store a number of sampling parameters, which define how the texture is accessed via samplers. These parameters can be overridden with Sampler Objects.