Reference Source

src/viewer/scene/model/layer/programs/OcclusionProgram.js

export const OcclusionProgram = function(programVariables, logarithmicDepthBufferEnabled) {
    const outColor = programVariables.createOutput("vec4", "outColor");
    return {
        programName: "Occlusion",
        // Logarithmic depth buffer involves an accuracy tradeoff, sacrificing
        // accuracy at close range to improve accuracy at long range. This can
        // mess up accuracy for occlusion tests, so we'll disable for now.
        getLogDepth: false && logarithmicDepthBufferEnabled && (vFragDepth => vFragDepth),
        renderPassFlag: 0,  // COLOR_OPAQUE // Only opaque objects can be occluders
        appendFragmentOutputs: (src) => src.push(`${outColor} = vec4(0.0, 0.0, 1.0, 1.0);`) // Occluders are blue
    };
};