BatchNode and GeometryBatchFactory now uses the material's isEqual method to gather the geometries to batch

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9257 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
rem..om 13 years ago
parent 55b8188d20
commit 1945a0c1c0
  1. 8
      engine/src/core/com/jme3/scene/BatchNode.java
  2. 8
      engine/src/tools/jme3tools/optimize/GeometryBatchFactory.java

@ -236,6 +236,14 @@ public class BatchNode extends Node implements Savable {
throw new IllegalStateException("No material is set for Geometry: " + g.getName() + " please set a material before batching");
}
List<Geometry> list = map.get(g.getMaterial());
if (list == null) {
//trying to compare materials with the isEqual method
for (Material mat : map.keySet()) {
if (g.getMaterial().isEqual(mat)) {
list = map.get(mat);
}
}
}
if (list == null) {
list = new ArrayList<Geometry>();
map.put(g.getMaterial(), list);

@ -288,6 +288,14 @@ public class GeometryBatchFactory {
for (Geometry geom : geometries) {
List<Geometry> outList = matToGeom.get(geom.getMaterial());
if (outList == null) {
//trying to compare materials with the isEqual method
for (Material mat : matToGeom.keySet()) {
if (geom.getMaterial().isEqual(mat)) {
outList = matToGeom.get(mat);
}
}
}
if (outList == null) {
outList = new ArrayList<Geometry>();
matToGeom.put(geom.getMaterial(), outList);

Loading…
Cancel
Save