bab 9. perenderan volume -...

23
9 perenderan Volume 9.1 Pendahuluan Perenderan volume berarti perenderan data yang berdasarkan voxel. Bab 2 memperkenalkan teknik pernyataan data yang didasarkan pada pelabelan semua voxel di dalam sebuah daerah ruang obyek dengan penempatan obyek. Kita melihat bahwa dalam pemakaian dimana obyek homogen yang besar dapat me- nempati ratusan atau ribuan voxel, kita bisa menentukan sebuah struktur hierarki, seperti sebuah octree, pada data tersebut. Pada sisi yang lain, dalam pemakaian seperti gambar medis sebuah struktur data bisa berupa sebuah larik voxel tiga-di- mensi yang sangat besar. Dalam bab ini kita sangat memperhatikanhimpunan voxel yang tidak terstruktur. Perenderan voxel pada saat ini memperoleh dua pemakaian utama: perenderan model eSG dan pemvisualisasian fungsi skalar dari variabel ruang tiga. Data eSG dapat diubah menjadi sebuah pernyataan voxel (Bagian 2.6.3) dan dirender. Disana tidaktampak cukup berpengalaman telah dilaporkan dalam literatur me- ngenai apakah rute ini untuk merender model eSG lebih disukai daripada strategi lain yang terdapat dalam Bab 2. Dalam lima tahun terakhir sebuah disiplin baru - ViSe (Visualization in scientific computing) - telah muncul. Salah satu bidang aplikasi utama dalam medan ini adalah pemvisualisasian fungsi skalar dari variabel ruang tiga. Data ini, sebelum tersedianya perangkat-keras dan perangkat-Iunak untuk perenderan vo- lume, telah divisualisasikan dengan menggunakan teknik tradisional seperti kon- tur yang sarna dalam bidang potongan melintang. Fungsi skalar dari variabel ruang banyak sekali dalam bidang pengetahuan dan rekayasa. Para insinyur memperhatikan rancangan obyek tiga-dimensi dan menganalisa watak potensial mereka. Perhitungan bisa menghasilkan ramalan yang berhubungan dengan suhu dan tekanan, misalnya. 414

Upload: trandat

Post on 23-Feb-2018

225 views

Category:

Documents


2 download

TRANSCRIPT

9 perenderan Volume

9.1 Pendahuluan

Perenderan volume berarti perenderan data yang berdasarkan voxel. Bab 2memperkenalkan teknik pernyataan data yang didasarkan pada pelabelan semuavoxel di dalam sebuah daerah ruang obyek dengan penempatan obyek. Kitamelihat bahwa dalam pemakaian dimana obyek homogen yang besar dapat me-nempati ratusan atau ribuan voxel, kita bisa menentukan sebuah struktur hierarki,seperti sebuah octree, pada data tersebut. Pada sisi yang lain, dalam pemakaianseperti gambar medis sebuah struktur data bisa berupa sebuah larik voxel tiga-di-mensi yang sangatbesar. Dalam bab inikita sangatmemperhatikanhimpunanvoxelyang tidak terstruktur.

Perenderan voxel pada saat ini memperoleh dua pemakaian utama: perenderanmodel eSG dan pemvisualisasian fungsi skalar dari variabel ruang tiga. DataeSG dapat diubah menjadi sebuah pernyataan voxel (Bagian 2.6.3) dan dirender.Disana tidaktampak cukup berpengalaman telah dilaporkan dalam literatur me-ngenai apakah rute ini untuk merender model eSG lebih disukai daripada strategilain yang terdapat dalam Bab 2.

Dalam lima tahun terakhir sebuah disiplin baru - ViSe (Visualization inscientific computing) - telah muncul. Salah satu bidang aplikasi utama dalammedan ini adalah pemvisualisasian fungsi skalar dari variabel ruang tiga. Data ini,sebelum tersedianya perangkat-keras dan perangkat-Iunak untuk perenderan vo-lume, telah divisualisasikan dengan menggunakan teknik tradisional seperti kon-tur yang sarna dalam bidang potongan melintang. Fungsi skalar dari variabelruang banyak sekali dalam bidang pengetahuan dan rekayasa. Para insinyurmemperhatikan rancangan obyek tiga-dimensi dan menganalisa watak potensialmereka. Perhitungan bisa menghasilkan ramalan yang berhubungan dengan suhudan tekanan, misalnya.

414

Perenderan Volume 415

II..:tcctur

I~~l\Irce~1(:,)

Many I D projectionsare used to reconstruct

a single slice of data

Many 2D slices One 3D voxel modd

(b)

Gambar 9.1 Tahap dalam penyusunan sebuah himpunan data voxel dari data CT. (a) Data CTtangkapan bekerja dengan mengambil banyak proyeksi satu-dimensi melalui sebuah irisan (scan-ning). (b) Pemipaan rekonstruksi CT.

Sebuah volume voxel apakah yang dihasilkan oleh sebuah model matematika,seperti perhitungan dinarnika cairan, atau voxel yang dikumpulkan dari alarnnyata, seperti dalarn garnbar medis. Perangkat-Iunak pemvisualisasi umumnyamenangani kedua jenis tersebut dengan cara yang sarna. Perbedaan praktis yangutarna antara sumber data yang berbeda adalah bentuk dan volume elemen. DalamHmu bedah kedokteran voxel dapat berupa persegi daripada kubus. Di dalamcontoh yang diperlihatkan dalarn Plate 14 volume elemen bentuknya teriris, jadisebuah sHinderdibagi-bagi seperti irisan kue.

Garnbar medis berubah menjadi salah satu pemakaian perenderan volumeyang paling terkenal. Ia memungkinkan data dikumpulkan dari sebuah sistem'tomographic' sebagai sebuah himpunan bidang sejajar yang dipandang sebagaisebuah obyek tiga-dimensi. Bahan dalam bab ini paling banyak berdasarkan padapemakaian khusus ini. Meskipun pemikiran tertentu yang tergantung pada kon-teks perlu, masalah penggambaran medis sangat umum dan sembarang strategiyang dikembangkan untuk hal ini akan mudah beradaptasi dengan pemakaianyang lain.

Di dalarn penggambaran medis data tiga-dimensi tersedia dari tumpukan dataCT (computed tomography) sejajar. Sistem tersebut merekonstruksi atau me-

416 Pengantar Komputer Grafik

ngumpulkan data dalam himpunan bidang sesuai dengan beberapa sifat khusus,modal yang paling umum berupa koefisien penyerapan sinar-X pada masing-ma-sing titik dalam bidang tersebut. Sistem medis dasar memungkinkan seorangdokter untuk memandang informasi dalam masing-masing bidang. Dengan pem-visualisasian seluruh tumpukan bidang dianggap sebagai data volume dan diren-der dengan sesuai. Sebuah gambaran yang sangat disederhanakan dari sistempenggambaran tomographic diperlihatkan dalam Gambar 9.1. Dari sini kita harusmencatat bahwa informasi dicuplik dalam banyak bidang dua-dimensi pada kete-balan DOl.Nilai voxel diambil dari data ini. Data tersebut menampilkan karakte-ristik bahwa resolusi dalam sebuah bidang (biasanya 512 x 512) jauh lebih besardari resolusi antara bidang. Scan biasanya diambil padajarak 0.5 cm. Non-isotroyini menghasilkan gambar buatan tertentu (lihat, misalnya, koheren datar dalamPlate 15yang berhubungan dengan posisi bidang scanning dalam proses pengum-pulan data).

Gagasan dasar dari perenderan volume adalah bahwa seorang pemirsa harusdapat merasakan volume dari sebuah proyeksi yang dirender pada bidang pan-dang. Di dalam model CSG informasi yang diproyeksikan pada bidang pandangdapat berupa bidang batas. Tahap akhir dalam pengubahan dari sebuah pohonCSG menjadi sebuah pemyataan voxel akan menghasilkan sebuah obyek bendapadat yang terbuat dari voxel. Perenderan permukaan obyek ini adalah gambaryang diperlukan. Di dalam penggambaran medis kita barangkali menginginkanuntuk melihat sebuah permukaan, atau volume, atau hanya sebagian dari volume.Jadi kita memandang pencabutan dan menampilkan permukaan 'kasar' yang adadalam data tersebut sebagai dari masalah perenderan volume. Di dalam banyakkasus kita bisa memiliki sebuah himpunan data volume dari mana kita harusmenyadap dan menampilkan permukaan yang ada dimana saja dalam volumetersebut. Bukan hanya sekedar permukaan yang membatasi sebuah obyek, kitabisa menangani sebuah obyek yang memiliki banyak permukaan yang bersarang- seperti kulit bawang. Jika permukaan ini dapat disadap oleh beberapa sifatunik maka kita dapat merender mereka dapat dipandang dengan membuat merekatidak ternbus sinar 100% dan semua data yang lain di dalam volume tersebutternbus pandang.

Sebuah contoh dari hal ini diperlihatkan dalam Plate 14.Ini memperlihatkansebuah permukaan yang disadap dari sebuah himpunan data volume yang dihasil-kan dari sebuah simulasi CFD (computational fluid dynamics) sebuah turbin gas.Plate tersebut menggambarkan permukaan yang sarnayang memiliki kecepatan u

Perenderan Volume 417

nol (arah sumbu panjang) yang disadap dari simulasi CFO Navier-Stokes padasebuah pembakar pipa aliran yang terbalik, ruang bakar ditunjukkan oleh bingkai-kawat silinder. Arah aliran primer adalah dari kiri ke kanan. Udara dipaksa padakeadaan mampat di sebelah kiri, dan disebarkan oleh dua kipas. Oelapan pancaranbahan bakar, yang diletakkan secara radial, kira-kira setengahpanjang pembakar,diarahkan sedemikianrupa untuk mengirim carnpuranbahan bakar dalarn lintasanspiral menuju ke depan ruang pembakaran. Campuran yang dapat dibakar ber-langsungdalarndaerah pusatdan dorongandiciptakanpadakeluaranpembuangandisebelah kanan. Permukaan yang sarna memperlihatkan hubungan semua titikdimana aliran total di dalam sumbu panjang adalah DOl.Garnbar ini memperlihat-kan gelindingan seperti pinggiran roda yang ditaruh pada kipas pemasukan udara,sebuah bagian tengah dengan delapan cuping meluas ke arah pancaran bahan ba-kar, sebuah inti berbentuk pipa yang dikelilingi oleh sebuah cincin notchdandelapan permukaan yang lebih kecil yang berhubungan dengan masukan udarasekunder di bawah ruang bakar.

Secara lebih umum kita bisa mencoba untuk melihat apakah volume keselu-ruhan atau sebuah.sub-himpunannyadengan menetapkansebuahwarna dan sebuahtingkat ketidak tembusan sinar kepada masing-masing voxel dan mengumpulkannilai ini sepanjang arah pandangan. Oi sini kita bisa menggambar sebuah analogidengan sebuah sinar-X yang biasa. Sinar-X tersebut adalah proyeksi kita dalambidang pandang dan volume dari bagian tersebut pada tubuh yang disinari-Xadalah data volume kita. Kita dapat membayangkan bahwa sebuah himpunansinar-X yang sejajar ditembakkan melalui, katakan, dada, dan menghasilkansebuah gambar pada sebuah film yang ditempatkan di belakang punggung. Ma-sing-masing sinar-X berinteraksi dengan kulit tubuh dan menghasilkan sebuahintensitas pada bidang gambar atau proyeksi. Kulit tubuh adalah tembus sinar-Xsecara variabel, dan pada saat gambar gambar tersebut dipandang sebagai keselu-ruhannya, ia seperti jika volume sinar-X tersebut menyerap informasi yang jatuhpada sebuah bidang tunggal. Oi dalam sebuah algoritma perenderan volume yangmemproyeksikan sebuah pernyataan dari himpunan data pada sebuah bidangtunggal, ia seperti itujika algoritma tersebut berupa data penyinaran-X.

Gambar 9.2 memberikan sebuah tinjauan dari proses perenderan volume. Kitamemiliki sebuah benda padat persegi yang berupa data volume yang diputarmenuju sembarang orientasi sesuai dengan arah pandang yang diperlukan. Untukmasing-masing pixel di dalam bidang pandang kita mengumpulkan, dalam be-berapa cara yang dijelaskan, informasi sepanjang sinar sejajar berasal dari ma-

418 Pengantar Komputer Grafik

Imagcplanc

Gambar 9.2 Perenderan volume dengan membuat sinar sejajar dari masing-masing pixel (menu-rut Levoy (1990».

- --r r

k=() k=K

(a) (11)

Gambar 9.3 Penggunaan bidang sejajar terhadap bidang pandang untuk menyusun sebuah volu-me pandang dari suatu himpunan data.

Perenderan Volume 419

sing-masing pixel. Masing-masing operasi sinar menghasilkan sebuah nilai tung-gal (sebenarnya sebuah triple RGB bersama-sama dengan nilai sifat tembus atausifat menghalang sebagaimana yang akan dijelaskan secara ringkas).

Kembali ke analogi kita dengan sebuah sinar-X biasa, kita dapat menggunakanini untuk meningkatkan tleksibilitas yang dihasilkan oleh perenderan volume.Pertama kita dapat memandang data dari sembarang sudut. Kita dapat mencobauntuk melihat semua volume dengan menjatuhkan atau memproyeksikan semuavoxel ke dalam bidang pandang. Alternatifnya, kita dapat menggunakan bidangpotong untuk memilih sebuah papan dari data volume seperti yang diperlihatkandalam Gambar 9.3 - sebuah pemakaian sederhana dari volume pandang.OalamGambar 9.3(a) sembarangdata volume di dalam daerah berbayang diabaikan daripandangan. Pola ini dapat digunakan secara interaktif dan bidang tersebutdigerakkan lebih dalam dan semakin dalam kedalam data. Oalam Gambar 9.3(b)diperlihatkan dua bidang dan pusat papan data dirender (bila ketebalan papandikurangi menjadi nol kita memiliki sebuah potongan-melintang). Oi sana hanyaada dua contoh dari sekian banyakkemungkinaninteraksi.Tidak untungnya peren-deran volume adalah sebuah proses yang sedemikian mahal karena workstationyang ada di pasaran tidak dapat mendukung interaksi ini. Oi dalam perenderanvolume semua voxel andil kepada masing-masing proyeksi secara umum. Jadiwaktu perenderan untuk masing-masing proyeksi adalah sebuah fungsi linear darijumlah voxel dalam suatu himpunan data. Biasanya ini dapat berupa 512 x 512 x512.

Tampaknya perenderan volume yang selektif ini akan lebih berguna dalambanyak pemakaian yang mencoba untuk merasakan seluruh himpunan data. Oidalam kebanyakan pemakaian disana biasanya terlalu banyak informasi di dalamvolume, dan bila ia diproyeksikan di dalam keseluruhannya, dengan mengguna-kan sifat yang tidak tembus cahaya, gambar yang diproyeksikan menjadi sebuahkumpulan campuran yang tidak terbaca.

9.2 Algoritma perenderan volume

Ada dua pendekatan utama terhadap perenderan volume: pencetakan sinar ('raycasting', pemetaan batik) dan penggabungan bidang (pemetaan maju). Didalam pencetakan sinar kita memiliki struktur umum:

420 Pengantar Komputer Grafik

for {each pixel}

{fire a ray and find the voxels through which it passes}

dimana penyusunan bidang memiliki struktur:

for {each plane in the volume data}

for {each voxel in the plane}

{find the pixels - the 'footprint' that the voxel projects onto}

Dua algoritma tersebut diperlihatkan secara skematis dalam Gambar 9.4. Metodeyang pertama mengumpulkan informasi dari semua voxel yang memotong sinaratau pixel yang sedang berlangsung. Sebuah kalang tunggal dari algoritma terse-but menyediakan nilai akhir untuk sebuah pixel.

Metode yang kedua mengumpulkan informasi pada seluruh bidang pandanguntuk masing-masingbidang voxel di dalam himpunan data. Secara umum, sepertiyang diperlihatkan dalam Gambar 9.4(b), sebuah voxel akan memproyeksikanpada sejumlah pixel. Ini dikenal sebagai bekas jejak kaki voxel yang analog de-ngan proyeksi terbalik dari sebuah pixel persegi ke sebuah luasan di dalamkawasan tekstur yang menyebar pada sejumlah texel. Dalam kasus ini pemetaantersebut adalah linear dan bekas jejak kaki adalah sebuah hexagon. Akan tetapi,arah pemetaan tersebut adalah kebalikan dari pemetaan tekstur. Di dalam pe-metaan tekstur, sebuah pixel dipetakan terbalik ke dalam kawasan tekstur. Cu-plikan tekstur yang terletak di dalam pixel yang terbalik atau pre-image inidihimpit dan dijumlah, jadi, difilter. Di dalam pemetaan maju sebuah nilai voxeltunggal disebarkan pada bekas jejak kaki voxel tersebut di dalam bidang pixel.

Begitu masing-masing bidang diproses, sebuah nilai pixel diperbaharui dansemua pixel hanya memiliki nilai akhirnya bila bidang yang bergerak mencapaibagian depan himpunan data. Penyangga bingkai, pengaruhnya,digunakan sebagaisebuah pengumpul.

Algoritma pemetaan maju bisa muncul sebagai lebih penting dari keduanya.Ini lebih sesuai terhadap pengimplementasian sejajar. Begitu masing-masingvoxel diproses kita hanya perlu mengetahui sekitar sebuah himpunan kecil voxeldi sekitarnya. Juga, kita memproses himpunan voxel dalam bidang sejajar. Di lainpihak, pencetakan sinar adalah algoritma yang lebih langsung untuk mengimple-

Perenderan Volume 421

Viewlll:llle

fUf {"/ldIIJixd "'y }

PixelmyI'ixel

(a)

fOf (each plane)

View plane

(hI

Gambar 9.4 Dua strategi untuk perenderan volume: (a) ray casting: (b) forward mapping.

422 Pengantar Komputer Grajik

mentasi. Akan tetapi, ia memiliki kekurangan yang cukup berarti yakni pengak-sesan acak kepada semua himpunan data diperlukan untuk masing-masing sinar- dampaknya adalah perlu biaya tambahan memo~iyang cukup besar. Yangjelasbeberapa rincian tersebut umum bagi kedua 19oritma tersebut. Struktur yangterinci dan pencabangan pendekatan pencetakan cahaya akan dibahas dalambagian berikutnya.

9.2.1 Pemikiran mengenai penyaringan

Kedua algoritma tersebut melibatkan pencuplikan kembali himpunan data untukmemperoleh sebuah nilai untuk voxel yang sedang ditinjau. Bahkan jika datayang asli tidak berisi benda buatan, karena pencuplikan telah dilakukan padapesat yang sesuai, pemutaran volume data dan pemakaian dari pencetakan sinaratau algoritma pemetaan maju secara tidak langsung mc:myatakansebuah pencu-plikan kembali. Jadi beberapa bentuk pencuplikan kembali pada tetangga, yangdiikuti dengan penyaringan ke sebuah nilai tunggal, harus dilakukan jika tidakmaka akan dihasilkan benda buatan.

'Oi dalam kasus algoritma pemetaan maju, bekas jejak kaki biasanya adalahsebuah hexagon. Juga, bekas jejak kaki tersebut tidak berubah-ubah pada bidangpixel kecuali untuk sebuah offset. Jadi mudah untuk memilih dan mengimple-mentasikan sebuah penyaring yang sesuai dalam bentuk tabel 'look-up'. Oi dalamalgoritma pencetakan sinar penyaringan dilakukan di dalam ruang data. Sebuahnilai tunggal untuk sebuah voxel dihitung dengan beberapa macam interpolasiterhadap nilai yang berdekatan. Oi dalam kasus ini penyaring kernel adalahtiga-dimensi.

9.2.2 Perenderanvolumedengan pencetakansinar

Untuk menguraikan algoritma tersebut kita akan menggunakan sebuah versi darinorasi yang diperkenalkan oleh Levoy (1990). Pertama kita perhatikan bahwamasing-masing voxel dalam himpunan data diindeks oleh:

x= (x,y,z)

dan masing-masing voxel diberi sebuah warna C(X) dan sebuah sifat ketidak

tembusan sinar a(X) (dimana a = 1 secara ~idak langsung menjelaskan sebuahvoxel yang tidak tembus pandang dan a = 0 yang menunjukkan sebuah voxel

Perenderan Volume 423

tembus pandang) dengan operasi yang akan diuraikan kemudian. Acu lagi padaGambar 9.4(a) kita melacaksebuahhimpunansinaryang sejajar ke dalam data. Jikamasalah sumber perhitungan tertentu diabaikan, ini merupakan tindakan yangpaling mudah dan paling tepat untuk mengambil dan menghasilkan sebuahproyeksi sejajar dari struktur dalam data tersebut. Jika sebuah koordinat pixeladalah (ij) maka kita mendetinisikan sebuah sinar sebagai vektor:

R = (ij,k)dimana

(ij) = r adalah indeks pixel dari sinar tersebut.k adalah jarak sepanjang sinar tersebut, k = I,...,K

Untuk masing-masing sinar, kita melaju sepanjang vektor tersebut dengan men-cuplik kembali data pada interval yang berjarak tidak sarna, menghitung C(R) dana(R). Begitu masing-masing wama dan sifat tidak ternbus pandang dihitung kitamengumpulkan nilai tersebut rnelaju sepanjang sinar tersebut dengan urutan daridepan-ke-belakang. Proses pengumpulan ini menggunakan rumus samar standardan untuk sebuah cuplikan R kita menentukan sebuah kurnpulan wama dan sifattidak ternbus pandang setelahcuplikanR diprosessebagaiberikut:

Cout*(r,R) = Cin*(r,R) + C*(R)[l - ain(r,R)]

aout*(r,R) = ain*(r,R) + a*(R)[l - ain(r,R)] (9.1)

dimana:

Cin*(r,R) = Cin(r,R)ain(r,R)Cout*(r, R) = Cout(r,R)aout(r,R)

C*(r,R) = C(r,R)a(r,R)

Catat bahwa semua warna diperkalikan terlebih dahulu dengan sifat tidak tembuscahaya yang berhubungan dan (R,G,B) menjadi (Ra,Ga,Ba) di dalam prosespengumpulan. Alasan untuk ini mudah dilihat dengan memperhatikan contohsederhana. Jika a = 0 maka obyek tersebut benar-benar tembus pandang dankontribusi warnanya terhadap kumpulan tersebut harus (0,0,0). Jika, di lain pihak,a = 1 maka obyek tersebut benar-benar tidak tembus pandang dan kontribusiwamimya adalah (R,G,B). Juga bila a = I, setelah itu dalam sebuah algoritrnapengumpulan (kekuatan kasar), ain= 1dan suku yang kedua dalam Persarnaan 9.1

424 Pengantar Komputer Grafik

selalu dinolkan. Kemudian wama akhir adalah wama gabungan bila voxel yangtidak ternbus pandang dibentur oleh sinar tersebut.

Pada akhir kalang untuk masing-masing sinar warna akhir diperoleh dengan:

C(r) = Cout*(r,R)€Xout(r,R)

dimana R(i,j,K). Gambar 9.3 memperlihatkan bahwa volume pandang yang dilu-kiskan oleh bidang yang sejajar dengan bidang pandang mudah digabungkankedalam pola ini - ini hanya mengenai masalah pemilihan batas yang diperlukandalam kalang dalam dari algoritma tersebut.

9.3 Studi kasus

Pada saat ini kita melihat sebuah pemakaian dari perenderan volume. PerhatikanPlate 15-21 semuanya adalah versi yang dirender-volume dari himpunan scan CTsinar-X yang sarna. Gambaran tersebut adalah dari sebuah studi mengenai peng-gunaan teknik grafik komputer untuk membantu perencanaan radiotherapy. Inimelibatkan rancangan mengenai sebuah fasilitas yang memungkinkan seorangdokter untuk melihat hubungan ruang antara sebuah tomor, struktur kritis danberkas radiasi yang digunakan untuk perawatan tumor tersebut - berkas pen go-batan. Perawatan ini diterapkan dengan menggunakan sejumlah berkas yangberkumpul pada lokasi tumor. Kekuatan dari masing-masing berkas perawatan iniadalah intensitas yang sedemikian rupa sehingga tidak ada kerusakan yang dise-babkan terhadap jaringan daging lewat mana berkas tersebut berjalan. Meskipundemikian ia penting bahwa komponen berkas ini menghindari struktur kritis - didalam kasus pada kepala, bola mata, syaraf penglihatan, dan urat syaraf tulangbelakang adalah struktur kritis yang harus dihindari oleh berkas tersebut. Peren-canaan posisi dari berkas tersebut adalah sulit. Dengan menggunakan irisan CTsaja, seoran dokter harus membuat sebuah anggapan tiga-dimensi dari hubunganruang antara tumor, struktur kritis, dan berkas perawatan.

Gagasan dari proyek tersebut dilukiskan dalam gambar tersebut adalah bahwaperenderan volume memungkinkan perencanaan ini agar berlangsung pada se-buah obyek grafik komputer tiga-dimensi. Obyek tersebut diperoleh dengan pe-renderan volume scan CT dan dokter memiliki semua fasilitas yang tersedia untuk

Perenderan Volume 425

rnernbantu perencanaan. Berkas tersebut dapat diternpatkan secara interaktif danobyek tersebut dapat dipandang dari sernbarang sudut.

Plate 15 rnernperlihatkan sebuah versi tengkorak yang dirender-volume. Tu-

lang yang tidak ternbus cahaya ditetapkan ke salah satu dan yang lain ditetapkanbernilai nol. Ini rnenghasilkan sebuah garnbar tengkorak sebagai sebuah permu-kaan tunggal yang terisolasi. Koheren datar yang rnenandai bidang CT individutarnpak dalam garnbar tersebut. Bayangan dilaksanakan pada permukaan denganpenurunan sebuah gradien sebagai normal perrnukaan dan menggunakan modelpantulan Phong. Sorotan specular tampak, yang rnemberikan tulang yang tampakseperti plastik yang mengkilat.

Pada masalah ini sebuah penyimpangan adalah beruriltan. Plate 22 memperli-hatkan sebuah rekonstruksi mutu yang tampak lebih tinggi dan perenderan per-rnukaan yang sarna. Ini dicapai dengan menggunakan teknik penyadapan permu-kaan yang jelas dan merender ia sebagai normal. Teknik ini dikenal sebagaialgoritma kubus yang berbaris (Lorensen dan Cline, 1987). Sebuah permukaanyang sebenamya dibuat dengan memasang sebuah poligon atau poligon melaluirnasing-masing voxel yang dianggap berisi sebuah permukaan. Sebuah voxelrnemiliki delapan puncak dan jika kita menganggap pada himpunan keluaranbahwa sebuah voxel dapat duduk mengangkangi sebuah permukaan, maka kitadapat rnenetapkan sebuah poligon kepada voxel dengan cara yang tergantungpada konfigurasi nilai pada puncak-puncak tersebut. Dengan ini berarti bahwapendistribusian puncak tersebut yang berada di dalam dan di luar permukaan padadelapan puncak kubus. Jika dibuat anggapan tertentu maka di sana ada 15 ke-mungkinan dan ini diperlihatkan dalam Gambar 9.5. Posisi akhir dan orientasidari masing-masing poligon masing-masingjenis voxel ditentukan oleh kekuatannilai medan pada puncak. Sebuah permukaan dibuat yang berisi sebuah jaringpoligon normal dan perbedaan mutu antara perenderan ini dan mempengaruhipenyadapan permukaan oleh penugasan ketidak-tembusan nol-satu yang sesuaidalam perenderan volume disebabkan oleh apa yang secara efektif merupakanresolusi yang rendah mutunya dalam metode perenderan volume. Di dalam me-tode perenderan volume sebuah permukaan bisa ada dimana saja di dalam voxel .Jika sifat tidak tembus pandang pixel ini ditetapkan satu informasi pada posisitersebut dan orientasi dari fragmen permukaan dihilangkan. Di dalam algoritmakubus yang berjajar fragmen permukaan ditempatkan dan diorientasikan dengansecara dalam voxel tersebut - setidaknya dalam batas metode interpolasi yangdigunakan. Akan tetapi ini diklaim bahwa rnetode penyadapan permukaan yang

426 Pengantar Komputer Grafik

9

12

IO 11

13 l~

Gambar 9.5 Limabelas kemungkinan di dalam algoritma kubus yang berjajar.. menyatakansebuah puncak yang berada di dalam sebuah permukaan.

jelas kadang-kadang membuat kesalahan dengan membuat anggapan bahwa se-buah permukaan ada melintas voxel yang bertetangga. Mereka dapat menyusunsebuah permukaan pada apa yang dalam kenyataan berupa fragmen permukaanyang bertetangga. Dengan kata lain, mereka membuat keputusan biner yang dapatmenimbulkan kesalahan.

Perenderan Volume 427

Plate 16 adalah sarna dengan Plate 15 kecuali bahwa sifat tidak ternbus sinar

yang bukan-nol ditetapkan kepada bahan yang tidak bertulang. Ini menghasilkansesuatu yang penting mengenai pengandaian gambar medis. Scan CT sinar-Xadalah optimal untuk pendeteksian tulang dan proses pengerasan menjadi kapurdan tidak cenderung untuk mengungkap rincian dalam jaringan daging yanglembut. Di dalam lukisantersebutjaringan dagingotak tampil sebagai sebuah awanhijau yang tidak berbentuk.TomographyMR (magneticresonance)jauh lebih bagusuntuk melukiskan rincian jaringan daging yang lembut dan kadang-kadang datadicampur dari pengandaianyang menyediakansebuahmodelgrafik komputer.

Plate 17 memperlihatkan tengkorak bersama-sama dengan informasi lain yangsaling menutupi. Struktur kritis dideteksi dalam data sebagai obyek yang terpisah.Obyek ini disesuaikan sebagai mode volume batas - bola-bolauntukbolamatadan silinder yang umum untuk saraftulang belakang. Obyek ini dirender sebagainormal dengan menggunakan wama orange. Gagasan tersebut adalah bahwavolume batas yang disesuaikan dijamin berisi obyek yang sebenarnya. Sebuahtumor otak diperlihatkan hijau dan tiga berkas perawatan diperlihatkan sebagaiobyek bingkai-kawat. Warna biru pada tengkorak memperlihatkan perpotongandari masing-masing berkas dengan permukaan kulit.

Plate 18 sampai Plat 21 dirender dengan sifat tulang yang tidak ternbus pan-dang ditetapkan bernilai kurang dari satu. Mereka adalah semua pandangan yangmemandang rendah masing-masing berkas perawatan - sebuah berkas pandang-an mata. Berkas pandangan mata yang pertama (Plate 18) menunjukkan sebuahperpotongan dengan sebuah bola mata dan ini dikoreksi, seperti yang diperlihat-kan dalam Plate 19,dengan menggunakan sebuah piranti pembentuk berkas. Duabuah gambar yang tersisa memperlihatkan dua berkas pandangan mata yang lain.Plate 20 menunjukkan bahwa berkas ini juga berpotongan dengan sebuah bolamata - saat ini tinggal satu.

9.4 Proyeksi sejajar dan perspektif

Sebagaimana yang telah disebut dalam bagian sebelumnya, pengimplementasianyang paling mudah dari algoritma tersebut melibatkan pembuatan sebuah him-punan sinar sejajar, satu untuk masing-masing pixel, yang menghasilkan sebuahproyeksi sejajar orthographic. Perhitungan ini amat sederhana bila sebuah indeksvoxel R= (iJ,k) diubah menjadi sebuah indeks (x,y,z). Perhitungan koordinat

428 Pengantar Komputer Grafik

dapat dipertahankan antara sinar d~mganmeningkatkan koordinat yang cocok daricuplikan yang berhubungan dalam sinar yang sebelumnya R=(i-l j,k).

Dalam kasus dari salah satu bidang pemakaian utama dari perenderan volumeadalah gambar medis - tidak jelas bahwa anggapan mengenai obyek yang dirender

dibuat lebih sulit dengan tidak adanya proyeksi sejajar. Akhimya, kedalamanjangkauan obyek hanya merupakansebagiandari sebuahukurandalam kenyataan.

Kesulitan mengenai pengimplementasian sebuah proyeksi perspektif adalahsebagai berikut. Pertama, masalah praktis. Sebuah pengimplementasian kekuatanyang kasar memerlukan pengaksesan acak terhadap himpunan data volume de-ngan memasukkan kapasitas RAM O(N3)(N adalahjumlah voxel dalam himpun-an tersebut). Sebuah algoritma yang mencoba mengatasi masalah ini denganpengorganisasian kembali pengaksesan data volume diberikan oleh Novins, Sil-lion, dan Greenberg (1990).

Masalah kedua yang muncul dari perbedaan sinar. Gambar 9.6(a) memperli-hatkan sifat alami ini. Jika kerapatan sinar sedemikian rupa sehingga bidangvoxel yang paling dekat dicuplik pada pesat satu sinar per voxel, kemudian dalamcontoh yang diperlihatkan ini akan turun dengan cepat ke satu sinar per dua voxel.Ini dengan jelas dapat menghasilkan sedikit rincian yang hilang. Sebuah pende-katan naif adalahdengan meningkatkan kerapatan sinar dengan demikian voxelyang paling jauh dicuplik pada sinar yang sesuai. Akan tetapi pencuplikan yangberlebih dekat voxel ini akan meningkatkan waktu perhitungan yang besar (Gam-bar 9.6b). Novin dan kawan-kawan menyarankan peningkatan kerapatan pencu-plikan sinar secara adaptif sebagai fungsi dari jarak sepanjang sinar tersebutdengan demikian kerapatan pencuplikan tidak pemah turun di bawah sebuahambang yang ditentukan oleh pemakai (Gambar 9.6c). Proses ini dikendalikandengan pengukuran proyeksi balik dari pixel persegi, yang bertambah dengankedalaman sinar, bandingkan ini dengan persegi' dari pesat pencuplikan danmemisahkan sinar dengan cara yang sesuai. Di dalam pengimplementasian frag-men sinar tersebut digabungkan dengan perata-rataan sederhana agar mengha-silkan sebuah nilai pixel akhir.

9.5 Model penyinaran

Yang berikut ini banyak yang berhubugnan dengan konteks yang khusus namunpenting dari ilmu bedah kedorkteran. Akan tetapi, ini adalah sebuah pemakaian

Perenderan Volume 429

Im"~cphlll\." Vu:<cI,

_-e-

--.

I ray/voxcl I ray/2 voxels(a)

[m.~e -

JBundle averaged

pla';e Voxels

~ --r- loyi.ld a single---J-::.--1 pix.lvalue- :::: -::-

i--- _L-- ---

co,<~~ ~{;+~~~~~~l~~~-r

.

--- _

1---:= :::::::::::~:-:--- ~:~--I-- --.I _

1-----....~I----

1 .....I I!I

(b)

COP

(e)

Gambar 9.6 Kerapatan sinar dan proyeksi perspektif (menurut Novins, Sillion, dan Greenberg(1990)). (a) Satu sinar/pixel menghasilkan penurunan pesat pencuplikan. (b) Peningkatan pesatpencuplikan untuk irisan voxel yang jauh menghantarkan ke irisan dekat yang di-oversample. (c)Adaptive Oversampling.

430 Pengantar Komputer Grafik

yang menggunakan semua fasilitas yang tersedia di dalam perenderan volume danpemakaian lain yang mirip dengan sebuah sub-himpunan dari kasus medis. Modelpenyinaran yang diuraikan dalam bagian ini didasarkan pada kerja Oreblin, Car-penter, dan Hanrahan (1988). Ini karena ia merupakan sebuah pendekatan yangrelatif sederhana dan umum. Akan tetapi banyak pendekatan yang memungkin-kan.

Model penyinaran yang digunakan di dalam perenderan volume yang palingbaik adalah diperhatikan sebagai sebuah gabungan dari pemetaan 'pseudocolor'dan perenderan dasar yang menggunakan model pantulan loka!. Model tersebutmemiliki sedikit dasar teori dan merupakan sebuah contoh yang bagus daribanyak pendapat yang digunakan di dalam grafik komputer - ia bekerja begitumenggunakannya.

Tesis umum berupa apa yang kita coba untuk memandang sebuah volumedimana obyek (yang bisa bersarang di dalam satu sarna lain) diproyeksikansebagaimana jika mereka berisi kaca, katakan, dengan warna-warna yang ber-beda, kerapatan, dan sifat tidak tembus pandang. Oi dalam gambar medis, warnadigunakan untuk menunjukkan obyek yang berbeda atau jenis jaringan dagingsebagaimana halnya bentuk dari obyek. Sifat tidak ternbus pandang digunakanuntuk menandakan kerapatan yang berbeda. Sebagaimana yang telah kita kata-kan, sebuah pola yang umum seperti ini menghasilkan gambar yang terlalumembingungkan, dan kita menengahi keumuman proses tersebut dengan meng-gunakan interaksi dan hanya merender sebuah sub-himpunan data. Oi dalamkasus data CT aspek ini telah dipelihara dalam arti bahwajika kita memilih sifattidak ternbus pandang yang mencerminkan kenyataan dari data tersebut (nilaikoefisien penyerapan sinar-X) kemudian kita memiliki tulang padat yang me-ngambang di dalam lautanjelly yang berupajaringan daging yang lembut.

Oi dalam bagian yang sebelumnya kita telah memperhatikan bagaimana voxeldisusun sepanjang sebuah sinar. Kini kita perhatikan bagaimana empat-tuple(R,G,B,a) ditentukan untuk masing-masing cuplikan yang diambil sepanjangsinar tersebut. Ini memisah menjadi dua. Masing-masing voxel X diberikan se-buah nilai (R,G,B,a) di dalam contoh yang pertama sesuai dengan prosedurpengklasifikasian. Sebagai contoh, kita bisa memberikan voxel yang kita ketahui,sebuah prioritas berupa tulang, warna putih dan sifat tidak tembus pandang yangtinggi. Kemudian kita memodulasi warna tersebut dengan sebuah intensitas de-ngan menggunakan sebuah model pantulan lokal seperti model pantulan Phong.Pemakaian dari informasi yang telah dianggap terlebih dahulu bahwa sebuah

Perenderan Volume 431

permukaan ada di dalam sebuah voxel, jadi sebuah voxel duduk mengangkangsebuah antarmuka antara jenis jaringan daging yang berbeda, dan kita menen-tukan ini dengan menggunakan nilai gradien sebagai normal permukaan dalammodel pantulan. Jika voxel tersebut berada di dalam sebuah daerah yang homogenmaka nilai dari gradien tersebut adalah nol.

9.5.1 Pengklasifikasianvoxel dan penugasan wama

Sebuah pola pengklasifikasian telah diperkenalkan oleh Orebin, Carpenter, danHanrahan (1988) (untuk kasus khusus dari data CT sinar-X). Oi dalam pola inivoxel diklasifikasikan menjadi empat jenis sesuai dengan nilai koefisien penye-rapan sinar-X. Jenis tersebut adalah: udara, lemak, daging halus, dan tulang.Metode tersebut diistilahkan 'probabalistic classification' dan ia menganggapbahwa dua, tidak lebih dari dua, bahan yang dapat muncul dalam sebuah voxel.Jadi voxel tersebut dapat berisi tujuh jenis: udara, udara dan lemak,lemak, lemakdan daging halus, daging halus, daging halus dan tulang, dan tulang. Campuranhanya mungkin antara dua bahan yang bertetangga dalam skala koefisien penye-rapan - udara, misalnya, tidak pemah berdampingan dengan tulang.

Pola pengklasifikasian tersebut menggunakan potongan fungsi probabilitaslinear (Gambar 9.7). Perhatikan sebuah bahan khusus yang ditetapkan oleh fungsiini. Oi sana akan ada sejumlah CT khusus yang kebanyakan mirip untuk menya-takan bahan ini (titik A dalam Gambar 9.7). Titik Bl dan B2menyatakan simpang-an maksimum dalam jumlah CT yang masih diperhatikan dalam bahan ini.Sembarang jumlah CT yang lebih kecil dari BI atau lebih besar dari B2 danterdapat dalam batas yang ditentukan oleh CI dan C2 diklasifikasikan sebagaisebuah campuran dari bahan yang bertetangga. Sebuah pola yang lengkap diper-lihatkan dalam Gambar 9.8. Voxel diberi nilai (R,G,B,a) yang sesuai dengan polaini, dan jika sebuah campuran dari dua bahan ada di dalam sebuah voxel duawama yang dicampur dalam proporsi yang sarna dengan bahan.

9.5.2 Bayanganvoxel

Kini kita perhatikan atribut,wama yang sebenamya berinteraksi dengan sebuahmodel penyinaran untuk menghasilkan C(X). Kita menggunakan sebuah sumber(atau sumber) cahaya dan menggunakan sebuah model pantulan lokal dalamsebuah voxel. Keseluruhan pola tersebut secara kasar disederhanakan sejauh yang

432 Pengantar Komputer Grafik

CT

A

Gambar 9.7 Fungsi klasifikasi trapesoida untuk salah satu bahan.

diperhatikan interaksi cahaya dengan volume. Kenyataannya kita memperhatikaninteraksi masing-masing voxel dengan sumber cahaya secara sendiri-sendiri darisemua voxel yang lain sebelum menarik kesimpulan dalam proses pengumpulansepanjang sinar tersebut. Apakah ini berarti bahwa sinar dari sumber cahaya

<,".."1C'1.1::::'1.1

Q.,

Air

rat

Gambar 9.8 Fungsi pengklasifikasian CT.

CT

Perenderan Volume 433

menuju voxel (Gambar 9.9) tidak terpengaruh oleh lewatan melalui voxel yangcampur tangan. Akan tetapi, interaksi dari cahaya dengan voxel yang dijumpaidiperhatikan sepanjang sinar tersebut menuju mata (dengan proses pengumpulanitu sendiri).

Sebuah ciri yang membedakan dari pola Orebin (Orebin, Carpenter, danHanrahan (1988) adalah bahwa, karena sebuah voxel dapat berisi sebuah campu-ran bahan, kita harus menangani sampai tiga warna dalam sebuah voxel tunggaI.Oalam sebuah voxel tiga daerah subvoxel memungkinkan jika sebuah fragmenpermukaan berpotongan dengan voxel tersebut. Gambar 9.10 memperlihatkansebuah voxel semacam ini. Oi dalam voxel ini kita memiliki sebuah daerah

dengan warna CF,sebuah daerah dengan warna Ca, dan sebuah permukaan yangmemisahkan kedua daerah tersebut. (Catat bahwa subscript mengacu pada arahnormal permukaan terhadap arah pandang.) Ini akan memiliki sebuah warna Csyang disebabkan karena interaksinya dengan sumber cahaya. Pemakaian darisebuah model pantulan lokal terhadap permukaan ini berarti bahwa:

Cs =j{N,L,r)

dimanafadalah, misalnya, model pantulan Phong (Bagian 4.3). Tiga warna inidisusun dalam sebuah voxel dengan cara yang sarna dengan warna voxel yangdikumpulkan sepanjang sebuah sinar.

l.igllll1otatlcl1l1alcdin passage:10vox'"

Gambar 9.9 Lintasan cahaya dari sumber cahaya ke voxel menuju sinar mata.

434 Pengantar Komputer Grafik

Kini, ditentukan bahwa kita mulai dengan hanya sebuah wama tunggal untukmasing-masing voxel, kini kita hams melihat bagaimana tiga wama dalam voxeltersebut diperoleh. Pertama kita perhatikan masalah penemuan apakah sebuahpermukaan berada dalam voxel atau tidak.

Pendeteksian permukaan dilakukan oleh operasi lokal yang berdasarkan padanilai kerapatan yang diberikan kepada masing-masing bahan dan campuran. Se-buah permukaan dideteksi dengan mengevaluasi sebuah normal menggunakangradien volume. Komponen dari normal ini adalah:

Nx= D(x + l,y,z)- D(x- l,y,z)Ny = D(x,y + l,z) - D(x,y - l,z)Nz = D(x,y,z + 1) - D(x,y,z - 1)

dimana untuk masing-masing voxel, D dievaluasi dengan menjumlahkan hasildari persentase bahan di dalam voxel dikalikan dengan kerapatannya yang telahditetapkan. Jika sebuah bahan adalah homogen maka perbedaan ini menaksir kenol.

Persentase dari sebuah permukaan diukur dengan magnitudo normal permu-kaan - semakin besar magnitudo ini semakin tampak permukaan terse but. Tidakada pengambilan keputusan biner mengenai ada atau tidaknya sebuah permukaan.Sebuah versi yang dinormalkan dari normal permukaan dihitung dan digunakandi dalam persamaan bayangan.

r

Gambar 9.10 Penugasan warna dalam sebuah voxel.

Perenderan Volume 435

Kelokalan dari operasi ini berarti bahwa ia peka terhadap noise. Ini dapat di-kurangi dengan mengurangi kelokalan. Di dalam rumus diatas gradien dievaluasidengan memperhatikan enam voxel yang bertetangga. Kita dapat memperluas inisampai 18 atau bahkan 24.

Proyek, catatan, dan saran

9.1 Algoritma kubus yang berbaris (*)

Jika sebuah himpunan data yang sesuai telah tersedia, implementasikan algoritmakubus yang berbaris (Lorensen dan Cline, 1987).Cara yang paling mudah untukmelakukan hal ini adalah dengan menetapkan sebuah tabel 'look-up' 256 barisyang berisi, untuk masing-masing baris, berapa banyak segitiga yang diperlukandi dalam sebuah kasus khusus dan edge apakah dari kubus tersebut yang merekapotong. Ini diindeks dengan sebuah sandi 8-bit yang dihasilkan, untuk masing-masing kubus di dalam himpunan data tersebut, dari status masing-masing pun-cak kubus (di dalam atau diluar sebuah permukaan).

9.2 Perenderan volume dengan pencetakan sinar (*)

Implementasikan sebuah algoritma pencetakan sinar. Selidikilah pengaruh dariperubahan pencuplikan kembali yang berdampingan pada mutu gambar akhir.Gabungkan sebuah antarmuka interaktif sederhana yang memungkinkan volumetersebut dipotong oleh bidang.

10 Radiosity

10.1 Pendahuluan

Metode sintesa gambar utama dalam penggunaan saat ini adalah model pantulanPhong dan pelacakan sinar. Model pantual yang sederhana secara visual dicirikanoleh batasan mereka dan ini umumnya karena model ini datang hanya untuk satuaspek saja interaksi cahaya-obyek ,...pantulan sinar datang, yang disebabkansebuah sumber cahaya, dari sebuah permukaan. Ketidak puasan karena mengha-silkan model plastik yang mengambang di dalam ruang bebas kelihatan secaraalami menghantarkan kepada teknik seperti bayangan dan pemetaan tekstur yangdicangkokkan pada model pantulan dasar.

Pelacakan sinar adalah sebuah teknik yang bagus yang menggunakan metodeteoritis dasar yang sarna untuk memodel pantulan, pembiasan, dan bayangan.Meskipun sering diuraikan sebagai sebuah metode pencahayaan global, ia ditun-jukkan dalam Bab 8 bahwa ia datang hanya untuk satu aspek mengenai penca-hayaan global - pantulan specular dan pembiasan - dan ini menerangkan tandadilacak-sinar yang jelas dari gambar yang dihasilkan dengan metode ini. Inikarena untuk melacak interaksi difusi akan melibatkan pemunculan sinar dalamjumlah yang sangat banyak pada masing-masing perpotongan sinar-permukaan.Radiosity memberikan sebuah penyelesaian terhadap interaksi difusi, akan tetapidengan mengorbankan lingkungan kedalam elemen 'largish' (lewat mana penca-hayaan adalah tetap). Pendekatan ini tidak dapat menanggulangi pantulan specu-lar yang tajam dan pada dasarnya kita memiliki dua penyelesaian global: pelacak-an sinar, yang menangani pantulan specular global dan radiosity, yang menanganipantulan difusi global.

Metode radiosity telah dikembangkan untuk menerangkan interaksi dari ca-haya difusi antara elemen dalam sebuah gambar. Metode ini sangat bagus untukmenghasilkan gambar dari lingkungan interior, yang kebanyakan kumpulan dariobyek yang bukan specular, dan ini menghasilkan interior yang kelihatan nyata,

436