15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_deep_texture3D 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_deep_texture3D 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciStatus 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Shipping. 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciVersion 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci Last Modified Date: April 12, 2010 205bd8deadSopenharmony_ci Revision: 1 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciNumber 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci 424 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciDependencies 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci This extension is written against the OpenGL 3.2 specification (Core 295bd8deadSopenharmony_ci Profile). 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ciOverview 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ci Some applications require 3D textures that have a significant number of 345bd8deadSopenharmony_ci slices, but less resolution in width and height. In the current spec, the 355bd8deadSopenharmony_ci maximum value for the size of all three dimensions is specified by a 365bd8deadSopenharmony_ci single value. This extension adds a second set of limits against which 3D 375bd8deadSopenharmony_ci textures can be checked if an application needs deeper textures than would 385bd8deadSopenharmony_ci be allowed by the symmetric texture limits. 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciNew Procedures and Functions 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci None 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ciNew Tokens 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv 475bd8deadSopenharmony_ci and GetFloatv: 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 505bd8deadSopenharmony_ci MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 3.2 Specification (OpenGL Operation) 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci None 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 3.2 Specification (Rasterization) 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci (modify 3.8.1 Texture Image Specification on p. 141 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci (add to the discussion of the maximum allowable size of a 3D texture) 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci If the width and height of the texel array for a three-dimensional texture 635bd8deadSopenharmony_ci are both less than pow(2, j-lod) + 2Bt where j is the log base 2 of 645bd8deadSopenharmony_ci MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV, then the depth may be up to pow(2, 655bd8deadSopenharmony_ci m-lod) + 2Bt where m is the log base 2 of MAX_DEEP_3D_TEXTURE_DEPTH_NV. 665bd8deadSopenharmony_ci The error INVALID_VALUE is generated if the specified image is too large 675bd8deadSopenharmony_ci to be stored under any conditions. 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 3.2 Specification (Per-Fragment Operations 705bd8deadSopenharmony_ciand the Frame Buffer) 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci (modify the discussion of FramebufferTexture in 4.4 on p. 228) 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci If textarget is TEXTURE_3D, then level must be greater than or equal to zero 755bd8deadSopenharmony_ci and less than or equal to log2 of the larger of the values of 765bd8deadSopenharmony_ci MAX_3D_TEXTURE_SIZE and MAX_DEEP_3D_TEXTURE_DEPTH_NV. 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci ... 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci layer specifies the layer of a 2-dimensional image within a 3-dimensional 815bd8deadSopenharmony_ci texture. An INVALID_VALUE error is generated if layer is larger than the 825bd8deadSopenharmony_ci larger of the value of MAX_DEEP_3D_TEXTURE_DEPTH_NV-1 and the value of 835bd8deadSopenharmony_ci MAX_3D_TEXTURE_SIZE-1. 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 3.2 Specification (Special Functions) 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci None 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 3.2 Specification (State and 905bd8deadSopenharmony_ciState Requests) 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci None 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci None 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciErrors 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci None 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ciNew State 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci None 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ciNew Implementation Dependent State 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci (add to Table 6.37, p. 302) 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci Minimum 1115bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. Attribute 1125bd8deadSopenharmony_ci ---------------------------- ---- ----------- ------- ------------------ ----- --------- 1135bd8deadSopenharmony_ci MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV Z+ GetIntegerv 64 maximum width and 3.8.1 - 1145bd8deadSopenharmony_ci height for deep 3D 1155bd8deadSopenharmony_ci textures 1165bd8deadSopenharmony_ci MAX_DEEP_3D_TEXTURE_DEPTH_NV Z+ GetIntegerv 64 maximum depth for 3.8.1 - 1175bd8deadSopenharmony_ci deep 3D textures 1185bd8deadSopenharmony_ci 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ciIssues 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci 1) Does this spec require that the texture exposed actually be deep? 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci RESOLVED: No. The spec doesn't require that MAX_DEEP_3D_TEXTURE_DEPTH is 1255bd8deadSopenharmony_ci actually greater than MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT, though the spec is 1265bd8deadSopenharmony_ci pointless if that isn't the case. 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ci 2) Does the spec guarantee that the entire 3D texture can be bound for 1295bd8deadSopenharmony_ci rendering? 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci RESOLVED: No. The framebuffer may be unsupported at the implementation's 1325bd8deadSopenharmony_ci discretion. Rendering to a single layer at a time may be supported even if 1335bd8deadSopenharmony_ci binding the entire 3D texture is unsupported. This is the case with the 1345bd8deadSopenharmony_ci initial NVIDIA implementation. 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ciRevision History 1375bd8deadSopenharmony_ci 1385bd8deadSopenharmony_ci Rev. Date Author Changes 1395bd8deadSopenharmony_ci ---- -------- -------- ----------------------------------------- 1405bd8deadSopenharmony_ci 1 ewerness Internal spec development. 141