浏览代码

Merge pull request #2200 from aWeirdo/patch-10

Addition of layerMask to BABYLON.Layer
David Catuhe 8 年之前
父节点
当前提交
14129457fb
共有 2 个文件被更改,包括 6 次插入5 次删除
  1. 4 3
      src/Layer/babylon.layer.ts
  2. 2 2
      src/babylon.scene.ts

+ 4 - 3
src/Layer/babylon.layer.ts

@@ -7,7 +7,8 @@
         public offset = new Vector2(0, 0);
         public alphaBlendingMode = Engine.ALPHA_COMBINE;
         public alphaTest: boolean;
-
+        public layerMask: number = 0x0FFFFFFF;
+        
         private _scene: Scene;
         private _vertexBuffers: { [key: string]: VertexBuffer } = {};
         private _indexBuffer: WebGLBuffer;
@@ -63,7 +64,7 @@
             this.texture = imgUrl ? new Texture(imgUrl, scene, true) : null;
             this.isBackground = isBackground === undefined ? true : isBackground;
             this.color = color === undefined ? new Color4(1, 1, 1, 1) : color;
-
+            
             this._scene = scene || Engine.LastCreatedScene;
             this._scene.layers.push(this);
 
@@ -175,4 +176,4 @@
             this.onBeforeRenderObservable.clear();
         }
     }
-} 
+} 

+ 2 - 2
src/babylon.scene.ts

@@ -2675,7 +2675,7 @@
                 engine.setDepthBuffer(false);
                 for (layerIndex = 0; layerIndex < this.layers.length; layerIndex++) {
                     layer = this.layers[layerIndex];
-                    if (layer.isBackground) {
+                    if (layer.isBackground && ((layer.layerMask & this.activeCamera.layerMask) !== 0)) {
                         layer.render();
                     }
                 }
@@ -2727,7 +2727,7 @@
                 engine.setDepthBuffer(false);
                 for (layerIndex = 0; layerIndex < this.layers.length; layerIndex++) {
                     layer = this.layers[layerIndex];
-                    if (!layer.isBackground) {
+                    if (!layer.isBackground && ((layer.layerMask & this.activeCamera.layerMask) !== 0)) {
                         layer.render();
                     }
                 }