Saya sedang mengerjakan semacam embedded system, dan dalam waktu senggang saya ingin menguji kemampuan menggambarnya.
Sistem yang dimaksud adalah mikrokontroler ARM Cortex M3 yang terpasang pada papan EasyMX Stellaris. Dan saya punya layar TFT 320x240 kecil :)
Sekarang, saya punya waktu luang setiap hari dan saya ingin membuat kubus yang berputar. Micro C PRO untuk ARM tidak memiliki kemampuan menggambar 3d, yang berarti harus dilakukan dalam perangkat lunak.
Dari buku Pengantar Pemrograman Game 3D dengan DirectX 10 saya tahu aljabar matriks untuk transformasi tetapi itu keren ketika Anda memiliki DirectX untuk mengatur kamera dengan benar.
Saya Gues saya bisa membuat objek 2d untuk memutar, tetapi bagaimana saya akan pergi dengan 3d satu?
Setiap ide dan contoh dipersilakan. Meskipun saya lebih suka saran. Saya ingin memahami ini.
sumber
Jawaban:
Anda menyadari bahwa kamera directX hanya beberapa transformasi matriks? Anda memiliki ModelView, Proyeksi, lalu transformasi matriks Viewport ke setiap titik agar dapat mengubah koordinat 3d menjadi koordinat 2d.
Lebih detail tentang transformasi sepanjang pipeline standar (saya percaya DirectX dan OpenGL keduanya bekerja dengan cara yang sama).
Kemudian Anda rasterize segitiga berdasarkan lokasi 2d (yang dihasilkan dari transformasi Anda) dari sekarang array 2d dari simpul yang Anda miliki. Ini bisa menjadi rumit dengan cepat tetapi menggunakan tes PIT dan sepenuhnya mewarnai setiap piksel yang bertabrakan harus cukup sederhana dan efektif dalam kasus Anda.
Cara lain untuk melakukan ini dan cara yang lebih mudah adalah dengan membuat pelacak sinar. Cukup lepaskan proyeksi sinar dengan menggunakan matriks transformasi yang ingin Anda terapkan pada objek Anda.
Belum bermain-main dengan hal-hal tingkat rendah dalam beberapa saat jadi saya mungkin salah ingat tapi rute mana pun seharusnya tidak terlalu sulit. Memahami cara kerja pipeline perangkat keras dan mengimplementasikannya dalam perangkat lunak atau menulis pelacak sinar.
Btw ini adalah di mana saya belajar apa yang saya tahu tentang pipa grafis.
sumber
Pada hari-hari ketika perangkat keras 3D tidak tersedia, kami harus membangun mesin 3D dan rasterizer poligon kami sendiri. 3DICA adalah tutorial yang bagus menjelaskan semua dasar-dasar mesin 3D perangkat lunak. Bagi saya gambar tidak akan muncul di Firefox, tetapi di Internet Explorer berfungsi dengan baik.
Bab 2.1 dan 3.1 harus cukup untuk memenuhi kebutuhan Anda, tetapi membaca seluruh tutorial akan banyak mengajari Anda.
sumber