Selamat datang di ForSa! Forum diskusi seputar sains, teknologi dan pendidikan Indonesia.

Welcome to Forum Sains Indonesia. Please login or sign up.

Maret 29, 2024, 05:31:07 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 231
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 248
Total: 248

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

[Demo]Motion Capture

Dimulai oleh Farabi, Desember 27, 2013, 12:46:20 PM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Farabi

[pranala luar disembunyikan, sila masuk atau daftar.]

Motion capture adalah simulai gerakan tubuh manusia yang bisa jadi diambil dari gerakan manusia asli dengan menggunakan kamera khusus. Pada umumnya proses motion capture menggunakan 8 buah kamera dengan posisi yang telah disusun sedemikian rupa dengan menggunakan marker atau penanda khusus yang dipasang pada tubuh peraga untuk menandai suatu bagian tubuh. Motion capture biasa digunakan untuk membuat game atau film supaya gerakan yang ada bisa tampak sealami mungkin karena berdasarkan dari gerakan asli tubuh manusia. Untuk mengembangkan sistem motion capture ini saya membutuhkan waktu sampai 3 tahun karena mentok akibat tidak memahami matriks dan cara mengalikannya dengan vector sehingga mendapatkan suatu koordinat berdasarkan data data yang telah disimpan dalam file bvh.
Dengan menggunakan bahasa pemrogaman assembler, CPU usage yang digunakan dalam pemrosesan motion capture bvh ini sangatlah minim, untuk memuat data dan memprosesnya saja dibutuhkan waktu kurang dari 1 detik untuk memproses sampai data 1000 frames, untuk menampilkan dilayar sebanyak 32 frame perdetik pun dengan menggunakan assembler hanya memakan CPU usage sampai 0%.
File bvh menggunakan hierarki yang digunakan untuk mendefinisikan bagian bagian dari induk sampai anak anak dari sebuah rangka yang biasa disebut bone atau tulang. Jika induk bergerak secara logika maka anak anak pun akan ikut bergerak, sehingga pergerakan akan terlihat seperti aslinya. Untuk menggerakan induk sehingga anak anak ikut bergerak dibutuhkan teknik pemrograman yang disebut sebagai rekursif, yaitu memanggil fungsi yang sama didalam fungsi yang dipanggil tersebut, kendalam dalam pemrograman assembler menggunakan rekursif adalah sulitnya untuk menyeimbangkan stack sehingga stack yang dialokasikan harus sama jumlahnya dengan stack yang dealokasi sehingga penggunaan memori antara yang dipakai dengan dibebaskan harus sama sehingga sistem tidak mengalami kebocoran memory yang mengakibatkan beberapa bagian memori pada RAM tidak bisa digunakan karena dianggap sedang digunakan oleh program.
Untuk membuat sistem motion capture seorang programmer harus menguasai beberapa jumlah teknik tingkat tinggi seperti geometri 3 dimensi, matrix, perkalian vektor sampai harus menguasai teknik mengubah dari nilai arah vektor menjadi rotasi dalam format euler angle. Kesalahan yang saya lakukan selama 3 tahun ini adalah, tidak mampu untuk memahami bahwa rotasi yang harus dilakukan adalah mengikuti sususan tertentu yang sudah distandardkan sesuai kesepakatan yang tertera pada file. Jika kita biasa memutar sebuah benda berdasarkan susunan X kemudian Y dan Z, maka pada file bvh susunan tersebut kadang tidak berurutan sehingga mengakibatkan kalkulasi rotasi menjadi sangat rumit.

Proof of concept:
[pranala luar disembunyikan, sila masuk atau daftar.]

Perhatikan bahwa untuk memproses format bvh pada 32 frame perdetik hanya memakan CPU usage 0% saja pada komputer keluaran tahun 2008. Suatu cara yang sangat efisien sekali jika ditangani dengan menggunakan assembler dengan teknik khusus yang disebut rekursif, bandingkan dengan program sejenis misalkan bvh player yang bisa didownload di internet yang mencapai CPU Usage 100% dengan frame rate 30 saja.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Akhirnya berhasil juga melakukan skinning, skinning ini adalah proses memberikan kulis pada sebuah kerangka sehingga animasi misalakan manusia menjadi mempunya bentuk manusia
Contoh:


Untuk kecepatan masih sangat lambat, untuk meload dan mengkalkulasikan data sehingga bisa menjadi animasi dengan jumlah segitiga sebanyak 200 rb memakan waktu 30 detik. Bisa dibayangkan jika animasi yang harus dimuat berjumlah ratusan, juga untuk satu model dibutuhkan RAM sampai hampir 1 GBytes, benar benar buatan saya masih tidak optimal dan boros sumber daya.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Ini adalah program tersebut dalam bentuk exe. Load timenya sangat lama sekitar 30 detik dan penggunaan memory mencapai 1 GBytes. Ini hanya demo motion capture [pranala luar disembunyikan, sila masuk atau daftar.]
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

__________

itu gambar apa? Gundam bukan?
trus anda tadi bilang manusia yang mirip manusia?

Kutip dari: Farabi pada Mei 06, 2014, 09:32:55 PM
Akhirnya berhasil juga melakukan skinning, skinning ini adalah proses memberikan kulis pada sebuah kerangka sehingga animasi misalakan manusia menjadi mempunya bentuk manusia

Farabi

Salam.
Maksudnya jika menggunakan model manusia gerakannya akan mirip dengan manusia. Modelnya  memang vundam tapi motion capturenya dari manusia sungguhan.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.