JFX8 Mixed 2D and 3D, Scene Subscene incorrect drawing 3ds-file

Morvling

Mitglied
Hallo liebe Java-forumler :D

Ich bin kein wirklicher pro in Java aber ich habe leider folgendes Problem:

Ich benutze Java8 - JavaFX8 und den Interactive-Mesh Modelimporter um nen 3Ds-viewer zu schreiben. Wenn ich das 3ds-Modell ohne eine Subscene importiere klappt es super, aber sobald ich eine SubScene mit einbaue, stellt er das 3ds-Modell nichtmehr richtig dar ... Die beiden folgenden Links enthalten Bilder der fehlerfreien und der fehlerhaften darstellung ...

http://s3.postimg.org/nsef8o1f3/without_Subscene.png

http://s3.postimg.org/y16wehpgv/with_Subscene.png

Das hier ist der Code mit SubScene:

Code:
import com.interactivemesh.jfx.importer.ImportException;
import com.interactivemesh.jfx.importer.tds.TdsModelImporter;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Camera;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SubScene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;



public class JavaFX7 extends Application {

HBox hBoxControls;
Group model3D;
double y_Axis;
double x_Axis;
double rotate;
public Rotate cameraXRotate;
public Rotate cameraYRotate;
public Translate cameraPosition2;

Camera camera;



public void controls() { 
    ...
            ...
}

public void model () {

    //
    // importing 3ds Modell
    // 

    TdsModelImporter myModel = new TdsModelImporter();
        try {
            String path = "C:/Users/Corvin/Downloads/DUC916_L.3DS/DUC916_L.3DS";
            myModel.read(path);
        }
        catch (ImportException e)
        {
            System.out.println("Error importing 3ds model: "+e.getMessage());
            return;
        }

    final Node[] myMesh = myModel.getImport();
    myModel.close();
    model3D = new Group(myMesh);        

}

public static void main(String[] args) {

    launch();
}

@Override
public void start(Stage stage) throws Exception {

    y_Axis = 0.0;
    controls();
    model();

    Camera camera = new PerspectiveCamera();

     //-------------------
    cameraXRotate = new Rotate(-5,Rotate.X_AXIS);
    cameraYRotate = new Rotate(-50,Rotate.Y_AXIS);
    cameraPosition2 = new Translate(0,-1900,-14000);    

    camera.getTransforms().add(cameraXRotate);
    camera.getTransforms().add(cameraYRotate);
    camera.getTransforms().add(cameraPosition2);
     //-------------------

    Pane sub = new Pane();
    AnchorPane root = new AnchorPane();     

    AnchorPane.setRightAnchor(hBoxControls, 10.0);
    AnchorPane.setBottomAnchor(hBoxControls, 10.0);
    root.getChildren().add(hBoxControls);

    // ---------------------------------------
    Scene scene = new Scene(root, 800, 600, true);  
    SubScene subScene = new SubScene (sub, 800, 600);

    subScene.setCamera(camera);

    sub.getChildren().add(model3D);

    root.getChildren().add(subScene);

    stage.setScene(scene);
    stage.show();

}

}


Schonmal vielen dank für jeden der sich das hier anguckt und sich vielleicht die Mühe macht mir zu helfen. Würde mich über jegliche Idee freuen, ich komme nämlich wirklich Null weiter ... ;(

mfg

Morvling
 

thif

Mitglied
Hallo Morvling,

ich habe ein ähnliches Problem wie du.

Ich importiere 3ds Models, aber die Models werden immer viel zu klein oder gar nicht angezeigt. Oder erst wenn ich eine Translation mache.
Weisst du wie ich die Werte für die Translation berechnen kann?
Ich mein diese Zeile:
Code:
cameraPosition2 = new Translate(0,-1900,-14000);
 

dzim

Top Contributor
Lustig: Ich musste neulich beim Testen unseres JavaFX-basierten Applets (bitte kein Kommentar dazu) feststellen, dass es unter JFX8 auch nicht mehr gleich aussah. Ich glaube das irgendetwas an den Layouts gemacht wurde (was die Darstellung auch nahelegen würde). Bei mir war es vor allem das BorderPane. Zum Glück ist das AppletLayout ziemlich fix, da war eine Fallabhägige (Javaabhängige) Anpassung recht leicht eingebaut.

#edit: Auch bei mir musste ein wenig (mehr) mit translate herumgespielt werden.
 
Zuletzt bearbeitet:

Morvling

Mitglied
Heryho, habe ganz vergessen hier nochmal reinzugucken ...

Hab leider gerade meinen Code auch nicht zur hand, aber der Fehler bei mir war, dass ich den Falschen Konstruktor der SubScene genommen habe, da gibts einen mit Antialiasing ... "new SubScene(arg0,arg1,arg2,boolean,Antialiasing)" iwie so, und da dann "SceneAntiAliasing.BALANCED" oder sowas. Blöder fehler aber naja ...

Und was die Translates angeht habe ich leider noch keine "gute" Lösung gefunden ... Ich habe eigendlich das Gefühl, dass da im Importer irgendwas schief geht, bzw. im Export aus z.B 3dsMax oder so ...
 

thif

Mitglied
Von interactiveMesh gibt es ja auch den ModelBrowserJFX. Wenn ich damit meine Models öffne sehen sie wunderbar aus. Der ModelBrowserJFX baut auf der gleichen API auf, TdsModelImporter etc.. (oder täusche ich mich hier?) von daher glaube ich das der Fehler nicht bei den Models liegt sondern darin wie ich die API verwende.
Ich habe deswegen an interactiveMesh eine E-Mail geschrieben, mal sehen ob was zurückkommt.

@Morvling: ich nehme an du hast die Translates dann auch durch try and error herausbekommen?
 
Zuletzt bearbeitet:

Morvling

Mitglied
Der Kerl von Interactivemesh ist sehr freundlich, habe dem auch schonmal ne mail geschrieben, es hat etwas gedauert aber hat geantwortet.

japp, Try and Error ... aber eigendlich ziemlicher Mist, das auf diesem Weg zu machen ...
 

thif

Mitglied
InteractiveMesh hat mir geantwortet. Ich denke es ist in seinem Sinne wenn ich die Antwort hier poste, weil er möchte ja das man seine API verwendet:

damit die PerspectiveCamera die importierte Szene wunschgemäß darstellt, ist
entweder die Kamera oder die Szene zu transformieren. Typischerweise wird die
Kamera bewegt, muss aber nicht.

Um die Ausdehnung und das Zentrum der Szene zu erhalten, holt man sich von
der javafx.scene.Group, die die Szene beinhaltet, das javafx.geometry.Bounds
Objekt mit 'getBoundsInLocal()'.

Dieses Bounds Objekt liefert alle Daten, um ein javafx.scene.transform.Translate
Objekt zu erzeugen, das die Kamera oder die Szene positioniert.

Die Klasse FXTuxCubeSubScene des Beispiels FXTuxCube gibt weiter Anhaltspunkte,
siehe FXTuxCube : JavaFX 3D sample.

Vielleicht ist auch das Tutorial 'Getting Started with JavaFX 3D Graphics'
hilfreich:
Part I: Getting Started with JavaFX 3D Graphics (Release 8)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Maxim6394 JavaFX Scene Builder - Crash bei eigener Komponente AWT, Swing, JavaFX & SWT 2
N JavaFX Einfacher Taschenrechner mit Scene Builder und Java FX AWT, Swing, JavaFX & SWT 0
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
Tippster JavaFX Scene neu berechnen lassen AWT, Swing, JavaFX & SWT 5
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
T Scene wechseln über ManuItem AWT, Swing, JavaFX & SWT 7
J JavaFX Schiffe versenken mit JavaFX und Scene builder AWT, Swing, JavaFX & SWT 3
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
N setOnKeyPressed ohne Scene AWT, Swing, JavaFX & SWT 2
G JavaFX Scene ausdrucken nicht möglich, Seite leer AWT, Swing, JavaFX & SWT 5
D Verschieden Scenen ansprechen mit dem Scene Builder und JavaFX (Eclipse) AWT, Swing, JavaFX & SWT 16
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
izoards Scene Builder vs. reality..... AWT, Swing, JavaFX & SWT 8
H JavaFX JavaFX - Scene Builder - BorderPane AWT, Swing, JavaFX & SWT 23
T Scene-Wechsel manchmal weiss AWT, Swing, JavaFX & SWT 3
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 0
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 8
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
M error: package javafx.scene.web is not visible import javafx.scene.web.*; AWT, Swing, JavaFX & SWT 16
R JavaFX Scene Builder Grundsätzliches AWT, Swing, JavaFX & SWT 6
S JavaFX Unterschiede zwischen Scene Builder 2.0 und der ausgeführten App AWT, Swing, JavaFX & SWT 17
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
S JavaFX Scene öffnet sich nicht AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
D Canvas oder scene graph? AWT, Swing, JavaFX & SWT 16
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
I Zweite Scene aufrufen AWT, Swing, JavaFX & SWT 4
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
B JavaFX Grundlegende Verständnisfrage JavaFX<->Scene Builder AWT, Swing, JavaFX & SWT 12
D Gluon Scene Builder Custom AWT, Swing, JavaFX & SWT 0
R Scene speichern AWT, Swing, JavaFX & SWT 7
I JavaFX-Scene-Überlagerung/Wechsel mit pausieren der anderen Scene AWT, Swing, JavaFX & SWT 0
L JavaFX leeres weißes Image - javafx.scene.image.Image AWT, Swing, JavaFX & SWT 2
L JavaFX GUI mit JavaFX. Scene Builder source code? AWT, Swing, JavaFX & SWT 6
O JavaFX Aktualisierung der Scene AWT, Swing, JavaFX & SWT 1
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
J JavaFX Scene - Buttonklick abwarten AWT, Swing, JavaFX & SWT 4
D javafx.scene.control.TreeView als dropdown Menü AWT, Swing, JavaFX & SWT 6
M JavaFX Scene wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
n00b4u JavaFX Scene-Builder Ressourcengrab? AWT, Swing, JavaFX & SWT 0
I Scene Builder kann .fxml nicht mehr laden AWT, Swing, JavaFX & SWT 3
javampir Java FX Scene Management AWT, Swing, JavaFX & SWT 1
boscho87 JavaFX Variabeln an neue Scene übergeben AWT, Swing, JavaFX & SWT 0
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
L JavaFX Horizontale Linie zur Scene binding AWT, Swing, JavaFX & SWT 3
B JavaFX Scene Builder: resize funktioniert (meist) nicht AWT, Swing, JavaFX & SWT 6
M JavaFX Wo finde ich den Scene Builder? AWT, Swing, JavaFX & SWT 3
L JavaFX Scene wechseln unter FX AWT, Swing, JavaFX & SWT 5
A JavaFX Scene Builder eigene Klasse hinzufügen AWT, Swing, JavaFX & SWT 2
F JavaFX Scene Builder AWT, Swing, JavaFX & SWT 2
F JavaFX Scene Builder AWT, Swing, JavaFX & SWT 3
K JavaFX Focus Listener für gesamte Scene AWT, Swing, JavaFX & SWT 1
D JavaFX Scene Builder 2.0 einfügen einer CheckBoxListCell AWT, Swing, JavaFX & SWT 0
M JavaFX Fenstersteuerung in scene builder AWT, Swing, JavaFX & SWT 2
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
N JavaFX TreeTable Scene Builder AWT, Swing, JavaFX & SWT 8
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
F GUI Einstieg (Scene Builder) AWT, Swing, JavaFX & SWT 3
H JavaFx - Scene Builder 2.0 - Classpath AWT, Swing, JavaFX & SWT 2
J JavaFX Variable an neue Scene übergeben AWT, Swing, JavaFX & SWT 8
A JavaFX Eigene Komponenten im Scene Builder AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben