Beispiel #1
0
  /**
   * Update the lights on this child's material. This method should only be called when the lights
   * collection is dirty. It will trigger compilation of all light-enabled shaders.
   *
   * @param child
   */
  private void updateChildMaterialWithLights(Object3D child) {
    Material material = child.getMaterial();
    if (material != null && material.lightingEnabled()) material.setLights(mLights);
    if (material != null && mFogParams != null)
      material.addPlugin(new FogMaterialPlugin(mFogParams));

    int numChildren = child.getNumChildren();
    for (int i = 0; i < numChildren; i++) {
      Object3D grandChild = child.getChildAt(i);
      updateChildMaterialWithLights(grandChild);
    }
  }
Beispiel #2
0
  private void addShadowMapMaterialPlugin(Object3D o, ShadowMapMaterialPlugin materialPlugin) {
    Material m = o.getMaterial();

    if (m != null && m.lightingEnabled()) {
      if (materialPlugin != null) {
        m.addPlugin(materialPlugin);
      } else if (mShadowMapMaterial != null) {
        m.removePlugin(mShadowMapMaterial.getMaterialPlugin());
      }
    }

    for (int i = 0; i < o.getNumChildren(); i++)
      addShadowMapMaterialPlugin(o.getChildAt(i), materialPlugin);
  }