Pada titik waktu saya di e-on, saya telah mempertahankan perangkat lini produk Vue .
Saya dapat memberitahu Anda, itu akan membawa Anda beberapa hari, penuh waktu.
Kecuali Anda menemukan pustaka atau cara super pintar, cara klasik adalah dengan mendapatkan koordinat mouse di jendela ketika Anda mengklik, jika itu relatif berkoordinasi dengan viewport, Anda dapat membagi x dan y dengan lebar dan tinggi, Anda dapatkan vektor (float 2d) dalam kisaran [0,1]. kurangi (0,5,0,5) untuk mencapai kisaran [-0,5, 0,5] untuk x dan y.
Kemudian, Anda membuat sinar dari koordinat ini dengan menggunakan x dan y hanya sebagai ray x dan y, dan Anda mengatur z ke jarak fokus. kadang-kadang aspek rasio adalah rasa sakit di pantat dalam operasi ini. Sedikit biola dan kesalahan uji coba akan membuat Anda diperbaiki.
Kemudian, Anda perlu memeriksa persimpangan dengan elemen gizmos Anda, apakah Anda memiliki mesh yang Anda hasilkan, atau dimodelkan dalam blender atau DCC lainnya, atau bagian mesh yang dapat saling mengartikulasikan ... Hanya gunakan bagian mesh tersebut sebagai sinar / kueri persimpangan segitiga.
Atau jika Anda memilikinya, ray / silinder, ray / bola sesuai dengan tampilan dan bagian alat Anda.
Anda perlu memiliki persimpangan rutin yang mampu menerapkan matriks transformasi pada primitif yang bertabrakan . Sangat penting karena alat Anda akan menerjemahkan dengan objek yang dilayaninya bergerak, akan berputar, dan akan menskala dengan kebalikan dari jarak ke kamera, sehingga ia menjaga ukuran yang diproyeksikan tetap di layar.
Kemudian Anda memiliki bagian interaksi, yang paling mudah adalah mengambil delta titik saat mouse pertama kali "mouse down" event, dan posisi "Mouse move" saat ini, dalam 2D murni, dan gunakan delta ini sebagai gerakan sumbu saat ini di ruang dunia, dikalikan dengan beberapa k
yang Anda putuskan secara empiris. Menurut unit internal Anda versus piksel versus skala zoom saat ini dll.
Langkah terakhir adalah hanya menerapkan matriks gizmo ke objek yang dimanipulasi, sehingga mengikutinya.
Saya memberi tahu Anda bahwa ini adalah perjalanan yang sangat sulit untuk diterapkan, dan jika Anda melakukannya di waktu luang, perkirakan lebih dari satu minggu. Beberapa minggu jika Anda benar-benar menemukan bidangnya. Lebih dari satu bulan jika akhir pekan Anda sibuk dengan kegiatan lain :)
Saya sarankan Anda mengunduh Embree 2.0 dari intel untuk melakukan kueri persimpangan / segitiga untuk Anda, jadi Anda tidak perlu khawatir tentang pengkodean itu. Atau Anda tanpa ampun dapat menyalin / menempel dan mengadaptasi kode dari blender ... Saya pikir mereka pindah ke lisensi Apache? Seharusnya dimungkinkan secara hukum.