Table des matières:
- Première étape: Ajouter un cylindre
- Deuxième étape: Créer un matériau
- Troisième étape: Traduire le cylindre
Vidéo: Unity 3D (v 4.2): Créer un jeu vidéo 3D facilement #1 (les bases 1/2) 2024
En quelques étapes, vous pouvez commencer à créer un programme 3D relativement simple dans JavaFX qui affiche le monde en trois dimensions (un exemple est montré ci-dessous). Comme vous pouvez le voir, cet espace 3D comprend quatre formes: une sphère, un cube, un cylindre et une pyramide. Cette courte liste vous montre comment démarrer avec un cylindre.
Mettez votre casquette de réflexion, car cet exemple est assez technique à certains moments, et de nombreux concepts liés à la construction de mondes 3D peuvent prêter à confusion, surtout s'il s'agit de votre première expérience en programmation 3D.
Première étape: Ajouter un cylindre
Dans cette étape, vous ajoutez un objet 3D basique à votre monde. JavaFX fournit trois formes de base que vous pouvez ajouter: des cylindres, des boîtes et des sphères. Commencez par ajouter un cylindre:
Cylindre cylindre = nouveau Cylindre (100, 50); racine. getChildren (). ajouter (cylindre);
Le constructeur de la classe Cylinder accepte deux arguments: le rayon du cylindre et sa hauteur. Cet exemple crée un cylindre ayant à peu près la forme d'une rondelle de hockey, quatre fois plus large que grande; Ensuite, il ajoute le cylindre au noeud racine de la scène.
À ce stade, le cylindre existe dans le monde, mais n'est pas visible. En fonction de ce que vous savez des formes 2D, vous pouvez être tenté de le rendre visible en ajoutant une couleur de remplissage (setFill) ou une couleur de contour (setStroke). Mais ce n'est pas comme ça que fonctionnent les objets 3D. Dans l'étape suivante, vous découvrirez comment appliquer un matériau à la surface du cylindre afin qu'il soit visible dans la scène.
Deuxième étape: Créer un matériau
Le rendu des faces d'un objet 3D est beaucoup plus compliqué que le rendu d'objets plats bidimensionnels. Pour un objet 2D, vous appliquez simplement un objet Paint via la méthode setFill. La peinture peut être une couleur simple, une couleur dégradée ou une image.
Pour les objets 3D, vous n'appliquez pas de peinture. Au lieu de cela, vous appliquez un objet spécial appelé Phong material , représenté par la classe PhongMaterial. Un matériau Phong (nommé d'après Bui Tuong Phong, un pionnier de l'infographie dans les années 1970) fournit les moyens par lesquels les faces d'un objet 3D sont rendues de façon réaliste.
Le code suivant crée un matériau Phong simple basé sur deux nuances de bleu, puis applique le matériau au cylindre:
PhongMaterial blueStuff = new PhongMaterial (); blueStuff. setDiffuseColor (Couleur, LIGHTBLUE); blueStuff. setSpecularColor (Couleur: BLEU); cylindre. setMaterial (blueStuff);
Une fois que le matériau Phong a été appliqué sur le cylindre, le cylindre sera visible dans la scène, comme indiqué.
Le cylindre 3D avec un matériau Phong.Troisième étape: Traduire le cylindre
Vous avez sans doute remarqué que le cylindre n'a pas l'air très tridimensionnel. C'est parce que vous le regardez de profil: La caméra pointe directement à l'intersection des axes x et y, et le cylindre est centré sur cet endroit précis.
Pour obtenir une perspective sur le cylindre, vous pouvez le déplacer vers un emplacement différent dans l'espace 3D en traduisant les coordonnées x, y et z. Par exemple:
cylindre. setTranslateX (-200); cylindre. setTranslateY (200); cylindre. setTranslateZ (200);
Ici, le cylindre est déplacé de 200 unités vers la gauche, 200 unités vers le bas et 200 unités loin de la caméra. La vue qui en résulte ressemble plus à un cylindre, comme vous pouvez le voir ici.
Le cylindre 3D traduit.Dans cette figure, il semble que le cylindre a été tourné vers l'avant pour que vous puissiez voir un peu de la surface supérieure. Ce n'est pas le cas, cependant. Ce qui s'est réellement passé, c'est que vous ne regardez plus le bord du cylindre.
Au lieu de cela, parce que le cylindre est en dessous de la caméra, vous le regardez de haut. Ainsi, vous pouvez voir un peu de la face supérieure. Vous le regardez également de côté, ce qui explique pourquoi il semble juste un peu tilt.