Texture memory is a region of read-only computer memory that has been specifically set aside for fast access to images intended to be used as texture surfaces in computer graphics, usually three-dimensional (3D) renderings. The most effective type of texture memory exists in dedicated memory chips on a video card that has a processor separate from the main one within the computer. There are times when a graphics card does not have enough memory. In these cases, the random access memory (RAM) of a computer or even space on the hard drive can be used as virtual texture memory, although performance will be negatively affected in those cases. The larger the amount of texture memory available, the larger and more detailed the images stored in it can be, providing for a more realistic graphical rendering.
When a 3D image is rendered on a computer screen, it is a process that takes several steps. One of the final steps is applying a texture to the geometry of the object being rendered. This texture is a two-dimensional (2D) image stored in memory and provides the color, finish and details to be applied to the polygon faces of the 3D object. Keeping the 2D image in texture memory allows it to be accessed quickly, which can help to improve the speed in which the scene is rendered, allowing for smooth motion and animation.
When texture memory is located on a dedicated graphics card, also known as a graphics processing unit (GPU), it has several advantages over other types. The largest is that the GPU can optimize the way the memory is accessed, allowing programs to use the memory in a way that is intuitive for 3D programming. The other benefit is that, because the GPU is designed to process 3D calculations fast and efficiently, it will have local access to the texture images, allowing it to complete a scene much faster than having to use memory stored in another physical location within the computer.
There are other uses for texture memory outside of 3D graphics. Photo editing software can use the memory to store large images so they can be manipulated and displayed quickly. The special optimizations of the memory can be used by programs that need to make many floating-point calculations quickly. The space also can be used to store arbitrary data in a location where they can be quickly accessed without affecting the amount of primary system memory.