Texte 2D statique sur scène 3D dans javafx java


Mon objectif est de superposer du texte 2D sur une scène 3d dans javafx comme vu dans cette image

L'utilisation d'un sous-domaine n'est pas un choix valide car je veux que le modèle 3d puisse occuper tout l'espace sur l'écran.

J'ai essayé d'ajouter une étiquette à la scène et de désactiver la mise en mémoire tampon de profondeur, mais une fois le modèle tourné (la caméra réelle change de position), le positionnement correct se brise. (Code utilisé pour contrôler la caméra )

Puis-je en quelque sorte superposer une interface graphique 2D statique sur ma scène 3D peut-être en utilisant des volets d'ancrage et en ayant une scène 2D avec un arrière-plan transparent?

Sur stack overflow je n'ai trouvé que ces questions:
Question No. 1
Question no 2
qui ne correspondent pas à mes besoins exacts.

Author: Kilian, 2017-09-02

1 answers

J'ai mal compris le concept de sous-scènes car ils montraient tous des contrôles entièrement séparés. La superposition de texte 3D est possible en utilisant la structure suivante...

  • Conteneur racine (par exemple, un panneau d'ancrage)
    • Contenu 2D (Étiquette)
    • Sous-séquence
      • caméra en perspective
      • racine 3D
        • Contenu 3D

Exemple de code:

//Add 2D content here
AnchorPane globalRoot = new AnchorPane();
globalRoot.getChildren().add(new Label("Hello World"));
Scene scene = new Scene(globalRoot, 1024, 768, true);

SubScene sub = new 
SubScene(root3D,1024,768,false,SceneAntialiasing.BALANCED);
sub.setCamera(camera);
globalRoot.getChildren().add(sub);

//Add all 3D content to the root3D node    

primaryStage.setScene(scene);
primaryStage.show();
 2
Author: Kilian, 2017-09-02 07:59:47