| Name |
| |
| NV_shadow_samplers_cube |
| |
| Name Strings |
| |
| GL_NV_shadow_samplers_cube |
| |
| 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 #147 |
| |
| 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 OES_depth_texture_cube_map and EXT_shadow_samplers. |
| |
| Overview |
| |
| This extension expands the shadow map capability described in |
| EXT_shadow_samplers to include support for shadow samplers of cube |
| map textures. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Returned in <type> by glGetActiveUniform: |
| |
| GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 |
| |
| New GLSL defines |
| |
| #define GL_NV_shadow_samplers_cube 1 |
| |
| New GLSL sampler types |
| |
| samplerCubeShadowNV |
| |
| New GLSL functions |
| |
| float shadowCubeNV(samplerCubeShadowNV 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_CUBE_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 |
| --------------- --------------------------------------------------------- |
| samplerCubeShadowNV a handle for accessing a Cube 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 samplerCubeShadowNV;" |
| |
| Modify section 8.7 (Texture Lookup Functions): |
| |
| Add the following new texture lookup function: |
| |
| The built-in texture lookup function shadowCubeNV is optional, |
| and must be enabled by |
| |
| #extension GL_NV_shadow_samplers_cube : enable |
| |
| before being used. |
| |
| Syntax: |
| |
| float shadowCubeNV(samplerCubeShadowNV sampler, vec4 coord) |
| |
| Description: |
| |
| Use texture coordinate (coord.s, coord.t, coord.p) to do a depth |
| comparison lookup on the depth cubemap bound to sampler, as |
| described in section 3.7.14.1. The direction of the vector (coord.s, |
| coord.t, coord.p) is used to select which face to do a two- |
| dimensional texture lookup in, as described in section 3.7.5 of the |
| OpenGL ES 2.0 specification. The fourth component of coord (coord.q) |
| is used as the R value. The texture bound to sampler must be a depth |
| cubemap, otherwise 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 |
| 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. |