yzt
2023-05-05 4c558c77a6a9d23f057f094c4dc3e315eabef497
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import StencilFunction from "./StencilFunction.js";
import StencilOperation from "./StencilOperation.js";
 
/**
 * The most significant bit is used to identify whether the pixel is 3D Tiles.
 * The next three bits store selection depth for the skip LODs optimization.
 * The last four bits are for increment/decrement shadow volume operations for classification.
 *
 * @private
 */
var StencilConstants = {
  CESIUM_3D_TILE_MASK: 0x80,
  SKIP_LOD_MASK: 0x70,
  SKIP_LOD_BIT_SHIFT: 4,
  CLASSIFICATION_MASK: 0x0f,
};
 
StencilConstants.setCesium3DTileBit = function () {
  return {
    enabled: true,
    frontFunction: StencilFunction.ALWAYS,
    frontOperation: {
      fail: StencilOperation.KEEP,
      zFail: StencilOperation.KEEP,
      zPass: StencilOperation.REPLACE,
    },
    backFunction: StencilFunction.ALWAYS,
    backOperation: {
      fail: StencilOperation.KEEP,
      zFail: StencilOperation.KEEP,
      zPass: StencilOperation.REPLACE,
    },
    reference: StencilConstants.CESIUM_3D_TILE_MASK,
    mask: StencilConstants.CESIUM_3D_TILE_MASK,
  };
};
export default Object.freeze(StencilConstants);