/** * 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); } }
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); }