Selaa lähdekoodia

Merge pull request #1434 from nockawa/renderingGroupObservable

Implicitly create renderingGroup when Observer are registered
David Catuhe 8 vuotta sitten
vanhempi
commit
c74e9baa38
2 muutettua tiedostoa jossa 15 lisäystä ja 1 poistoa
  1. 10 0
      src/Rendering/babylon.renderingManager.ts
  2. 5 1
      src/babylon.scene.ts

+ 10 - 0
src/Rendering/babylon.renderingManager.ts

@@ -170,6 +170,16 @@
                     }
                 } else {
                     this._renderSpritesAndParticles();
+
+                    if (observable) {
+                        let renderingGroupMask = Math.pow(2, index);
+                        info.renderStage = RenderingGroupInfo.STAGE_PRECLEAR;
+                        info.renderingGroupId = index;
+                        observable.notifyObservers(info, renderingGroupMask);
+
+                        info.renderStage = RenderingGroupInfo.STAGE_POSTTRANSPARENT;
+                        observable.notifyObservers(info, renderingGroupMask);
+                    }
                 }
 
                 if (needToStepBack) {

+ 5 - 1
src/babylon.scene.ts

@@ -88,21 +88,25 @@
 
         /**
          * Stage corresponding to the very first hook in the renderingGroup phase: before the render buffer may be cleared
+         * This stage will be fired no matter what
          */
         static STAGE_PRECLEAR = 1;
 
         /**
-         * Called before opaque object are rendered
+         * Called before opaque object are rendered.
+         * This stage will be fired only if there's 3D Opaque content to render
          */
         static STAGE_PREOPAQUE = 2;
 
         /**
          * Called after the opaque objects are rendered and before the transparent ones
+         * This stage will be fired only if there's 3D transparent content to render
          */
         static STAGE_PRETRANSPARENT = 3;
 
         /**
          * Called after the transparent object are rendered, last hook of the renderingGroup phase
+         * This stage will be fired no matter what
          */
         static STAGE_POSTTRANSPARENT = 4;
     }