BAB I
PENDAHULUAN
1.1 Latar
Belakang
Pada saat ini, teknologi game dan
animasi terus mengalami perkembangan. Animasi atau dalam bahasa inggrisnya
yaitu animate yang artinya menghidupkan, member jiwa dan menggerakkan benda
mati. Animasi tersebut merupakan proses membuat suatu objek yang awalnya
merupakan benda mati, dan kemudian secara berurutan disusun dalam posisi yang
berbeda menjadi gamar yang hidup.
Animasi secara umum dapat
didefinisikan sebagai suatu sequence gambar yang ditampilkan pada tenggang
waktu tertentu agar tercipta sebuah ilusi gambar yang bergerak. Pengertian animasi
pada dasarnya ialah menggerakkan objek sehingga tampak lebih dinamis. Dewasa ini,
banyak software-software untuk membuat animasi, antara lain : Studio Max,
Macromedia, Blender dan lain-lain.
1.2 Rumusan
Masalah
Berdasarkan latar belakang yang telah
dipaparkan di atas, maka rumusan masalah dalam skripsi ini adalah menjelaskan
tentang collision itu sendiri dan bagaimana membuat dan merancang suatu objek
3D menggunakan Blender.
1.3 Batasan
Masalah
Batasan masalah dalam skripsi ini
adalah:
1. Penjelasan tentang Object Collision Modelling.
2. Membuat dan merancang suatu objek 3D menggunakan
Blender, model yang dibuat adalah model yang sederhana.
1.4 Tujuan
Penulisan
1. Mengerti dan memahami tentang Object Collision
Modelling.
2. Membuat dan merancang suatu objek 3D menggunakan
Blender, model yang dibuat adalah model yang sederhana.
1.5 Metode Penelitian
Penelitian dilakukan dengan cara menggunakan metode studi pustaka, yaitu
dengan membaca buku dan artikel yang berkaitan dengan objek 3D. Hal ini
dilakukan untuk pemahaman materi yang jelas mengenai masalah yang akan dibahas.
1.6 Sistematika
Penulisan
Sebagai gambaran singkat tentang pokok pembahasan penulisan ini, Penulis
akan menguraikannya dalam beberapa bab, dengan sistematika sebagai berikut:
BAB I
PENDAHULUAN
Pada bab ini dibahas latar belakang masalah, rumusan masalah, batasan masalah, tujuan penulisan, metode penelitian
dan sistematika penulisan.
BAB II
LANDASAN TEORI
Bab ini berisi pembahasan teoritis tentang konsep
dasar Object Collision Modelling dan penerapannya dalam aplikasi atau perangkat
lunak.
BAB III
PERANCANGAN DAN IMPLEMENTASI
Pada bab ini berisi pembahasan tentang langkah dari proses perancangan pemodelan
objek 3D yang akan dibuat dengan Blender beserta implementasi perancangan
tersebut kedalam komputer.
BAB IV PENUTUP
Bab ini berisi kesimpulan dari pembahasan yang
telah dikemukakan dalam bab-bab sebelumnya dan saran-saran yang sifatnya
mengarah kepada penyempurnaan dari apa yang telah disajikan dalam tulisan ini.
BAB II
Penjelasan Tentang konsep sesuai tema yang
diberikan, penjelasan dapat menggunakan sejarah dan orang yang mengembangkan
konsep, penjelasan matematika, algoritma dan/atau contoh.
Object Collision
modeling in 3D
Object collision modeling(tabrakan)
melibatkan banyak asumsi dan perkiraan, termasuk konsep suatu ‘impuls atau
dorongan’ yang tidak terlalu jelas. Hal tersebut akan kami diskusikan pada
materi 3D object collision modeling.
Salah satu hal yang sulit pada collision
modeling adalah memahami bagaimana suatu objek bekerja dengan objek lain yang
memiliki gerakan rotasi dan linier. Metode utama yang akan kita gunakan untuk
melakukan ini melibatkan beberapa tahap, antara lain :
1. Menentukan
titik tabrakan dan arah normal pada titik ini.
2. Menghitung
impuls atau dorongan minimum untuk mencegah objek berpotongan atau untuk membalik
kecepatan, tergantung pada koefisien friksi.
3. Menghitung
efek impuls ini pada gerakan rotasi dan linier secara terpisah.
Hasil
untuk kasus 3D ini kami rangkum sebagai berikut:
Keterangan :
ARAH
Ketika kita mengerjakan persamaan ini
secara manual, terlihat cukup mudah untuk menentukan arah impuls dan tanda pada
istilah-istilah di atas. Tapi karena ini bagian dari program komputer, maka sangatlah
penting untuk memahami ketentuan yang kita asumsikan dan untuk mendapatkan
tanda yang benar.
Pada diagram berikut ini, anak panah
mengindikasikan arah positif, bukan kecepatan absolut yang mungkin saja arah negatif.
Dalam
hal ini, vai> vbi
sebelum tabrakan dan vaf<=
vbf setelah tabrakan. Jadi, impuls mengurangi
momentum dari objek a dan menambahkannya ke objek b sehingga kita mendapatkan
rumusannya sebagai berikut:
vaf
= vai - J/Ma
vbf
=vbi + J/Mb
Sekarang
kita membalik ukuran objek a dan objek b
Dalam
kasus ini, vbi> vai
sebelum tabrakan dan vbf <=
vaf setelah tabrakan. Jadi, impuls mengurangi
momentum dari objek b dan menambahkannya ke objek a sehingga kita mendapat
rumusannya sebagai berikut:
vaf
= vai + J/Ma
vbf
=vbi - J/Mb
Sekarang tampaknya kurang efektif/kacau
untuk mendapatkan program untuk menguji yang mana kecepatan tertinggi dan
menentukan persamaan mana yang akan digunakan, sehingga akan lebih mudah
menggunakan J negatif untuk mengindikasikan kasus kedua. Jika kamu melakukan
ini, perhatikan bahwa J negatif tidak berarti ia menarik, bukan mendorong. Itu
hanya berarti bahwa objek-objek bertabrakan pada arah yang lain.
Rotasi Arah
Hal tersebut akan menjadi lebih rumit
dengan adanya rotasi dalam momentum angular(sudut) yang harus diukur relatif dahulu
terhadap titik tertentu. Jika objek ‘a’ berputar searah jarum jam pada pusat
massanya, mungkin ia memberikan momentum berlawanan arah jarum jam pada objek
‘b’ pada pusat massanya. Namun, hal ini tidak akan mengubah momentum angular
dari keseluruhan sistem, bahkan untuk suatu sistem tertutup, dikarenakan gerakan linier dari pusat massa yang berbeda.
Kecepatan
pada titik tabrakan objek ‘a’ = VPA = VCA + ωa × (r-pa)
Kecepatan
pada titik tabrakan objek ‘b’ = VPB = VCB + ωb × (r-pb)
Derivasi (Penurunan)
Pada kasus 1D, kita dapat memulai dengan
definisi koefisien restitusi yang merupakan rasio kecepatan bertemu dan
memencar.
Namun, dalam kasus ini, kecepatan
bukanlah kecepatan dari pusat massa, melainkan kecepatan suatu titik (pada
koordinat absolut) dari suatu benda padat. Inilah yang merupakan titik-titik
pada suatu benda yang sebenarnya bertubrukan.
e = (vaf- vbf) / (vai
- vbi)
dimana
|
definisi lain
|
||
Simbol
|
Unit
|
Jenis
|
Unit
|
vcaf
|
kecepatan akhir titik tubrukan pada objek a
|
vektor
|
m/s
|
vcai
|
kecepatan awal titik tubrukan pada objek a
|
vektor
|
m/s
|
vcbf
|
kecepatan akhir titik tubrukan pada objek b
|
vektor
|
m/s
|
vcbi
|
kecepatan awal titik tubrukan pada objek a
|
vektor
|
m/s
|
e
|
koefisien restitusi yang bergantung pada natur dua materi yang
bertubrukan
|
skalar
|
Tidak ada
|
Δvca = vcai
- vcaf
Ini
merupakan perubahan kecepatan titik tabrakan pada benda ‘a’ yang disebabkan
oleh impuls.
Δvcb = vcbi
- vcbf
Ini
merupakan perubahan kecepatan titik tabrakan pada benda ‘b’ yang disebabkan
oleh impuls.
Sehingga didapatkan :
e * (vcai - vcbi)=
-(vcaf- vcbf)
(e+1) * (vcai - vcbi)=
-(vcaf- vcbf)+(vcai - vcbi)
(e+1) * (vcai - vcbi)=
Δvca + Δvcb
Dari relasi Δvca
dan Δvcb dengan impuls (J) maka kita mendapatkan:
ΔVp = J/M + ([I]-1(J × r)) × r
dimana
|
definisi lain
|
|||
simbol
|
deskripsi
|
jenis
|
Unit
|
|
Vp
|
Kecepatan linier suatu partikel pada benda padat (vektor)
|
vektor
|
m/s
|
|
J
|
Impulse
|
Vektor
|
||
I
|
skalar inersia seperti torsi = I * alpha (benar hanya jika objek
simetris)
|
Skalar
|
||
[I]
|
inersia tensor
|
matriks 3×3
|
||
m
|
massa
|
skalar
|
Kg
|
|
•
|
• = produk dot
|
|||
×
|
× = produk cross
|
|||
r
|
posisi partikel relatif terhadap pusat massa – NB: ini berada
pada koordinat absolut, bukan koordinat benda lokalsehingga ini menjadi
fungsi waktu jika benda berotasi.
|
Vektor
|
||
Sehingga
kita mendapatkan:
(e+1) * (vai - vbi)=
J/Ma +([Ia]-1(J × ra)) x ra + J/Mb +([Ib]-1(J × rb)) x rb
Kita ingin memecahkan persamaan di atas
untuk mendapatkan J. Untuk melakukannya, kita perlu memisahkan J ke bagian
kanan. Arah impuls akan bergantung pada natur material yang bertubrukan dan
koefisien friksinya. Jika friksi tinggi, impuls akan berada di arah yang
mendatangi titik tubrukan. Jika friksi rendah, impuls akan tegak lurus terhadap
permukaan tubrukan. Tidak ada impuls yang parallel terhadap permukaan karena
mereka dapat tergelincir di arah tersebut. Jadi, memisahkan impuls dalam
besaran dan arah dapat membuat friksi diperhitungkan dan memungkinkan besaran
impuls dikeluarkan dari sisi kanan sebagai istilah biasa.
J = n*|J|
dimana
|
definisi lain
|
||||
simbol
|
deskripsi
|
jenis
|
Unit
|
||
n
|
vektor normal yang memberikan arah impuls
|
Vektor
|
|||
J
|
vektor impuls
|
Vektor
|
|||
|J|
|
besaran impuls
|
Skalar
|
|||
Dengan asumsi bahwa ada solusi yang perlu kita buat
([Ia]-1(J ×
ra)) × ra = |J| * ([Ia]-1(n × ra)) × ra
Maka Hasilnya adalah:
|J| = (e+1) * (vai
- vbi) / (1/Ma +n•([Ia]-1(n × ra)) x ra + 1/Mb +n•([Ib]-1(n
× rb)) × rb)
Kode
Metode Alternatif
Menggunakan Matriks
Ide yang bagus untuk mengekspresikan
semua istilah ialah dengan menggunakan jenis aljabar yang sama. Tidak mungkin
mengekspresikan inersia tensor secara murni dalam istilah vektor atau quaternion. Dalam hal ini apakah mungkin
kita bisa menghitung murni dalam term matriks?
Relasi antara impuls J dan perubahan
kecepatan titik dimana J diterapkan, diperoleh di bawah ini:
Perubahan kecepatan linier suatu titik pada benda padat yang
disebabkan
J = J/M + ([I]-1(J
× r)) × r
dimana
|
definisi lain
|
||
simbol
|
deskripsi
|
jenis
|
Unit
|
ixx to izz
|
elemen dari inersia tensor (pada koordinat absolut)
|
||
rx,ry and rz
|
|||
Maka
kita dapat menyimpulkan efek J terhadap
kecepatan relatif benda A dan B:
Perubahan
kecepatan relatif linier dari titik tabrakan yang disebabkan J = (e+1) * (vai
– vbi)
Oleh
karena itu, kita perlu menginvert maktriks ini untuk mendapatkan ekspresi J
dalam term kecepatan approach.
Metode Lainnya
·
Solusi dengan impuls
·
tabrakan inelastis
sempurna
·
tabrakan elastis
sempurna
·
Solusi dengan
konservasi momentum dan energi
Solusi dengan Impuls
Impuls
yang ditransfer antarobjek = [NEMa]* (vaf - vai)= -[NEMb]*(vbf
- vbi) dimana:
·
[NEMa] =
Matriks Newton-Euler untuk objek a; ini merupakan matriks 6x6.
·
[NEMb] =
Matriks Newton-Euler untuk objek b; ini merupakan matriks 6x6.
·
vaf=
kecepatan akhir objek a. Ini merupakan vektor 6 dimensi yang mengandung
komponen-komponen linier dan rotasi di semua 3 dimensi.
·
vai=
kecepatan awal objek a. Ini merupakan vektor 6 dimensi yang mengandung
komponen-komponen linier dan rotasi di semua 3 dimensi.
·
vbf=
kecepatan akhir objek b. Ini merupakan vektor 6 dimensi yang mengandung
komponen-komponen linier dan rotasi di semua 3 dimensi.
·
vbi=
kecepatan awal objek b. Ini merupakan vektor 6 dimensi yang mengandung
komponen-komponen linier dan rotasi di semua 3 dimensi.
Catatan : Saya mengasumsikan bahwa pada kasus elastis, hanya bagian
linier impuls yang ditransfer antarobjek. Oleh karena itu, torsi eksternal
selalu nol sehingga persamaan di atas menjadi benar. Pada kasus inelastis, mungkin ada impuls rotasi yang ditransfer.
Satu-satunya situasi yang dapat saya pikirkan dimana impuls rotasi
akan muncul adalah saat terjadi tubrukan dua massa yang berotasi pada ulir
sekrup yang sama. Adakah yang dapat membantu saya mengklarifikasi hal ini?
Apakah kita perlu mempertimbangkan komponen impuls rotasi pada tubrukan objek
padat yang mengambang bebas?
Tabrakan inelastis sempurna
Pertama-tama kita mengambil
kasus tabrakan inelastis sempurna (dimana objek saling menempel setelah
tabrakan) dan kecepatan akhir mereka sama. Jadi,
vaf= vbf (ini tidak
sepenuhnya benar karena ketika objek saling menempel, mereka akan mulai saling
mengitari satu sama lain, tetapi mereka akan memiliki kecepatan rata-rata yang
sama dimana kecepatan ini merupakan kecepatan pusat massa)
[NEMa]* (vaf - vai)= -[NEMb]*(vbf - vbi)
Bila vaf disubstitusi
dengan vbf maka:
[NEMa]*
(vaf - vai)= [NEMb]*(-vaf+vbi)
Kita ingin menemukan nilai dari vaf.Saat mengalikan maktriks suatu
vektor, perkalian lebih distributif dibandingkan penambahan sehingga
[NEMa]* vaf- [NEMa]*vai=[NEMb]*vbi- [NEMb]*vaf
Kita dapat menyusun
ulang vektor ini untuk mendapatkan:
[NEMa]* vaf+ [NEMb]*vaf = [NEMb]*vbi + [NEMa]*vai
Kami tidak tahu banyak tentang matriks aljabar untuk memprosesnya lebih
jauh, sehingga kami akan menjabarkannya demikian:
Mungkin
ada suatu jalan dimana kita dapat menggantikan dua matriks pada bagian kiri
persamaan dengan suatu matriks tunggal yang merepresentasikan inersia atau
massa dari objek yang bergabung. Ini juga merupakan masalah pada bagian awal
dimana dua objek saling mengitari satu sama lain sehingga memiliki matriks
inersia atau massa yang berbeda. Jadi, didapatkan :
[NEMcombined]* vaf
= [NEMb]*vbi + [NEMa]*vai
Maka
solusinya adalah:
vaf= vbf =[NEMcombined]inverse * ( [NEMb]*vbi + [NEMa]*vai )
Nilai dari impuls
adalah:
impulse = [NEMa]* (vaf - vai)
impulse =
[NEMa]* ([NEMcombined]inverse* ( [NEMb]*vbi + [NEMa]*vai ) - vai)
Tubrukan
elastis sempurna
Pada kasus ini, diasumsikan
bahwa persamaan impuls sama dengan kasus inelastis (tetapi nilainya menjadi dua
kali lipat sebab objek-objek yang terpisah pada kecepatan yang sama).
Saya tidak berpikir bahwa
ini merupakan kasus yang tepat sebab pada kasus 3D tanpa friksi, impuls
seharusnya normal terhadap permukaan tubrukan dan impuls rotasi seharusnya nol.
Apakah ada yang dapat memberikan ide bagaimana menghitung nilai impuls ini?
impulse = 2 [NEMa]* ([NEMcombined]inverse * ( [NEMb]*vbi +
[NEMa]*vai ) - vai)
Kecepatan akhir = kecepatan
awal + impuls
vaf= vai +
2 [NEMa]* ([NEMcombined]inverse * ( [NEMb]*vbi + [NEMa]*vai ) - vai)
Solusi
dengan konservasi momentum dan energy
Dengan konservasi momentum linier:
Dengan
konservasi momentum angular:
dimana
semua rotasi pada persamaan di atas hampir sama seperti pada kasus 2D. Jika
kita ingin mengukur rotasi objek itu sendiri pada pusat massanya, kita perlu
menerapkan teorema sumbu paralel dimana akan menambah variable lain pada
persamaan di atas.
Dengan
konservasi energi
Ini
menghasilkan 7 persamaan dengan 12 variabel yang tidak diketahui sehingga kita
membutuhkan informasi tambahan untuk memecahkannya:
·
kecepatan
a : vafx, vafy, dan vafz
·
kecepatan
b : vbfx, vbfy, dan vbfz
·
rotasi
a terhadap sumbu x : wax
·
rotasi
a terhadap sumby y : way
·
rotasi
a terhadap sumbu z : waz
·
rotasi
b terhadap sumbu x : wbx
·
rotasi
b terhadap sumby y : wby
·
rotasi
b terhadap sumbu z : wbz
Jadi, ada ketidakcukupan informasi untuk
memecahkan persamaan ini sehingga kita perlu menambah informasi tambahan
seperti batasan-batasan yang dapat diterapkan atau penerapan ‘sudut insidensi =
sudut pencerminan’.
Walaupun kita memiliki informasi yang
cukup untuk memecahkan kasus umum, persamaan tersebut masih sangat rumit untuk
dapat dipecahkan dalam kasus umum. Khususnya karena kita tidak bekerja dalam frame-of-reference dari bentuk-bentuk
individual, maka secara umum variabel I (Inersia) merupakan suatu fungsi
sudut-sudut objek. Gerakan rotasi objek membuat persamaan tersebut menjadi
semakin rumit sehingga kita perlu menggunakan pendekatan yang berbeda seperti
berikut:
Asumsikan bahwa kita bergerak ke frame referensi bentuk 1, maka bentuk 1
akan selalu muncul stasioner pada frame
ini. Pergerakan bentuk 2 akan lebih mudah dihitung pada frame ini, misalnya jika kita mengasumsikan bahwa impuls berada
pada arah normal saja (tidak ada pergeseran). Oleh karena itu, pergerakan
paralelnya terhadap bidang datar akan konstan dan pergerakan normalnya terhadap
bidang datar akan terbalik selama tabrakan. Mungkin ada energi yang ditransfer
antara pergerakan linier dan angular, bergantung pada posisi relatif pusat massa bentuk 2 dan titik
tabrakan, namun sebagai perkiraan pertama, apakah mungkin kita mengabaikan hal
tersebut?
Kita masih harus menghitung bagaimana
pergerakan frame-of-reference telah
berubah selama tabrakan, tetapi ini relatif mudah menggunakan konservasi
momentum.
Jadi, bagaimana memindahkan bentuk 1 ke frame-of-reference? Yang harus kita
lakukan adalah memindahkan bentuk 2 di bawah bentuk 1 pada scene graph, jangan lupa terjemahkan semua parameter yang terkait
dengan bentuk.
Jadi,
transform [T8] memberikan posisi bentuk 2 relatif terhadap bentuk 1 dimana
dalam kasus ini:
[T8] = [T7][T3][inverse
T2][inverse T5]
Jangan
lupa kita harus mentransform semua parameter kinematis dan dinamis untuk bentuk
2.
Komponen Rotasi untuk
contoh 3D di atas
Jika kita mengasumsikan bahwa kedua
objek menjelajahi ruang bebas (tidak ada torsi eksternal), ketika mereka
bertabrakan maka mereka akan menjelajahi ruang bebas lagi.
Seperti dijelaskan di atas, rotasi awal
diketahui dan kita ingin menentukan rotasi akhir. Pada saat tubrukan, energi
dapat ditransfer antara objek-objek yang bertabrakan dan antara energi linier
dan rotasi.
Hukum konservasi momentum dan energi di
atas tidak cukup untuk menentukan kecepatan akhir. Kita perlu mencari faktor
lain yang ditentukan oleh geometri objek.
Salah satu faktor adalah objek-objek
hanya dapat berotasi pada sumbu tertentu (tidak ada torsi). Jika objek
merupakan suatu bulatan sempurna (atau minimal variable inersianya sama di
semua arah), objek dapat berotasi pada semua arah, namun minimal kita adapat
menggunakan bentuk simetrisnya untuk menyederhanakan persamaan. Jika objek
tidak simetris, mereka hanya dapat berotasi pada sumbu tertentu dimana ini akan
membatasi hasil yang diharapkan.
Faktor lainnya adalah posisi titik
dampak relatif terhadap pusat massa dua objek.
Jika ini terlalu rumit, kamu dapat
mempertimbangkan pendekatan numeris lainnya terkait dengan tabrakan.
Tidak ada komentar:
Posting Komentar