Daftar Isi:
Video: Nasib Nasib... Kenapa Harus Dikasih Ini! - Pro VS Noob Survival #4 2024
Dalam beberapa langkah singkat Anda bisa mulai membuat program 3D yang relatif sederhana di JavaFX yang menampilkan dunia tiga dimensi (contohnya ditunjukkan di bawah ini). Seperti yang bisa Anda lihat, ruang 3D ini mencakup empat bentuk: bola, kubus, silinder, dan piramida. Daftar singkat ini menunjukkan cara memulai dengan silinder.
Kenakan Cap Berpikir Anda, karena contoh ini cukup teknis, dan banyak konsep yang berkaitan dengan membangun dunia 3D bisa membingungkan, terutama jika ini adalah pengalaman pertama Anda dengan pemrograman 3D.
Langkah pertama: Tambahkan silinder
Pada langkah ini, Anda menambahkan objek 3D dasar ke duniamu. JavaFX menyediakan tiga bentuk dasar yang dapat Anda tambahkan: silinder, kotak, dan bidang. Mulailah dengan menambahkan silinder:
Silinder silinder = Silinder baru (100, 50); akar. getChildren (). tambahkan (silinder);
Konstruktor kelas Silinder menerima dua argumen: jari-jari silinder dan tinggi badannya. Contoh ini menciptakan silinder kira-kira bentuk keping hoki, empat kali selebar tinggi; Kemudian, ia menambahkan silinder ke simpul akar adegan.
Pada titik ini, silinder ada di dunia, tapi tidak terlihat. Berdasarkan apa yang Anda ketahui tentang bentuk 2D, Anda mungkin tergoda untuk membuatnya terlihat dengan menambahkan warna isi (setFill) atau warna stroke (setStroke). Tapi bukan itu cara kerja 3D. Pada langkah selanjutnya, Anda menemukan bagaimana cara menerapkan material ke permukaan silinder sehingga akan terlihat di tempat kejadian.
Langkah kedua: Buat bahan
Rendering wajah objek 3D jauh lebih rumit daripada merender benda dua dimensi datar. Untuk objek 2D, Anda cukup menerapkan objek Paint melalui metode setFill. Catnya bisa berupa warna sederhana, warna gradien, atau gambar.
Untuk objek 3D, Anda tidak menerapkan cat. Sebagai gantinya, Anda menerapkan objek khusus yang disebut bahan Phong , yang diwakili oleh kelas PhongMaterial. Materi Phong (dinamai Bui Tuong Phong, pakar grafis komputer perintis pada tahun 1970an) menyediakan sarana untuk menampilkan wajah objek 3D secara realistis.
Kode berikut ini membuat bahan Phong sederhana berdasarkan dua warna biru dan kemudian menerapkan material ke silinder:
PhongMaterial blueStuff = new PhongMaterial (); blueStuff. setDiffuseColor (Warna LIGHTBLUE); blueStuff. setSpecularColor (Warna BIRU); silinder. setMaterial (blueStuff);
Setelah bahan Phong diaplikasikan ke silinder, silinder akan terlihat di dalam pemandangan, seperti yang ditunjukkan.
Silinder 3D dengan bahan Phong.Langkah ketiga: Menerjemahkan silinder
Anda pasti menyadari bahwa silinder tidak terlihat sangat tiga dimensi. Itu karena Anda melihatnya dari sisi ke depan: Kamera mengarah langsung ke persimpangan sumbu x dan y, dan silinder terpusat pada titik itu.
Untuk mendapatkan beberapa perspektif pada silinder, Anda dapat memindahkannya ke lokasi yang berbeda dalam ruang 3D dengan menerjemahkan 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 turun, dan 200 unit menjauh dari kamera. Tampilan yang dihasilkan terlihat seperti silinder, seperti yang bisa Anda lihat di sini.
silinder 3D yang diterjemahkan.Pada gambar ini, terlihat seolah-olah silinder telah diputar maju sehingga Anda bisa melihat sedikit permukaan atas. Ini tidak terjadi, namun. Apa yang sebenarnya terjadi adalah Anda tidak lagi melihat sisi silinder.
Sebaliknya, karena silinder berada di bawah kamera, Anda akan melihat ke bawah. Dengan demikian, Anda bisa melihat sedikit wajah paling atas. Anda juga melihatnya dari samping, yang menjelaskan mengapa hal itu muncul hanya tad miring.