| Name |
| |
| NV_deep_texture3D |
| |
| Name Strings |
| |
| GL_NV_deep_texture3D |
| |
| Contact |
| |
| Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com) |
| |
| Status |
| |
| Shipping. |
| |
| Version |
| |
| Last Modified Date: April 12, 2010 |
| Revision: 1 |
| |
| Number |
| |
| 424 |
| |
| Dependencies |
| |
| This extension is written against the OpenGL 3.2 specification (Core |
| Profile). |
| |
| Overview |
| |
| Some applications require 3D textures that have a significant number of |
| slices, but less resolution in width and height. In the current spec, the |
| maximum value for the size of all three dimensions is specified by a |
| single value. This extension adds a second set of limits against which 3D |
| textures can be checked if an application needs deeper textures than would |
| be allowed by the symmetric texture limits. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv |
| and GetFloatv: |
| |
| MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 |
| MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 |
| |
| Additions to Chapter 2 of the OpenGL 3.2 Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the OpenGL 3.2 Specification (Rasterization) |
| |
| (modify 3.8.1 Texture Image Specification on p. 141 |
| |
| (add to the discussion of the maximum allowable size of a 3D texture) |
| |
| If the width and height of the texel array for a three-dimensional texture |
| are both less than pow(2, j-lod) + 2Bt where j is the log base 2 of |
| MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV, then the depth may be up to pow(2, |
| m-lod) + 2Bt where m is the log base 2 of MAX_DEEP_3D_TEXTURE_DEPTH_NV. |
| The error INVALID_VALUE is generated if the specified image is too large |
| to be stored under any conditions. |
| |
| Additions to Chapter 4 of the OpenGL 3.2 Specification (Per-Fragment Operations |
| and the Frame Buffer) |
| |
| (modify the discussion of FramebufferTexture in 4.4 on p. 228) |
| |
| If textarget is TEXTURE_3D, then level must be greater than or equal to zero |
| and less than or equal to log2 of the larger of the values of |
| MAX_3D_TEXTURE_SIZE and MAX_DEEP_3D_TEXTURE_DEPTH_NV. |
| |
| ... |
| |
| layer specifies the layer of a 2-dimensional image within a 3-dimensional |
| texture. An INVALID_VALUE error is generated if layer is larger than the |
| larger of the value of MAX_DEEP_3D_TEXTURE_DEPTH_NV-1 and the value of |
| MAX_3D_TEXTURE_SIZE-1. |
| |
| Additions to Chapter 5 of the OpenGL 3.2 Specification (Special Functions) |
| |
| None |
| |
| Additions to Chapter 6 of the OpenGL 3.2 Specification (State and |
| State Requests) |
| |
| None |
| |
| Additions to the AGL/GLX/WGL Specifications |
| |
| None |
| |
| Errors |
| |
| None |
| |
| New State |
| |
| None |
| |
| New Implementation Dependent State |
| |
| (add to Table 6.37, p. 302) |
| |
| Minimum |
| Get Value Type Get Command Value Description Sec. Attribute |
| ---------------------------- ---- ----------- ------- ------------------ ----- --------- |
| MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV Z+ GetIntegerv 64 maximum width and 3.8.1 - |
| height for deep 3D |
| textures |
| MAX_DEEP_3D_TEXTURE_DEPTH_NV Z+ GetIntegerv 64 maximum depth for 3.8.1 - |
| deep 3D textures |
| |
| |
| Issues |
| |
| 1) Does this spec require that the texture exposed actually be deep? |
| |
| RESOLVED: No. The spec doesn't require that MAX_DEEP_3D_TEXTURE_DEPTH is |
| actually greater than MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT, though the spec is |
| pointless if that isn't the case. |
| |
| 2) Does the spec guarantee that the entire 3D texture can be bound for |
| rendering? |
| |
| RESOLVED: No. The framebuffer may be unsupported at the implementation's |
| discretion. Rendering to a single layer at a time may be supported even if |
| binding the entire 3D texture is unsupported. This is the case with the |
| initial NVIDIA implementation. |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- -------- -------- ----------------------------------------- |
| 1 ewerness Internal spec development. |