| Name |
| |
| NV_shadow_samplers_array |
| |
| Name Strings |
| |
| GL_NV_shadow_samplers_array |
| |
| Contributors |
| |
| Mathias Heyer, NVIDIA |
| Greg Roth, NVIDIA |
| |
| Contacts |
| |
| Greg Roth, NVIDIA (groth 'at' nvidia 'dot' com) |
| |
| Status |
| |
| Complete |
| |
| Version |
| |
| Date: Aug 30, 2012 |
| Revision: 4 |
| |
| Number |
| |
| OpenGL ES Extension #146 |
| |
| Dependencies |
| |
| Requires OpenGL ES 2.0. |
| |
| Written based on the wording of the OpenGL ES 2.0.25 Specification. |
| |
| Written based on the wording of The OpenGL ES Shading Language |
| 1.00.14 Specification. |
| |
| Requires NV_texture_array and EXT_shadow_samplers. |
| |
| Overview |
| |
| This extension expands the shadow map capability described in |
| EXT_shadow_samplers to include support for shadow samplers of 2D |
| array textures. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Returned in <type> by glGetActiveUniform: |
| |
| GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 |
| |
| New GLSL defines |
| |
| #define GL_NV_shadow_samplers_array 1 |
| |
| New GLSL sampler types |
| |
| sampler2DArrayShadowNV |
| |
| New GLSL functions |
| |
| float shadow2DArrayNV(sampler2DArrayShadowNV sampler, vec4 coord); |
| |
| Additions to Chapter 2 of the OpenGL ES 2.0.25 Specification (OpenGL ES |
| Operation) |
| |
| Modify Section 2.10.4 (Shader Variables) |
| |
| In the final sentence on p. 36 add "SAMPLER_2D_ARRAY_SHADOW_NV" to |
| the list of types that can be returned in the <type> parameter of |
| GetActiveUniform. |
| |
| Additions to OpenGL ES Shading Language 1.00.14 Specification |
| |
| Modify Section 4.1, (Basic Types): |
| |
| Append the following row to the unnamed table in section 4.1 |
| |
| Type Meaning |
| --------------- --------------------------------------------------------- |
| sampler2DArrayShadowNV a handle for accessing a 2D array depth texture with comparison |
| |
| Modify section 4.5.3 (Default Precision Qualifiers): |
| |
| Add to the list of predeclared globally scoped default precision |
| statements: |
| |
| "precision lowp sampler2DArrayShadowNV;" |
| |
| Modify section 8.7 (Texture Lookup Functions): |
| |
| Add the following new texture lookup function: |
| |
| The built-in texture lookup function shadow2DArrayNV is optional, |
| and must be enabled by |
| |
| #extension GL_NV_shadow_samplers_array : enable |
| |
| before being used. |
| |
| Syntax: |
| |
| float shadow2DArrayNV(sampler2DArrayShadowNV sampler, vec4 coord) |
| |
| Description: |
| |
| Use texture coordinate (coord.s, coord.t) to do a depth comparison |
| lookup on an array layer of the depth texture bound to sampler, as |
| described in section 3.7.14.1. The layer to access is indicated by |
| the third coordinate (coord.p) and is computed by layer = max (0, |
| min(d - 1, floor (coord.p + 0.5)) where 'd' is the depth of the |
| texture array. The fourth component of coord (coord.q) is used as |
| the R value. The texture bound to sampler must be a depth texture, |
| or results are undefined. |
| |
| Issues |
| |
| (1) Should the result of the texture comparison be interpreted as |
| a LUMINANCE, INTENSITY or ALPHA texel? |
| |
| RESOLVED: A scalar value is returned from the shadow lookup built-in |
| function in the fragment shader, so it can be interpreted however |
| desired. |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- ------------- --------- ---------------------------------------- |
| 4 30 Aug 2012 groth Added missing NV suffixes. Corrected a dependency |
| 3 28 Aug 2012 groth Minor copy edits |
| 2 19 Aug 2012 groth Correct dependency and GLSL enable |
| 1 12 Aug 2012 groth Initial GLES2 version from EXT_gpu_shader4. |