Pozycja guzików na stałe w przestrzeni 3D

0

Witam. Pisze program w JavieFX i mam maly problem, gdy obracam kamerą w przestreni 3D to moje guziki, tabele równiez sie obracaja.
Mniej wiecej to wyglada tak gdy sie obraca kamera
user image
Dodałem kilka elementów 3d oraz kamere.

 cam = new PerspectiveCamera(true);
   
        cam.setFieldOfView(45.5d);
    
        cam.setNearClip(1.0d);
        cam.setFarClip(2_500_000.0d);
     
        cam.setTranslateZ(-1_500.0d);

Pozniej stworzyłem 2 grupy 1 dla obiektów druga dla guzików mniej wiecej tak one wygladają.

  Group sceneRoot = new Group();
  
       sceneRoot.getChildren().addAll(obiekty......);
       

Poźniej ustawiam kamere na scene

 Scene scene = new Scene(sceneRoot, sceneWidth, sceneHeight);
    //scene.setFill(Color.BLACK);
    scene.setCamera(cam);

Jest jakis sposób by to wylaczyć, wstawic na sztywno? Nie uzywam fxml. Meczę sie z tym i meczę, a nie mam pojecia jak zgooglowac nawet to ; /

1

Nie wiem jak to działa w JavaFx, ale w jednym frameworku po prostu osobno renderowałem obiekty 3d i płaszczyzne 2d (w wymienionej kolejności). Tak że gdy uruchomiłem aplikacje/gre to w tle było to co 3D a w pierwszym planie renderowane obiekty 2d :).

0

Jeśli koniecznie chcesz mieć to w przestrzeni trójwymiarowej, to twoje guziki nie mają być "stałe" względem świata, a kamery!

1

albo:

  1. ustawiasz po renderze 3d macierz 2d:
    https://www.opengl.org/discussion_boards/showthread.php/172280-Constructing-an-orthographic-matrix-for-2D-drawing
    http://www.songho.ca/opengl/gl_projectionmatrix.html
    i renderujesz przyciski jako obiekty 2d.

  2. Jeżeli przyciski mają być zawieszone w przestrzeni 3d tylko zawsze frontem do kamery(czyli możesz względem nich przemieszczać się w przestrzeni) użyj techniki bilbordów :
    http://www.opengl-tutorial.org/intermediate-tutorials/billboards-particles/billboards/
    http://www.lighthouse3d.com/opengl/billboarding/index.php3?billCyl
    http://nehe.gamedev.net/article/billboarding_how_to/18011/

1 użytkowników online, w tym zalogowanych: 0, gości: 1