This example shows how to apply depth modification in a shader during the shadowmap pass.
A sphere with a hole created in a fragment shader is lighted and shadowed.
SoShaderObject, SoShaderProgram, SoShaderParameter, SoVertexShader, SoFragmentShader, SoShadowGroup