METODE PROSEDURAL
Kenapa menggunakan metode prosedural?
Terdapat batasan pada metode pemodelan menggunakanrepresentasi permukaan
polygon. Misalnyauntuk pemodelan obyek fisikseperti awan, air, asap, api, dsb
Sulit menggabungkanmetode pemodelan dengan representasipolygon dengan
hukum-hukum fisika
Metode prosedural menggunakanalgoritmadalam merepresentasikan permukaan dengan
poligon
METODE PROSEDURAL
Beberapa metode prosedural :
Model yang berbasisfisikdan sistempartikel
Model yang berbasisbahasa
Model geometrifraktal
Model noise prosedural
PEMODELAN YANG BERBASIS FISIK
Pemodelan obyek yang mengikutihukum-hukum fisika
Dilakukan dengan menerapkan aturan dasar dari fisika dan menggunakan persamaan
matematikauntuk mengatur perilakudinamisdari obyek
Misalnya:
Bola yang memantul sesuai aturan fisika apabila menyentuh permukaan benda yang
lain
SISTEM PARTIKEL
Kumpulan dari partikel, biasanyaberupa titik pusat massadimanaperilaku dinamis dari
partikelditentukandari solusi persamaan differensial
Misalnya:
Memodelkan perilakuturbulensipada dinamikafluida
Memodelkan benda yang deformable, apabiladikenakangaya maka bentuk benda
berubah sesuai partikelpenyusunnya
Memodelkan letusankembangapi
Memodelkan gelombang
PARTIKEL NEWTONIAN
Sistem partikelyang mengikuti hukum newton dua
𝐟𝐟=𝑚𝑚𝐚𝐚
Dimana f adalah gaya, m adalahmassa partikel, a adalah percepatan
Setiap partikel pada bidang 3D mempunyai 6 derajat kebebasan
Misalnya ada partikel 𝑖 dengan posisi :
𝑝𝑖=[𝑥𝑖 𝑦𝑖 𝑧𝑖]
Kecepatannya :
𝑣𝑖=̇ 𝑝𝑖= ̇ [𝑥𝑖̇ 𝑦𝑖̇ 𝑧𝑖]
Percepatannya :
𝐚𝑖=̇ 𝑣𝑖=1/𝑚𝑖 𝐟𝑖(𝑡)
PARTIKEL INDEPENDEN
Dalam sistem partikel, setiap partikel akan berinteraksi dengan yang lain dan dikenakan
gaya tertentu pada masing-masingpartikel Hal ini lebih mudah diterapkan pada model
partikel independen
Misalnya:
Sebuah partikelhanya dikenaigaya gravitasi
Setiappartikeldiberikanlifetime yang berbeda-beda
Cocok digunakan dalam merender model asap atau awan
KOMPLEKSITAS SISTEM PARTIKEL
Kompleksitas model partikel independenadalah𝑂𝑂(𝑛𝑛)dan
menjadi𝑂𝑂(𝑛𝑛2)bilainteraksi antarpartikeljuga diperhitungkan
Untuk mengurangi kompleksitas, hanya interaksi dengan partikelterdekat saja yang
diperhitungkan
Sehinggakompleksitasnya tetap 𝑂(𝑛)
PARTIKEL DENGAN GAYA PEGAS
Interaksi antarpartikelterdekat dapat diterapkan dengan gaya pegas
Misalnya partikel q dan p seolah-olah terhubung dengan sebuah pegas
Maka hubungan keduanya dapat dituliskan dengan hukum Hooke
f=−𝑘𝑠(|d|−𝑠) d/|d|
Dengan f adalah gaya pegas, −𝑘𝑠 adalah konstanta pegas, dadalah jarak regangan pegas, dan
s adalah jarak tanpa dikenai gaya
PARTIKEL DENGAN GAYA PEGAS
Pegas akan berosilasiterus-menerus jika tidak dikenai gaya redam Oleh karena itu perlu
diterapkangaya redam pada persamaan pegas :
f=−(𝑘𝑠(|d|−𝑠)+𝑘𝑑(d.d/|d|)) d/|d|
Dimana 𝑘𝑑 adalah konstanta redaman dan ̇ d=̇ p−̇ q
Contoh penerapan :
• Pada bendera yang tertiupangin, permukaan bendera akan berubah tergantunggaya dari
angin
PARTIKEL DENGAN GAYA TARIK – GAYA TOLAK
Partikel dengan gaya tarik– gaya tolak memungkinkan untuk berubah posisinya dari posisi
awal
Berbeda dengan partikelgaya pegas yang menjaga posisipartikel tetap sesuai dengan
posisinya
Gaya tarik– gaya tolakpada partikel:
f=−𝑘𝑟 d/|d|3
Dimana f adalah gaya, 𝑘𝑟 adalah konstantagaya tarik– gaya tolak, d=p−q adalah arah gaya
tarik– gaya tolak
BATASAN PADA SISTEM PARTIKEL
Batasan pada sistempartikelada dua yaitu :
Hard constraint : batasan yang harus dipenuhi
Misalnya: bola harusmemantuljika menghantamdinding, partikeltidakboleh
menembusdinding padat, dsb
Soft constrain : batasan yang boleh hanyamendekati terpenuhi
Misalnya: duapartikelbolehberadapadajaraktertentupadasistempartikel
TABRAKAN PADA SISTEM PARTIKEL
Tabrakan pada sistempartikeldibagi menjadi dua kondisiyaitu deteksi dan reaksi
Deteksidapat dilakukandengan memasukkan posisipartikelke persamaan permukaan
benda
Waktu disaat partikelmenyentuhpermukaan dapat ditentukandari persamaan
differensialdari partikel
Reaksi dilakukansama seperti saat cahaya memantulpada permukaan dengan
menggunakannormal dari permukaan dan sifatpermukaan
GEOMETRI FRAKTAL
Dikembangkan oleh Mandelbrot
Obyek grafis yang dibuat dengan fraktal disebut graftal Prinsipfraktal : kesamaan dan skala
Misalnya:
Dari kurva dengan panjang 1 dibagi menjadi 4 bagiandengan panjang
masing-masing1/3
Biladibagi lagi secara tak terbatas maka kurva inimenjadi bukan 1D atau 2D
lagisehinggadimensiyang baru harus ditentukan
DIMENSI FRAKTAL
Dari gambar subdivisi sebelumnya, bagian yang terkecil dari obyek tersebut dapat dibuat
dengan memperkecil obyek dengan factor h dan menduplikasinyasebanyak k
Dan yang konstan adalah jumlah semua bagiannya selalu sama
Bila n adalah segment yang dibuat dan d adalah dimensidari obyek maka :
𝑘/𝑛𝑑 = 𝑘𝑛
−𝑑= 1
Dimensi fractal dapat dihitungdengan: 𝑑=ln 𝑘/ln 𝑛
FRAKTAL UNTUK PEMODELANPERMUKAAN DARATAN
Permukaan dapat dimodelkan dengan menggunakan permukaan tetrahedron
kemudianditerapkan subdivisidari titiktengah
Langkahnya:
Dari satu sisitetrahedron diambiltitiktengahnya
Dibuat subdivisidari titiktengahmenjadi 4 permukaan segitiga
FRAKTAL UNTUK PEMODELANPERMUKAAN DARATAN
Setiappermukaan yang baru dapat dibuat bervariasisecara acak
MANDELBROT SET
Metode untuk membuat bentuk kompleksdengan algoritmasederhana
Metode ini melibatkan bilangan kompleks
Misalnya titik pada bidang kompleks:
𝑧=𝑥+𝐢𝑦
Dimana 𝑥 adalah bagian real dan 𝑦 adalahbagian imajiner
Bila ada dua bilangan kompleks 𝑧1 dan 𝑧2 maka :
𝑧1+𝑧2=(𝑥1+𝑥2)+(𝑦1+𝑦2)𝐢
𝑧1 𝑧2=(𝑥1𝑥2−𝑦1𝑦2)+(𝑥1𝑦2+𝑥2𝑦1)𝐢
MANDELBROT SET
Magnitude / besarandari bilangankompleksyaitu:
𝑧2=𝑥2+𝑦2
Dalam bidang kompleks fungsi berikut memetakan bilangan kompleks kebilangan kompleks
𝑤=𝐹(𝑧)
Misalnya ada bentuk rekurensi dari fungsi tersebut:
𝑧𝑘+1=𝐹(𝑧𝑘)
dengan titik awa ldari fungs itersebut adalah 𝑧0=𝑐
Jika 𝑧𝑘+1 dipetakan kebidang kompleks maka menjadi seperti gambar disamping
MANDELBROT SET
Bila fungsi nya : 𝑧𝑧𝑘𝑘+1=𝑧𝑧𝑘𝑘 2+𝑐𝑐Dengan 𝑧𝑧0=0+0𝐢𝐢. Titik 𝑐𝑐merupakan set Mandelbrot
bilatitikyang dihasilkanfungsi terbatasMaka bidang kompleksdapat dibagi menjadi dua yaitu
yang memenuhiset Mandelbrot dan yang tidak Set Mandelbrot dapat dideteksidengan :
• Bila𝑧𝑧𝑘𝑘>4maka titikselanjutnya akan menjadi lebihbesar sehinggaiterasi dapat dihentikan
• Bilaiterasimencapai batas tertentumaka dihentikandan titik-titikyang dihasilkanmenjadi set
Mandelbrot
Contoh Penerapan Program Metode Prosedural
Penerapan Fragment Shader Fraktal Mandelbrot
#version 150 core
uniform sampler1D tex;
uniform vec2 center;
uniform float scale;
uniform int iter;
void main() {
vec2 z, c;
c.x = 1.3333 * (gl_TexCoord[0].x - 0.5) * scale - center.x;
c.y = (gl_TexCoord[0].y - 0.5) * scale - center.y;
int i;
z = c;
for(i=0; i<iter; i++)
{
float x = (z.x * z.x - z.y * z.y) + c.x;
float y = (z.y * z.x + z.x * z.y) + c.y;
if((x * x + y * y) > 4.0) break;
z.x = x;
z.y = y;
}
gl_FragColor = texture1D(tex, (i == iter ? 0.0 : float(i)) / 100.0);
}
Kenapa menggunakan metode prosedural?
Terdapat batasan pada metode pemodelan menggunakanrepresentasi permukaan
polygon. Misalnyauntuk pemodelan obyek fisikseperti awan, air, asap, api, dsb
Sulit menggabungkanmetode pemodelan dengan representasipolygon dengan
hukum-hukum fisika
Metode prosedural menggunakanalgoritmadalam merepresentasikan permukaan dengan
poligon
METODE PROSEDURAL
Beberapa metode prosedural :
Model yang berbasisfisikdan sistempartikel
Model yang berbasisbahasa
Model geometrifraktal
Model noise prosedural
PEMODELAN YANG BERBASIS FISIK
Pemodelan obyek yang mengikutihukum-hukum fisika
Dilakukan dengan menerapkan aturan dasar dari fisika dan menggunakan persamaan
matematikauntuk mengatur perilakudinamisdari obyek
Misalnya:
Bola yang memantul sesuai aturan fisika apabila menyentuh permukaan benda yang
lain
SISTEM PARTIKEL
Kumpulan dari partikel, biasanyaberupa titik pusat massadimanaperilaku dinamis dari
partikelditentukandari solusi persamaan differensial
Misalnya:
Memodelkan perilakuturbulensipada dinamikafluida
Memodelkan benda yang deformable, apabiladikenakangaya maka bentuk benda
berubah sesuai partikelpenyusunnya
Memodelkan letusankembangapi
Memodelkan gelombang
PARTIKEL NEWTONIAN
Sistem partikelyang mengikuti hukum newton dua
𝐟𝐟=𝑚𝑚𝐚𝐚
Dimana f adalah gaya, m adalahmassa partikel, a adalah percepatan
Setiap partikel pada bidang 3D mempunyai 6 derajat kebebasan
Misalnya ada partikel 𝑖 dengan posisi :
𝑝𝑖=[𝑥𝑖 𝑦𝑖 𝑧𝑖]
Kecepatannya :
𝑣𝑖=̇ 𝑝𝑖= ̇ [𝑥𝑖̇ 𝑦𝑖̇ 𝑧𝑖]
Percepatannya :
𝐚𝑖=̇ 𝑣𝑖=1/𝑚𝑖 𝐟𝑖(𝑡)
PARTIKEL INDEPENDEN
Dalam sistem partikel, setiap partikel akan berinteraksi dengan yang lain dan dikenakan
gaya tertentu pada masing-masingpartikel Hal ini lebih mudah diterapkan pada model
partikel independen
Misalnya:
Sebuah partikelhanya dikenaigaya gravitasi
Setiappartikeldiberikanlifetime yang berbeda-beda
Cocok digunakan dalam merender model asap atau awan
KOMPLEKSITAS SISTEM PARTIKEL
Kompleksitas model partikel independenadalah𝑂𝑂(𝑛𝑛)dan
menjadi𝑂𝑂(𝑛𝑛2)bilainteraksi antarpartikeljuga diperhitungkan
Untuk mengurangi kompleksitas, hanya interaksi dengan partikelterdekat saja yang
diperhitungkan
Sehinggakompleksitasnya tetap 𝑂(𝑛)
PARTIKEL DENGAN GAYA PEGAS
Interaksi antarpartikelterdekat dapat diterapkan dengan gaya pegas
Misalnya partikel q dan p seolah-olah terhubung dengan sebuah pegas
Maka hubungan keduanya dapat dituliskan dengan hukum Hooke
f=−𝑘𝑠(|d|−𝑠) d/|d|
Dengan f adalah gaya pegas, −𝑘𝑠 adalah konstanta pegas, dadalah jarak regangan pegas, dan
s adalah jarak tanpa dikenai gaya
PARTIKEL DENGAN GAYA PEGAS
Pegas akan berosilasiterus-menerus jika tidak dikenai gaya redam Oleh karena itu perlu
diterapkangaya redam pada persamaan pegas :
f=−(𝑘𝑠(|d|−𝑠)+𝑘𝑑(d.d/|d|)) d/|d|
Dimana 𝑘𝑑 adalah konstanta redaman dan ̇ d=̇ p−̇ q
Contoh penerapan :
• Pada bendera yang tertiupangin, permukaan bendera akan berubah tergantunggaya dari
angin
PARTIKEL DENGAN GAYA TARIK – GAYA TOLAK
Partikel dengan gaya tarik– gaya tolak memungkinkan untuk berubah posisinya dari posisi
awal
Berbeda dengan partikelgaya pegas yang menjaga posisipartikel tetap sesuai dengan
posisinya
Gaya tarik– gaya tolakpada partikel:
f=−𝑘𝑟 d/|d|3
Dimana f adalah gaya, 𝑘𝑟 adalah konstantagaya tarik– gaya tolak, d=p−q adalah arah gaya
tarik– gaya tolak
BATASAN PADA SISTEM PARTIKEL
Batasan pada sistempartikelada dua yaitu :
Hard constraint : batasan yang harus dipenuhi
Misalnya: bola harusmemantuljika menghantamdinding, partikeltidakboleh
menembusdinding padat, dsb
Soft constrain : batasan yang boleh hanyamendekati terpenuhi
Misalnya: duapartikelbolehberadapadajaraktertentupadasistempartikel
TABRAKAN PADA SISTEM PARTIKEL
Tabrakan pada sistempartikeldibagi menjadi dua kondisiyaitu deteksi dan reaksi
Deteksidapat dilakukandengan memasukkan posisipartikelke persamaan permukaan
benda
Waktu disaat partikelmenyentuhpermukaan dapat ditentukandari persamaan
differensialdari partikel
Reaksi dilakukansama seperti saat cahaya memantulpada permukaan dengan
menggunakannormal dari permukaan dan sifatpermukaan
GEOMETRI FRAKTAL
Dikembangkan oleh Mandelbrot
Obyek grafis yang dibuat dengan fraktal disebut graftal Prinsipfraktal : kesamaan dan skala
Misalnya:
Dari kurva dengan panjang 1 dibagi menjadi 4 bagiandengan panjang
masing-masing1/3
Biladibagi lagi secara tak terbatas maka kurva inimenjadi bukan 1D atau 2D
lagisehinggadimensiyang baru harus ditentukan
DIMENSI FRAKTAL
Dari gambar subdivisi sebelumnya, bagian yang terkecil dari obyek tersebut dapat dibuat
dengan memperkecil obyek dengan factor h dan menduplikasinyasebanyak k
Dan yang konstan adalah jumlah semua bagiannya selalu sama
Bila n adalah segment yang dibuat dan d adalah dimensidari obyek maka :
𝑘/𝑛𝑑 = 𝑘𝑛
−𝑑= 1
Dimensi fractal dapat dihitungdengan: 𝑑=ln 𝑘/ln 𝑛
FRAKTAL UNTUK PEMODELANPERMUKAAN DARATAN
Permukaan dapat dimodelkan dengan menggunakan permukaan tetrahedron
kemudianditerapkan subdivisidari titiktengah
Langkahnya:
Dari satu sisitetrahedron diambiltitiktengahnya
Dibuat subdivisidari titiktengahmenjadi 4 permukaan segitiga
FRAKTAL UNTUK PEMODELANPERMUKAAN DARATAN
Setiappermukaan yang baru dapat dibuat bervariasisecara acak
MANDELBROT SET
Metode untuk membuat bentuk kompleksdengan algoritmasederhana
Metode ini melibatkan bilangan kompleks
Misalnya titik pada bidang kompleks:
𝑧=𝑥+𝐢𝑦
Dimana 𝑥 adalah bagian real dan 𝑦 adalahbagian imajiner
Bila ada dua bilangan kompleks 𝑧1 dan 𝑧2 maka :
𝑧1+𝑧2=(𝑥1+𝑥2)+(𝑦1+𝑦2)𝐢
𝑧1 𝑧2=(𝑥1𝑥2−𝑦1𝑦2)+(𝑥1𝑦2+𝑥2𝑦1)𝐢
MANDELBROT SET
Magnitude / besarandari bilangankompleksyaitu:
𝑧2=𝑥2+𝑦2
Dalam bidang kompleks fungsi berikut memetakan bilangan kompleks kebilangan kompleks
𝑤=𝐹(𝑧)
Misalnya ada bentuk rekurensi dari fungsi tersebut:
𝑧𝑘+1=𝐹(𝑧𝑘)
dengan titik awa ldari fungs itersebut adalah 𝑧0=𝑐
Jika 𝑧𝑘+1 dipetakan kebidang kompleks maka menjadi seperti gambar disamping
MANDELBROT SET
Bila fungsi nya : 𝑧𝑧𝑘𝑘+1=𝑧𝑧𝑘𝑘 2+𝑐𝑐Dengan 𝑧𝑧0=0+0𝐢𝐢. Titik 𝑐𝑐merupakan set Mandelbrot
bilatitikyang dihasilkanfungsi terbatasMaka bidang kompleksdapat dibagi menjadi dua yaitu
yang memenuhiset Mandelbrot dan yang tidak Set Mandelbrot dapat dideteksidengan :
• Bila𝑧𝑧𝑘𝑘>4maka titikselanjutnya akan menjadi lebihbesar sehinggaiterasi dapat dihentikan
• Bilaiterasimencapai batas tertentumaka dihentikandan titik-titikyang dihasilkanmenjadi set
Mandelbrot
Contoh Penerapan Program Metode Prosedural
Penerapan Fragment Shader Fraktal Mandelbrot
#version 150 core
uniform sampler1D tex;
uniform vec2 center;
uniform float scale;
uniform int iter;
void main() {
vec2 z, c;
c.x = 1.3333 * (gl_TexCoord[0].x - 0.5) * scale - center.x;
c.y = (gl_TexCoord[0].y - 0.5) * scale - center.y;
int i;
z = c;
for(i=0; i<iter; i++)
{
float x = (z.x * z.x - z.y * z.y) + c.x;
float y = (z.y * z.x + z.x * z.y) + c.y;
if((x * x + y * y) > 4.0) break;
z.x = x;
z.y = y;
}
gl_FragColor = texture1D(tex, (i == iter ? 0.0 : float(i)) / 100.0);
}