Secara umum, dunia memetakan banyak segitiga, dan peta adalah daftar segitiga-segitiga ini dan lokasi di dunia dari setiap titik. Proses menggambar mereka adalah:
- Atur posisi 'kamera' - jika Anda berada di dunia, di sinilah Anda akan berada di posisi dunia
- Ubah simpul segitiga menjadi 'ruang kamera'
- Ubah segitiga dari 'ruang kamera' menjadi 'ruang layar' - di sinilah efek perspektif terjadi (benda yang jauh lebih kecil). Segitiga menjadi 2D pada titik ini.
- Gambar segitiga 2D ke layar tersembunyi.
- Ketika semua segitiga telah ditarik, perlihatkan layar ke pemain.
Langkah terakhir biasanya dikaitkan dengan frame rate monitor, sehingga proses menampilkan layar tersembunyi dilakukan selama interval v-blank - sebuah konsep yang berasal dari monitor tabung sinar katoda yang memungkinkan sinar katoda bergerak dari kanan bawah ke atas kiri, ini diperlukan dengan cepat, tetapi tidak secara spontan, mengubah tegangan pada kumparan defleksi di bagian belakang tabung sinar.
Ini adalah metode yang sangat sederhana. Untuk mendapatkan kinerja tinggi, Anda perlu menambahkan hal-hal seperti pemindahan permukaan yang tersembunyi, occulsion, penentuan set yang terlihat, dan sebagainya. Ada banyak algoritma yang terlibat dalam memutuskan apa yang akan digambar.
Juga, saya katakan dunia terdiri dari segitiga, tetapi mungkin tidak disimpan dalam disk dengan cara ini. Seringkali, segitiga yang ditarik ke layar ditentukan pada saat run time dari primitif orde tinggi, seperti peta ketinggian, splines, tessalation, primitif geometris (misalnya bola, kotak, dll) dan sebagainya.
Perangkat keras khusus tidak diperlukan - banyak game 3D awal melakukan semuanya dalam perangkat lunak (bahkan pada CPU 8-bit tanpa FPU). Itu hanya membuatnya lebih cepat dan lebih mudah dilakukan.
Pertanyaan yang sangat sederhana. Tidak ada jawaban yang mudah.