Isi kandungan:
Video: "APA AJA SIH ENCHANMENT UNTUK CROSSBOW?!" Noob Survival#137 2024
Dalam beberapa langkah yang singkat anda boleh mula membuat program 3D yang agak mudah dalam JavaFX yang memaparkan dunia tiga dimensi (contoh ditunjukkan di bawah). Seperti yang dapat anda lihat, ruang 3D ini termasuk empat bentuk: sfera, kiub, silinder, dan piramid. Senarai pendek ini menunjukkan anda bagaimana untuk memulakan dengan silinder.
Buat Cap Pemikiran anda, kerana contoh ini agak teknikal pada masa-masa tertentu, dan banyak konsep yang berkaitan dengan membina dunia 3D boleh mengelirukan, terutamanya jika ini adalah pengalaman pertama anda dengan pengaturcaraan 3D.
Langkah satu: Tambah silinder
Dalam langkah ini, anda menambah objek 3D asas ke dunia anda. JavaFX menyediakan tiga bentuk asas yang boleh anda tambahkan: silinder, kotak, dan sfera. Mulakan dengan menambahkan silinder:
Silinder silinder = Silinder baru (100, 50); akar. getChildren (). tambah (silinder);
Pembina kelas silinder menerima dua hujah: jejari silinder dan ketinggiannya. Contoh ini mewujudkan silinder kira-kira bentuk poket hoki, empat kali lebih luas kerana ia adalah tinggi; maka, ia menambahkan silinder ke nod akar tempat kejadian.
Pada ketika ini, silinder wujud di dunia, tetapi tidak dapat dilihat. Berdasarkan apa yang anda tahu mengenai bentuk 2D, anda mungkin tergoda untuk menjadikannya kelihatan dengan menambah warna isian (setFill) atau warna stroke (setStroke). Tetapi itu bukan bagaimana objek 3D berfungsi. Dalam langkah seterusnya, anda dapat mengetahui cara memohon bahan ke permukaan silinder supaya ia dapat dilihat di tempat kejadian.
Langkah dua: Buat bahan
Menampilkan wajah objek 3D adalah lebih rumit daripada menjadikan objek yang rata, dua dimensi. Untuk objek 2D, anda hanya menggunakan objek Cat melalui kaedah setFill. Cat boleh menjadi warna yang mudah, warna kecerunan, atau imej.
Untuk objek 3D, anda tidak menggunakan cat. Sebaliknya, anda menggunakan objek khas yang dipanggil bahan Phong , diwakili oleh kelas PhongMaterial. Bahan Phong (bernama selepas Bui Tuong Phong, seorang pakar grafik komputer perintis pada tahun 1970-an) menyediakan cara bagaimana wajah objek 3D diberikan secara realistik.
Kod berikut mencipta bahan Phong mudah berdasarkan dua warna biru dan kemudian memohon bahan ke silinder:
PhongMaterial blueStuff = new PhongMaterial (); blueStuff. setDiffuseColor (Warna. LIGHTBLUE); blueStuff. setSpecularColor (Warna BLUE); silinder. setMaterial (blueStuff);
Selepas bahan Phong telah digunakan pada silinder, silinder akan kelihatan di dalam tempat kejadian, seperti yang ditunjukkan.
Silinder 3D dengan bahan Phong.Langkah ketiga: Terjemahkan silinder
Anda tidak dapat merasakan bahawa silinder tidak kelihatan sangat tiga dimensi. Itu kerana anda melihatnya di tepi: Kamera menunjuk lurus di persimpangan palam x dan y, dan silinder berpusat di tempat itu.
Untuk mendapatkan beberapa perspektif pada silinder, anda boleh mengalihkannya ke lokasi yang berbeza dalam ruang 3D dengan menterjemahkan koordinat x, y, dan z. Sebagai contoh:
silinder. setTranslateX (-200); silinder. setTranslateY (200); silinder. setTranslateZ (200);
Di sini, silinder dipindahkan 200 unit ke kiri, 200 unit ke bawah, dan 200 unit dari kamera. Pandangan yang dihasilkan kelihatan lebih seperti silinder, seperti yang anda lihat di sini.
Silinder diterjemahkan 3D.Dalam angka ini, ia kelihatan seolah-olah silinder telah diputar ke hadapan supaya anda dapat melihat sedikit permukaan atas. Walau bagaimanapun, ini tidak berlaku. Apa yang sebenarnya berlaku ialah anda tidak lagi melihat kelebihan silinder.
Sebaliknya, kerana silinder berada di bawah kamera, anda melihat ke bawah. Oleh itu, anda dapat melihat sedikit muka teratas. Anda juga melihatnya dari sisi, yang menjelaskan mengapa ia kelihatan seperti anak kecil yang miring.