Ich spiele mit den 3D-Modell-Importeure von interactivemesh.org in Javafx. Der Import der Modelle in einer Szene funktioniert ohne Fehler. Die Modelle werden jedoch auf seltsame Weise angezeigt. Einige der Gesichter hinter anderen Gesichtern werden angezeigt, obwohl sie von den Vorderseiten bedeckt sein sollten. Ich habe den tdsImporter, sowie obj und das fxml Importer versucht, alle das gleiche Problem zu treffen. Die Modelle werden im Modellbrowser korrekt angezeigt, daher denke ich, dass mit meinem Code etwas nicht stimmt. Hier ist, was das Modell aussieht (versuchte es auf verschiedenen Rechnern):Javafx importiert 3D-Modell falsch angezeigt
HST Modell von interactivemesh.org
Auch der Quellcode ich für die 3ds verwenden importieren:
import com.interactivemesh.jfx.importer.tds.TdsModelImporter;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;
public class Test3d extends Application {
Group group = new Group();
@Override
public void start(Stage meineStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("test.fxml"));
Scene meineScene = new Scene(root, 1280, 800);
meineStage.setTitle("Startbildschirm");
meineStage.setScene(meineScene);
meineStage.show();
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.getTransforms().addAll(
new Rotate(0, Rotate.Y_AXIS),
new Rotate(-45, Rotate.X_AXIS),
new Rotate(-45, Rotate.Z_AXIS),
new Translate(0, 0, -110));
meineScene.setCamera(camera);
camera.setNearClip(0.1);
camera.setFarClip(200);
TdsModelImporter tdsImporter = new TdsModelImporter();
tdsImporter.read("hst.3ds");
Node[] tdsMesh = (Node[]) tdsImporter.getImport();
tdsImporter.close();
for (int i = 0; i < tdsMesh.length; i++) {
tdsMesh[i].setScaleX(0.1);
tdsMesh[i].setScaleY(0.1);
tdsMesh[i].setScaleZ(0.1);
tdsMesh[i].getTransforms().setAll(new Rotate(60, Rotate.Y_AXIS), new Rotate(-90, Rotate.X_AXIS));
}
Group root1 = new Group(tdsMesh);
meineScene.setRoot(root1);
}
public static void main(String[] args) {
launch(args);
}
}
Hat jemand eine Idee, was das Problem sein könnte und wie man es beheben kann?
Thank you so viel, dass mein Problem gelöst !! Ich wünsche ihnen einen wunderbaren Tag – Aviator1983