12
12.1
Metode Pemodelan BerdasarkanPada Fungsional
Pendahuluan Bab ini melihat gagasan mengenai pembangkitan obyek atau struktur menurut prosedur. Ini adalah sebuah bidang penting dalam grafik komputer, dan hanya merupakan cara praktis dimana adegan tertentu dapat dihasilkan. Sebagai contoh, pohon dalam sebuah pemandangan alam hanya pantas dihasilkan menurut proseduro Sebuah contoh mengenai pembangkitan yang menurut prosedur yang telah kita singgung adalah definisi dari sebuah medan tekstur tiga-dimensi. Perhitungan terlebih dahulu dan penyimpanan sebuah medan tekstur akan mahal dan tekstur tersebut dihitung pada saat perenderan dari sebuah prosedur. Di dalam bab ini kita memaparkan tiga teknik umum yang digunakan dalam grafik komputer tiga-dimensi. Ini adalah:
· ·
·
fungsi deterministic atau non-stochasticyang telah digunakan (terutama fungsi harmonik dalam pembangkitan tanah lapang), fungsi stochastic yang digunakan dalam pembangkitan fenomena seperti tanah lapang, api, dan turbulensi, dan sebuah gabungan dari yang diatas yang telah digunakan, misalnya, didalam model air atau gelombang.
Teknik ini digunakan untuk memodulasi sebuah atribut dari sebuah obyek yang ada (seperti dalam, misalnya, tekstur kelereng yang diuraikan dalam Bab 7) atau fungsi yang barangkali ia sendiri menghasilkan sebuah obyek seperti dalam sistem partikel yang kini diuraikan. 488
Metode Pemodelan Berdasarkan Pada Fungsional
489
Pemodelan fungsional datang untuk digunakan dalam dalam grafik komputer lebih atau kurang serentak dengan sejumlah praktisi, semua yang tertarik dalam penghasilan gambar yang tampak rumit haru~ menetapkan bahwa kerumitan didalam sistem yang berdasar jaring poligon yang besar. Istilah penguatan basis data dibuat untuk mencerminkan kenyataan bahwa gambar kompleks yang sangat rinci dapat dihasilkan dad sebuah 'rumus kecil'. Teknik yang urnurn jelas dapat digunakan untuk peniruan fenomena alami, dimana kompleksitas ditengahi oleh beberapa tingkat kemiripan-sendiri.
12.2
Sistem partikel Sebuah contoh dad sebuah pola fungsional yang menghasilkan sebuah uraian obyek adalah sistem pemodelan partikel Reeves (Reeves, 1983).Disini pemodelan dad suatu obyek dan proses perenderan bergabung menjadi sebuah pendekatan fungsional tunggal. Teknik ini digunakan untuk memodel fenomena yang disebut Reeves sebagai obyek yang samar dan mencakup, rnisalnya, api, awan, dan air. Sistem partikel Reeves tidak memungkinkankeluar dari batas dengan animasi, dan meskipun obyek yang diam dapat dikembangkan dengan menggunakan teknik ini, proses tersebut paling berkesan pada saat pemodelan fenomena yang berubah terhadap waktu, misalnya api. Sebuah obyek dinyatakan oleh sebuah awan dari partikel elementer masingmasing adalah lahir, berevolusi dalam ruang, dan mati atau musnah, semua pada waktu yang berbeda. Partikel individual bergerak dalam ruang tiga-dimensi dan berubah atribut seperti warna, sifat ternbus pandang, dan ukuran sebagai fungsi dari waktu. Watak global dad sebuah awan partikel dan watak rinci dari partikel individual diturunkan dad bermacam-macam fungsi. Sebagai contoh, jumlah partikel yang dibangkitkan pada saat tertentu dapat diturunkan dad: Nt
= M, + Random(r)
V,
dimana M, adalah jumlah rata-rata dari partikel dalam suatu populasi. Random(r) adalah sebuah variabel pseudorandomdan V,adalahvariansi dari populasi tersebut. Pendekatan yang sarna dapat digunakan untuk menentukan nilai bagi parameter awal yang bisa menguraikan, misalnya, pengusiran sebuah partikel dad sebuah titik. Parameter yang digunakan oleh Reeves adalah:
490
Pengantar Komputer Grafik
. .
. . . . .
posisi awal, kecepatan awal (kecepatan dan arah), ukuran awal, wama awal, sifat tembus pandang awal, bentuk, dan waktu hidup.
Pergerakan dari partikel individual kemudian ditulis menggunakan parameter ini sebagai fungsi waktu. Reeves menggunakan sistem yang tepat sarna dengan sistem ini dalam 'Star Trek II' untuk membangkitkan sebuah transformasi (dari sebuah planet mati menjadi sebuah planet hidup) dengan menggerakkan sebuah dinding api melintas sebuah permukaan planet.
12.3
Sistem fractal Geometri fractal adalah sebuah suku yang dibuat oleh Benoit Mandelbrot (1977; 1982). Istilah tersebut digunakan untuk menguraikan atribut fenomena alami tertentu, misalnya garis pantai. Sebuah garis pantai dipandang pada sembarang tingkat rincian - pada tingkat mikroskopis, pada sebuah tingkat dimana batu individual dapat dilihat atau pada tingkat ' geografis' - cenderung menampakkan tingkat gerigi yang sarna;jenis statistik kemiripan sendiri. Geometri fractal memberikan sebuah uraian untuk aspek tertentu dari fenomena 'obiquitous' secara alami dan kecenderungannya ke arah kemiripan sendiri. Secara konseptual ini dilukiskan dalam Plate 26, yang dihasilkan oleh sebuah prosedur rekursif yang sederhana(Program 12.1)yang pada dasarnyamenggambarpohon biner. Parameter seperti sudut cabang dan panjang diganggu secara acak. (Karena program sederhana ini menggunakan garis untuk meniru bentuk sederhana tiga-dimensi kita menggunakan utilitas garis dua-dimensi yang bukan standar. Mereka adalah Colour, Move_to, dan Line_to.) Plate 26 memperlihatkan hasil dari dua buah eksekusi dari prosedur yang sarna dengan menggunakan sebuah aturan pohon biner. Dua buah lukisan yang lain dihasilkan dengan memperkenalkan lebih dari dua cabang pada masing-masing titik. Ia dapat dilihat dari contoh ini bahwa kenyataan dapat ditingkatkan dengan membuat diameter dari cabang berubah sebagai fungsi kedalaman, dengan memperkenalkan, katakan, pembengkokan yang disebabkan oleh angin dan menggunakan dimensi ruang ketiga. Pola pen-
Metode Pemodelan Berdasarkan Pada Fungsional
491
Program 12.1 Rutin rekursifuntuk penggambaran pohon biner. ~~'-'-..- --- -. -......--.....-.---. ()rocedure trl'l~(:.:,y: reul; {II/KI.,, hmlld,jll1l, heiKht: reul; heightJilctor. all/{l.,/actor: real: Immdulellsity, depth: imeKer)~ CO"st pi
= 3.142:
vur i, xint, yillt: intl!/{er; :
-
cabangan tersebut mudah diperluas menjadi dimensi ketiga dengan menggunakan dua sudut pada sebuah cabang
-
sebuah azimut dan sudut elevasi. Sebuah contoh
492
Pengantar Komputer Grajik
yang berkesan dari jenis pendekatan ini diberikan dalam 'The Mighty Maple' (Bloomenthal, 1985), dimana model pohon tersebut adalah tiga-dimensi dan pemetaan tekstur digunakan untuk memodel kulit kayu pada cabang. Di dalam grafik komputer tiga-dimensi, teknik fractal telah digunakan untuk menghasilkan model tanah lapang dan teknik yang paling mudah melibatkan sub-pembagian facet dari obyek yang berisi segitiga dan quadrilateral. Sebuah prosedur sub-pembagian rekursif diterapkan pada masing-masing facet, terhadap sebuah kedalaman atau tingkat rincian yang diperlukan, dan hasil model tanah lapang yang meya-kinkan. Sub-pembagian dalam konteks ini berarti mengambil titik tengah sepanjang tebing antara dua puncak dan mengganggunya sepanjang sebuah normal garis ke tebing. Hasil dari hal ini adalah untuk membagi-bagi facet yang asli menjadi sejumlah besar facet yang lebih kecil, masing-masing memiliki sebuah orientasi acak didalam ruang tiga-dimensi sekitar orientasi facet yang asli. Bentuk global asal dari obyek tersebut dipertahankan sedemikian rupa sehingga tergantung pada gangguan pada sub-pembagian dan sebuah piramid empat-sisi planar bisa berubah menjadi sebuah obyek yang berbentuk 'Mont Blanc'. Kebanyakan algoritma sub-pembagian didasarkan pada sebuah rumusan oleh Fournier, Fussel, dan Carpenter (1982) yang membagi-bagi sebuah segmen garis tunggal secara rekursif.Algoritma ini dikembangkansebagai sebuah altematif yang secara matematis lebih benar, akan tetapi mahal, prosedur yang disarankan oleh Mandelbrot. Ia menggunakan kemiripan-sendiri dan sifat harapan bersyarat dari pecahan gerakan Brownian untuk memberikan sebuah perkiraan dari peningkatan proses stochastic. Proses tersebut adalahjuga Gaussian dan hanya parameter yang diperlukan untuk menguraikan sebuah distribusi Gaussian adalah 'mean' (harapan bersyarat) dan variansi. Prosedur (Program 12.2)membagi-bagisebuah garis secara rekursif(ttJj),(t2l2) dengan menghasilkan sebuah perpindahan skalar dari titik-tengah pada garis dalam arah normal terhadap garis tersebut (Gambar 12.1). Untuk memperluas prosedur ini, katakan, segitiga atau quadrilateral didalam ruang tiga-dimensi, kita memperlakukan masing-masing edge yang selanjutnya menghasilkan perpindahan sepanjang sebuah vektor yang merupakan normal terhadap bidang facet yang asli (Gambar 12.2). Dengan menggunakan teknik ini kita dapat mengambil sebuah piramida yang mulus, katakan, yang dibuat dari sisi segitiga yang besar dan mengubahnya menjadi sebuah bukit yang kasar. Fournier mengkategorisasikan dua masalah didalam metode ini - konsistensi internal dan eksternal. Konsistensi internal memerlukan bahwa bentuk yang diha-
Metode Pemodelan Berdasarkan Pada Fungsional
Program 12.2 Sub-pembagian dari sebuah garis secara rekursif.
-----.----
-
procedure fmctulCtl. p. 12. p. rc.w/miu". rollgl1f/('.\'.~: /'('Il/): vllr r. timid. fmid: rcal: he~in if (.~qr(t2 - tl) + sqr(f2 - fl) < sqr(re.l'o/utiOtI) then be~in Move_ toe round( tl). round(fl): Lillc_ toe round( t2). rollnd(j2» end else begin r := rand( -1. + 1): tmid := (tl + t2)/2 roughness*(12 - 11)*r; Imid := (/1 + 12)/2 + rOllghness*(t2 - tl)*r; Iractal(tl. fl. tmid, Imid. resolution, roughness); jractal(tmid, Imid, 12, /2, resolution, roughness) end end:
-
I
II ~--------
'I
t"..~1
Gambar 12.1 Sub-pembagian segmen garis.
-....-
493
494
Pengantar Komputer Grafik
\
Gambar 12.2 Sub-pembagian segitiga.
silkan harus sarna apapun orientasi dirnana ia dihasilkan, dan rincian kekasaran rnasih sarna jika bentuk tersebut digarnbarkan kernbali pada resolusi yang lebih besar. Untuk rnernenuhikeperluan yang pertarna,Gaussian yang dihasilkan secara acak harus tidak rnerupakan sebuah fungsi dari posisi titik, akan tetapi harus unik terhadap titik itu sendiri. Sebuah pengidentifikasititik invariant perlu digabungkan dengan rnasing-rnasingtitik. Masalah ini dapat diselesaikandidalarn pernbangkitan tanah lapang perlu dihubungkan dengan rnernberikan sebuah nilai kunci yang digunakan untuk rnengindekssebuah bilanganacak Gaussian. Sebuah fungsi 'hash' yang dapat digunakan untuk rnernetakan dua buah kunci dari titik ujung pada sebuah garis ke sebuah nilai kunci untuk titik tengah. Keperluan akan skala dari konsistensiinternalberartibahwabilanganacakyang sarnaharus selalu dibangkitkan dengan urutan yang sarna pada sebuahtingkat sub-pernbagiantertentu. Konsistensi eksternallebih sulit untuk dipertahankan. Oidalarnjaring segitiga setiap segitiga patungan sisinya dengan yang lain, jadi perpindahan acak yang sarna harus dibangkitkan untuk rnenghubungkan titik dari segitiga penghubung yang berbeda. Ini telah diselesaikan dengan rnenggunakan nilai kunci dari rnasing-rnasing titik dan fungsi 'hash', akan tetapi rnasalah yang lain rnasih ada, pada arah perpindahan.
Metode Pemode/an Berdasarkan Pada Fungsiona/
495
Jika perpindahan sepanjang nonnal pennukaan dari poligon yang sedang ditinjau, kemudian poligon yang berdekatan yang memiliki nonnal yang berbeda (menurut definisi, selalu merupakan kasus) yang akan memiliki perpindahan titik tengah mereka menuju posisi yang berbeda. Ini menyebabkan celah terbuka. Sebuah penyelesaian adalah dengan memindahkan titik tengah sepanjang nonnal rata-rata terhadap semua po ligon yang berisi ia, akan tetapi masalah ini terjadi pada setiap tingkat rekursi dan akibatnya adalah sangat mahal untuk diimplementasikan. Juga, teknik ini akan menciptakan kaki langit yang tidak memuaskan karena perpindahan tersebut tidak dikekang pada satu arab. Sebuah kaki langit yang lebih bagus diperoleh dengan membuat semua perpindahan titik internal menuju poligon yang asli searah dengan nonnal bidang poligon yang asli tersebut, dan celah diciptakan oleh mereka. Kini nonnal pennukaan tidak perlu diciptakan pada masing-masing tingkat rekursi dan algoritma tersebut dianggap lebih murah karena hal ini. Dua sifat yang lain bagus untuk disebutkan. Pertama, catat bahwa poligon tersebut harns dibayangi secara tetap tanpa memperhitungkan nonnal puncak - ketidak malaran antara antara poligon harus tidak dimuluskan. Kedua, perhatikan warna. Pola warna global yang biasa menggunakan sebuah pemetaan yang tergantung pada ketinggian. Secara rincci, warna yang ditetapkan ke sebuah titik tengah adalah salah satu dari warna ujungnya. Yang dipilih ditentukan oleh sebuah boolean acak yang diindeks oleh nilai kunci dari titik-tengah. Sekali lagi ini harus diakses dengan cara ini untuk mempertahankan konsistensi, yang sepenting warna seperti halnya posisi.
12.4
Fungsi yang cocok untuk tekstur tiga-dimensi
12.4.1
Fungsi noise tiga-dimensi Dua dasar umum yang digunakan dalam sintesa tekstur tiga-dimensi adalah fungsi harmonik dan fungsi random. Pengaruh yang berguna seperti kelereng mudah dicapai dengan menggabungkan keduanya. Dasar dari tekstur solid yang didasarkan secara stochastic, yang dibahas didalam Bab 7, adalah sebuah fungsi noise pseudorandom yang diindeks oleh sebuah vektor atau titik tiga-dimensi. Sifat alami dan rancangan dari sebuah fungsi seperti ini diajukan oleh Perlin (1985) yang memperkenalkan sebuah fungsi yang disebut noise. Perlin menunjukkan bahwa fungsi tersebut dirancang agar memiliki sifat berikut:
496
Pengantar Komputer Grajik
.
. .
invariance statistik pada perputaran, frekuensi batas pelewat-bidang yang sempit (ia tidak memiliki ciri yang dapat dilihat yang lebih besar atau lebih kecil dari jangkauan tertentu), dan invariance statistik pada translasi.
noise memiliki sebuah nilai pseudorandom untuk titik yang ditentukan dengan koordinat x,y,z - kisi integer. Untuk semua titik yang lain di dalam suatu ruang nilai noise ditentukan oleh interpolasi dari nilai pada kisi integer. Kebutuhan bagi pendekatan ini dapat dilihat dengan membayangkan hasil dengan mengembalikan sebuah bilangan pseudorandom untuk masing-masing (floating-point) masukan vektor tiga-dimensi ke fungsi tersebut. Prosedur yang diperlihatkan dalam Program 12.3 adalah sebuah pengimplementasian noise yang sederhana. Perlin menggunakan fungsi noise ini didalam bermacam-macam konteks untuk memodulasi wama dan mengganggu normal dari obyek tiga-dimensi. Salah satu dari pemakaian noise yang paling efektif yang dikembangkan oleh Perlin adalah sebuah fungsi turbulensi sintetis yang digunakan untuk memodel corona matahari.
12.4.2
Sintesa Fourier Sintesa Fourier dapat digunakan sebagai sebuah dasar untuk banyak fenomena alami termasuk air dan tanah lapang. Ia pertama kali tampak digunakan dalam grafik komputer untuk meniru tanah lapang dalam simulator penerbangan (Schachter, 1980; 1983). Didalam pemakaian ini fungsi cosinus dua-dimensi digunakan untuk memodulasi wama dari sebuah bidang datar dalam perspektif, untuk memberikan penteksturan yang ekonimis bagi isyarat kedalaman. Gardener (1984; 1985) menggunakan sintesa Fourier tiga-dimensi untuk memodel awan, pohon, dan tanah lapang, dan menunjukkan bahwa pendekatan tersebut cukup berdaya gun a untuk memodel ciri mikro - seperti daun pada pohon dan kerutan pada tanah lapang begitu juga ciri makro - pengelom-
-
pokan pohon dan topografi bukit yang utama. Pembangunan sebuah medan tekstur tiga-dimensidengan menggunakan sintesa Fourier berarti membangkitkan parameter yang menentukan amplitudo, frekuensi, dan fase dari sinusoida. Kemudian ini digabungkan secara linear untuk menghasilkan sebuah fungsi dimana, dengan pemilihan parameter secara hatihati, periodik yang melandasi dapat ditutup atau disembunyikan. Gardener menggunakan sebuah fungsi tiga-dimensi G(X,Y,Z) untuk memodel bentuk yang tidak
Metode Pemodelan Berdasarkan Pada Fungsional
Program 12.3 Sebuah pengimplementasian noise yang sederhana.
procedure
inilialize_
noi,\'e;
var x, y, z, xx, yy, zz: nrange; he~in {set up the noise lattice} for x : = 0 to mux_ noise do for y : =0 to mux_ noise do for z : = 0 to max_ noise do begin noise_ table [x , y, z] := round(randohl(l)*lOOOO); if x = max_noise then xx := 0 else xx := x; if y = mux_ noise then yy := 0 else yy := y; if z = max_ noise then zz := 0 else ::z := z; noise_ table[x, y, z] := noise_ table[xx, yy, ::::] end; end {initialize_ noise}; function frac( r: real): real; begin frac := r end {frac};
-
trunc( r);
function noise(x, y, z: real): real; var ix, iy, iz: integer; ox. oy, oz: real: n: integer: nOO,n01, n10, nll: real: nO, n1. real: begin {offset x, y, Z to ensure they are positive} x := x + 15000; y := y + 15000; z := Z + 15000; {find lattice coordinates and real offsets} ix:= trllnc(x) mod max_noise; iy := trzmc(y) mod max_lIoise; i:: : = lrunc(::)
mod lIllL\:_ lIoise;
ox := frac(x): oy := frac(y); 0:: := frac(::); {imerpolace 10 getlloise \'UIlIeal (ix + ox. iy + 0)'. iz + v::)} 11:= noise_wble[ix. iy, i::); nOO:= 1/ + on(noise_ttlble[ix
+ 1. iy. iz] - n):
= lIoi.~e_ table[ ix.
iy. i:: + 1): nOI := 11 + ox.(lIoi.\'e_ttlble[ix + 1, iy. i:: + I] 1/ :
n:= 1/oise_wble[ix. iy + 1. iz);
-
n);
497
~._-_.._-.~
498
Pengantar Komputer Grajik
- n); + II - I,):
/I/O := n + ox.(noi,\'('_ taM" ix + I, iy + I, iz I /I :::: nOl,H1_tahll'[ix, iy + I. i: + II:
fill := n + oX"(floi,\'(,_tahl..(ix+ l. iy + l. iz nO := n{){) + oY"(flIO
nl := nOI + oy..(nll
- nOO); -
nO/): noise := (nO + oZ"'(fll - flO»...O.OOOl; end {nui,s'e};
berbentuk pohon dan awan, dengan memodulasi intensitas permukaan dan sifat tembus pandang dari elips. Pola parameter yang dikembangkan oleh Gardener (1988) adalah: n
G(X, Y,Z) = 2: Ci[cos (WxiX + cjJxj)+ Ao] i=l n
X
2:
i=l
Ci[COS(WyiY
+ cjJyi)+ Ao]
n
X
2: Ci[cas (W:iZ + cjJ:j)+ Ao]
(12.1)
i=l
dimana: n adalah sebuah nilai antara 4 dan 7 Ci+l
0.707 Ci
~
C1 dipilih sedemikian rupa sehingga G(X;Y,z) :::;;1 dan nilai C;, roxi, royi, rozi memberikan sebuah spektrum bersama l/f didalam semua macam fenomena alami. Nilai awal dari ro menentukan landasan atau &ekuensi dasar seperti penggulungan bukit dalam sebuah tanah lapang. roxi+I
~
2roxi
royi+l~ 2royi rozi+ I ~ 2rozi
(jJxi,(jJyi,dan (jJziadalah pergeseran fase kemana sebuah komponen acak dapat dibuat Ao adalah offset dasar yang menyediakan kendali kontras. Sebuah studi yang lengkap mengenai bagaimana cara parameter ini diubah untuk memberikan tekstur alami yang meyakinkan ditemukan oleh Gardener (1988).
Metode Pemodelan Berdasarkan Pada Fungsional
499
Proyek, catatan, dan saran 12.1 Pohon Perluas Program 12.1 sedemikian rupa agar ia menghasilkan sebuah pohon dalam ruang tiga-dimensi, sebagaimana yang disarankan dalam buku ini.
12.2 Tanah lapang fractal Kembangkan prosedur sub-pembagian rekursif (Program 12.2) sedemikian rupa sehingga ia menghasilkan sebuah tanah lapang dalam ruang tiga-dimensi dengan menggunakan teknik yang disarankan dalam buku ini. 12.3 Tanah lapang spektral Gunakan sebuah versi dua-dimensi dari Persamaan 12.1 untuk membangkitkan sebuah tanah lapang. Kerjakan ini dengan menggunakan G(x,y) untuk menentukan nilai elevasi pada masing-masing titik pada sebuah kisi yang teratur. Kemudian ini menentukan sebuah struktur jaring poligon yang dapat dirender oleh sebuah perender biasa.. Catat bagaimana kendali yang sederhana dan efektif tersedia pada kekasaran tanah lapang tesebut dengan mengendalikan parameter frekuensi ruang dan parameter amplitudo. Dapatkah pendekatan ini, yang jauh lebih sederhana dari sub-pembagian, menghasilkan pengaruh visual yang sarna sebagaimana teknik fractal? 12.4 Tanah lapang spektral animasi Hasilkan sebuah sebuah film yang dianimasi, dimana sebuah gangguan koheren dari sebuah bentuk yang cocok yakni (katakan) sejajar dengan salah satu sumbu koordinat melalui tanah lapang. Muncul bermacam-macam kemungkinan; misalnya, ukuran gangguan dapat bertambah atau berkurang begitu ia berjalan, atau sebuah pusat gangguan dapat bergerak keluar. 12.5 Model gelombang sederhana Dengan memakai 'kisi yang diganggu' dari dua proyek sebelumnya gunakan sebuah sinusoida tunggal yang berjalan, mengitari sebuah gangguan tunggal, untuk meniru sebuah obyek yang dijatuhkan kedalam air. Modulasikan amplitudo
500
Pengantar Komputer Grajik
sebagai fungsi waktu sedemikian rupa sehingga riak akan lenyap begitu mereka menyebar. Sebuah model gelombang yang teliti diperoleh dalam tulisan Fournier, Fussel, dan Carpenter (1986). 12.6 Modulasi tiga-dimensi dari permukaan Gunakan Persamaan 12.1 untuk memodulasi permukaan dari sembarang model yang cocok; misalnya, pindahkan puncak dari sebuah obyek yang diperkirakan bola sejumlah yang ditentukan oleh Persamaan 12.1 sepanjang sebuah garis dari pusat obyek tersebut ke puncak (catat bahwa cara yang paling mudah untuk mengimplementasikan metode ini adalah dengan menggunakan sebuah perender penyangga-Z penuh. 12.7 Pemandangan alam (*) Integrasikan semua teknik diatas kedalam sebuah sistem pembangkitan pemandangan alam dengan menggunakan sebuah penyangga-Z penuh untuk menyelesaikan masalah penyusunan. Gardener (1984) memberikan rincian pada model untuk perpindahan dan pendistribusian, misalnya, pohon sebuah pandangan alam kompleks. 12.8 Sistem partikel Rancanglah sebuah sistem partikel yang akan membangkitkan sebuah sistem untuk memodel kembang api. Ini yang paling baik didemonstrasikan dengan menggunakan sebuah urutan yang dianimasi. Variabel yang mencakup ledakan yang bentuknya berbeda, berbeda sudut pelemparan, lintasan yang berbeda, dan warna partikel tersebut berubah sebagai fungsi waktu.