StencilConstants.js 1.1 KB

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