Bug in der Camera behoben, was nahgelegene Objekte anbelangt, weitere Modelle hochgeladen
This commit is contained in:
@@ -237,7 +237,9 @@ public class WorldScene extends BaseAppState {
|
||||
com.jme3.asset.plugins.FileLocator.class);
|
||||
} catch (Exception ignored) {}
|
||||
|
||||
app.getCamera().setFrustumFar(4000f);
|
||||
app.getCamera().setFrustumPerspective(45f,
|
||||
(float) app.getCamera().getWidth() / app.getCamera().getHeight(),
|
||||
0.05f, 4000f);
|
||||
|
||||
BlightGame.status("Baue Beleuchtung und Himmel...");
|
||||
buildLighting();
|
||||
|
||||
@@ -271,9 +271,13 @@ public class WorldObjectsState extends BaseAppState {
|
||||
initImpostor(lod2Node);
|
||||
}
|
||||
}
|
||||
treeNode.addControl(new ModelLodControl(
|
||||
app.getCamera(), lod0, lod1, lod2,
|
||||
m.lod1Distance() * lodFactor, m.lod2Distance() * lodFactor));
|
||||
// ModelLodControl nur wenn tatsächliche LOD-Varianten vorhanden — sonst
|
||||
// würde das Objekt ab lod1Distance komplett ausgeblendet (targetSlot=-1).
|
||||
if (lod1 != null || lod2 != null) {
|
||||
treeNode.addControl(new ModelLodControl(
|
||||
app.getCamera(), lod0, lod1, lod2,
|
||||
m.lod1Distance() * lodFactor, m.lod2Distance() * lodFactor));
|
||||
}
|
||||
return treeNode;
|
||||
}
|
||||
|
||||
@@ -321,18 +325,24 @@ public class WorldObjectsState extends BaseAppState {
|
||||
}
|
||||
|
||||
// Fallback: externe LOD-Dateien (lod1Path / lod2Path)
|
||||
Node lodRoot = new Node("lodRoot_" + path);
|
||||
lodRoot.attachChild(spatial);
|
||||
ModelLodControl ctrl = new ModelLodControl(
|
||||
assets, app.getCamera(),
|
||||
m.lod1Path(), m.lod2Path(),
|
||||
m.lod1Distance() * lodFactor, m.lod2Distance() * lodFactor);
|
||||
ctrl.setLodLoadCallback(lod -> {
|
||||
convertUnshadedToPbr(lod);
|
||||
collectSceneLitMaterials(lod);
|
||||
});
|
||||
lodRoot.addControl(ctrl);
|
||||
return lodRoot;
|
||||
// Nur wenn mindestens eine Datei tatsächlich angegeben ist — ohne Dateien würde
|
||||
// ModelLodControl das Objekt ab lod1Distance komplett ausblenden (targetSlot=-1).
|
||||
String lp1 = m.lod1Path() != null && !m.lod1Path().isBlank() ? m.lod1Path() : null;
|
||||
String lp2 = m.lod2Path() != null && !m.lod2Path().isBlank() ? m.lod2Path() : null;
|
||||
if (lp1 != null || lp2 != null) {
|
||||
Node lodRoot = new Node("lodRoot_" + path);
|
||||
lodRoot.attachChild(spatial);
|
||||
ModelLodControl ctrl = new ModelLodControl(
|
||||
assets, app.getCamera(),
|
||||
lp1, lp2,
|
||||
m.lod1Distance() * lodFactor, m.lod2Distance() * lodFactor);
|
||||
ctrl.setLodLoadCallback(lod -> {
|
||||
convertUnshadedToPbr(lod);
|
||||
collectSceneLitMaterials(lod);
|
||||
});
|
||||
lodRoot.addControl(ctrl);
|
||||
return lodRoot;
|
||||
}
|
||||
}
|
||||
|
||||
return spatial;
|
||||
|
||||
Reference in New Issue
Block a user