... well.1
The phrase 3D texturing is often used in touting new graphics hardware and software products. The common usage of the phrase is to indicate support for applying a 2D texture to 3D geometry. OpenGL's specification would call that merely 2D texturing. OpenGL assumes that any type of texturing can be applied to arbitrary 3D geometry so the dimensionality of texture mapping (1D, 2D, or 3D) is based on the dimensionality of the texture image. A 2D texture image (one with width and height) is used for 2D texturing. A 3D image (one with width, height, and depth) is required for 3D texturing in the OpenGL technical sense of the phrase. Unfortunately, the market continues to use the phrase 3D texturing to mean just GL_ TEXTURE_2D. To avoid confusion, the phrase volumetric texturing unambiguously refers to what OpenGL technically calls 3D texturing. Be aware that the phrases solid texture and hypertexture are also used in the graphics literature to denote 3D texture images. One more bit of trivia: the term voxel is often used to denote the texels of a 3D texture image.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... sampled.2
The clamp to edge functionality is also available through the SGIS_texture_edge_clamp extension.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... SIZE="-1">gluBuild3DMipmaps()3
Introduced in GLU version 1.3.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... levels.4
This same functionality for controlling texture level of detail is also available through the SGIS_texture_lod extension.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... environment5
Introduced by OpenGL 1.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... textures.6
While the SGIX_list_priority extension does provide a way to prioritize display lists, the concept of querying texture residency, while important to texture objects, is not applicable to display lists.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... CLAMP_TO_EDGE.7
The same functionality is also available through the SGIS_texture_edge extension.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... SIZE="-1">NV_texgen_reflection_vector8
The suffix NV indicates this extension was specified by NVIDIA Corporation. At the time of writing, NV_texgen_reflection_vector is implemented in NVIDIA's OpenGL and Mesa 3.1, an OpenGL-like API.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... equation.9
Many texts [30,31,85] present this reflection vector formula with a sign reversed from the form shown in Equation 7. It is the still the same fundamental formula; the difference is simply one of convention. The OpenGL $\vec{U}$ vector points from the eye to the surface vertex (i.e., an eye-space position), while many texts present the formula instead considering a light vector pointing from the surface to a light.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... portability:10
According to Microsoft's documentation, the pre-defined _WIN32 macro is ``Defined for applications for Win32. Always defined.'' This macro is therefore the most automatic way to conditionally compile code just for Win32 programs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ordering.11
The functionality of the EXT_bgra extension is now an official part of OpenGL 1.2. The BGRA color component ordering is important because it matches the color component ordering of Win32's GDI 2D API and therefore many PC-based file formats use it.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.