camera.cullingMask 的设置问题

答疑:官方示例里设置有一段关于 camera.cullingMask 的代码,看不懂为什么要这样设置?设置了起什么作用?萌新求大神解答一下
_onSceneLaunched () {
let cameras = cc.Camera.cameras;
for (let i = 0, l = cameras.length; i < l; i++) {
let camera = cameras[i];
if (camera === this.uiCamera) {
camera.cullingMask = 1 << this.node.groupIndex; // 看不懂
}
else {
camera.cullingMask = camera.cullingMask & (~(1 << this.node.groupIndex)); // 看不懂
}
}
},

camera.cullingMask = 1 << this.node.groupIndex
如果是渲染UI的摄像机,就让此摄像机只渲染 UI节点所有的group

camera.cullingMask = camera.cullingMask & (~(1 << this.node.groupIndex));
如果不是渲染UI的摄像机,就让此摄像机渲染除UI节点以外的group