Inhaltsverzeichnis:
- Schritt eins: Eine Kugel hinzufügen
- Zweiter Schritt: Animiere die Objekte
- Dritter Schritt: Eine Lichtquelle hinzufügen
Video: Gesichtsausdrücke ermöglichen mit Shape-Keys | Auszug aus: Der eigene 3D-Film mit Blender 2024
Das Erstellen einer virtuellen 3D-Welt ist in JavaFX einfacher als je zuvor. In diesem Beispiel lernen Sie, Ihrem JavaFX-Programm eine Kugel hinzuzufügen, sie zu animieren und ihr eine Lichtquelle hinzuzufügen.
Schritt eins: Eine Kugel hinzufügen
Fügen Sie zuerst eine Kugel hinzu, die durch die Kugel-Klasse dargestellt wird. Der Sphere-Konstruktor akzeptiert nur einen einzigen Parameter, der den Radius der Kugel angibt. Beispielsweise erzeugen diese Linien eine Kugel, deren Radius 100 ist, und übersetzen sie dann, um sie vom Mittelpunkt Ihrer virtuellen Welt zu entfernen:
Kugelkugel = neue Kugel (100); Kugel. setTranslateX (-180); Kugel. setTranslateY (-100); Kugel. setTranslateZ (100); Wurzel. getChildren (). hinzufügen (Kugel);
Anstatt das gleiche blaue Phong-Material auf die Kugel aufzubringen, können Sie etwas Interessanteres tun: Verwenden Sie ein Phong-Material, das aus einem Bild einer zylindrischen Projektion der Erde erstellt wurde:
Image earthImage = new Image ("Datei: Erde. jpg"); PhongMaterial earthPhong = neues PhongMaterial (); ErdePhong. setDiffuseMap (earthImage); Kugel. setMaterial (ErdePhong);
Diese Abbildung zeigt die resultierende Kugel.
Mit dieser Technik können Sie jedes Bild um eine Kugel (oder ein anderes 3D-Objekt) wickeln. Sie können das Bild für dieses Programm auch von Wikipedia erhalten. Suchen Sie einfach nach Behrmann Projection und laden Sie die Datei herunter. (Verwenden Sie Windows Paint, um die Kanten des Bildes etwas zu beschneiden, da das in Wikipedia verfügbare Bild einen kleinen Rand um die Kanten hat.)
Zweiter Schritt: Animiere die Objekte
Puh! Ihre virtuelle 3D-Welt hat jetzt ein Objekt: eine Kugel, die wie die Erde aussieht. Sie können zu diesem Zeitpunkt auch andere Objekte hinzufügen.
Fügen Sie in diesem Schritt allen Objekten eine Animation hinzu, damit sie sich drehen. Jedes Objekt erhält eine einfache RotationTransition-Animation. Zuerst die Kugel:
RotateTransition rt4 = new RotateTransition (); RT4. setNode (Kugel); RT4. setDuration (Dauer. millis (9000)); RT4. setAxis (Drehen. Y_AXIS); RT4. setByAngle (360); RT4. setCycleCount (Animation. INDEFINITE); RT4. setInterpolator (Interpolator. LINEAR); RT4. abspielen();
Nachdem die Spielmethode aufgerufen wurde, beginnt sich die Kugel zu drehen und macht alle drei Sekunden eine vollständige Drehung um ihre z-Achse.
Die Kugel dreht sich um die Y-Achse und erzeugt den Eindruck, dass sich die Welt dreht. Für die Kugel wird die Geschwindigkeit alle 10 Sekunden auf eine Umdrehung eingestellt.
Dritter Schritt: Eine Lichtquelle hinzufügen
Der letzte Schritt in diese Welt der 3D-Programmierung ist das Hinzufügen einer Lichtquelle.Die Lichtquelle ändert das gesamte Aussehen der Szene, wie hier gezeigt.
Verwenden Sie zum Hinzufügen der Lichtquelle den folgenden Code:
Ihre 3D-Welt mit einer Lichtquelle.PointLight light = neues PointLight (Farbe. WEISS); Licht. setTranslateX (-1000); Licht. setTranslateY (100); Licht. setTranslateZ (-1000); Wurzel. getChildren (). hinzufügen (Licht);
Die PointLight-Klasse definiert eine Lichtquelle, die von einem bestimmten Punkt in der Szene ausgeht und Licht der gegebenen Farbe projiziert (in diesem Fall gutes altes Weiß). Um den Lichteffekt zu erzeugen, positionieren Sie das Licht, indem Sie die Koordinaten 1 000 nach links, 100 nach unten und 1 000 Einheiten in Richtung des Benutzers übersetzen. Das Ergebnis wirft schöne Schatten auf die Rückseite der sich drehenden Objekte.