3 3.1
Sistem Pandang Pendahuluan Meskipun ada bermaeam-maearn piranti tampilan tiga-dimensi, kebanyakan permukaan pandang grafik komputer adalah dua-dimensi. Jadi pipeline tiga-dimensi - merupakan istilah khusus yang digunakan untuk menguraikan bermaearn-maearn proses pengubahan dari ruang koordinat dunia tiga-dimensi menjadi penyajian dua-dimensi - harus berisi sebuah transformasi proyeksi dan transformasi pandang, persyaratan minimum untuk mengubah sebuah gambar tiga-dimensi menjadi sebuah proyeksi dua-dimensi. Studi yang luas mengenai sistem pandang diperlukan karena sejumlah alasan. Meskipun anda berada pada posisi yang menguntungkan yakni tidak harus mengimplementasikan sebuah sistem pandang, penggunaan suatu sistem memerlukan pemahaman yang baik mengenai eara dimana bermaeam-maeam paremeter menentukan sifat dasar dari proyeksi pada layar. Untuk alasan kejelasan, adalah paling mudah untuk mempertimbangkan seluruh transformasi himpunan vertex, menyajikan sebuah obyek, pada permukaan pandang dua dimensi dalam dua bagian. Kita dapat mempertimbangkan sebuah transformasi, Tviewdari sistem koordinat tiga dimensi menjadi sistem koordinat pandang (x,'J',.,zv).Di sini vertex dinyatakan dalarn sistem koordinat tangan-kiri dengan titik asal yang kadang-kadang disebut sebagai titik pandang atau titik referensi pan dang. Dalam buku ini kita sangat banyak mempertimbangkan titik ini yang merupakan posisi mata pemirsa atau posisi dimana kamera yang sebenarnya ditempatkan. Transformasi yang kedua, Tpersatau Tortmemproyeksikan titik tiga-dimensi dalarn ruang pandang pada bidang pandang dua-dimensi. Dengan memisahkan transformasi tersebut dengan eara ini berarti kita dapat mengisolasi geom~tri proyeksi dari kenyataan bahwa, seeara umum, bidang proyeksi dapat memiliki suatu posisi dan orientasi dalam ruang koordinat tiga dimensi. 71
72
Pengantar Komputer Grafik
Sebuah sistem pandang minimum berupa sebuah himpunan parameter yang memungkinkan deretan transformasi yang akan ditentukan memiliki efek pada titik pemetaan dalam ruang koordinat tiga dimensi pada permukaan pandang. Sistem yang sedemikian ini memperbolehkan seorang pemakai untuk menentukan sebuah transformasi proyeksi dan ini memungkinkan bidang pandang ditempatkan dimana saja dalam ruang koordinat tiga dimensi. Sebuah sistem pandang penuh yang juga akan menentukan volume pandang, merupakan himpunan bagian (subset) dari ruang koordinat tiga dimensi yang terdapat dalam proses transformasi. Definisi ini memungkinkan seorang pemakai untuk memilih daerah tertentu yang menjadi perhatiannya dalam sistem koordinat tiga dimensi. Persyaratan yang dihubungkan dengan hal ini adalah definisi sebuah jendela dalam bidang pandang
-
yakni jendela bidang pandang.
Untuk menjelaskan bagaimana sistem pandang bekerja kita ambit pendekatan mengenai pengembangan sistem yang semakin rumit, dimulai dengan sebuah sistem yang sederhana dan menambah lebih banyak fasilitas secara bertahap. Lima buah sistem: dijabarkan sebuah sistem yang sangat sederhana akan tetapi terbatas pada sistem empat paremeter; tiga buah versi sistem praktis (berbeda dengan persyaratan interfacenya dan apakah volume pandangan diikut sertakan atau tidak); dan sebuah sistem mnum yang menyeluruh yang berdasarkan pada model GKS dan model PHIGS. Dengan bekerja melalui evolusi sistem pandang yang semakin kompleks juga akan membantu dalam pemahaman faktor ekstra yang terlibat dalam sistem pandang urnurn (general viewing systems). Untuk tiga sistem yang pertama, kita uraikan transformasi Tviewyang mentransformasikan titik-titik dari ruang koordinat tiga dimensi ke ruang pandang. Sistem sederhana yang pertama merupakan sistem yang sangat dibatasi - arah pandang selalu mengarah ke titik asal koordinat. Sistem yang kedua dan ketiga kurang dibatasi, memungkinkan pemirsa untuk melihat pada sembarang arah. Bagian 3.5 menguraikan transformasi proyeksi, Tpers,dari ruang pandang ke bidang pandang. Transformasi ini adalah umum untuk tiga sistem yang pertama. Sebuah.transformasi yang menyeluruh dibentuk oleh pemilihan salah satu dari tiga transformasi Tview dan dirangkaikan dengan Tpersbersama. Sistem pandang IV memperkenalkan gagasan mengenai volume pandang dan jendela bidang pandang~akan tetapi untuk memudahkan pengimplementasian tidak menggabungkan keadaan yang umum dari sistem standar. Sistem pandang V menguraikan sebuah sistem standar penuh.
Sistem Pandang
3.1.1
73
Sebuoh catatan, peringatan,don kisohsedih Sistem koordinat tangan kanan merupakan konvensi matematika standar. Bagian berikut ini mencoba untuk menguraikan bagaimana sistem pandang bekerja melalui hirarki lima sistem yang meningkatkan kerumitan. Oalam grafik komputer tiga-dimensi sistem koordinat tiga dimensi yang lazim adalah sistem yang berdasarkan tangan-kanan. Jika kita mempertimbangkan sistem pandang keuntungan yang berhu-
bungan dengan bidangpendidikanadalahdenganmempertimbangkanruangpandang . (ruang mata) dan ruang layar tiga-dimensi merupakan sistem koordinat tangan-kiri. Hal ini karena dalam ruang pandang nilai z yang lebih besar akan semakin jauh dari pemirsa, dan dalam ruang layar tiga-dimensi memperbesar nilai z 'masuk ke dalam'
-
layar interpretasi sifat dasar yang lain. Akan tetapi, hal ini merupakan tradisi nyata yang pantas ditinggalkan oleh PInGS (sistem pandang V, Bagian 3.9) yang menyetujui pembuatan semua sistem koordinat tangan-kanan. Aya yang berpendapat bahwa keseragaman ini tidak memberikan keuntungan, akan tetapi PInGS merupakan sebuah standar internasional dan ini kita harns meI:1genalnya.Buku ini mengadopsi sistem tangan kiri untuk pandang dan dan ruang layar dalam sistem pandang I-IV, akan tetapi sesuai dengan PInGS untuk sistem pandangan V. Secara geometris perbedaan sepele ini akan mengurangi kebingungan dan kita tetap mempertahankan keuntungan intuisi sistem tangan-kiri untuk sistem pandang I-IV.
3.2
Sistem pan dang I Ringkasan ciri sistem pandang ini adalah sebagai berikut: (1) Persyaratan Antarmuka (interface) adalah: (a) satu titik tiga-dimensi (ditentukan oleh dua sudut danjarak) dan (b) satu jarak bidang pandang. (2) Arah pandang dibatasi. (3) Orientasi bidang pandang dibatasi. (4) Tidak ada volume pandang yang ditentukan. (5) Tidak adajendela bidang pandang yang ditentukan. (6) Pusat proyeksiadalahtitik pandang dan proyeksiperspektifdigunakan. Oalam sistem ini seorang pemakai menentukan sebuah titik pandang atau titik mata (tiga parameter atau sebuahvektor)danjarak bidang pandang(satu parameter).
74
Pengantar Komputer Grafik
Arah pandang atau bidang pandang normal ditetapkan oleh garis dari titik pandang ke titik asal koordinattiga dimensi(worldcoordinateorigin).Batasan ini adalah sangat baik untuk gambarobyektunggal,dimanaobyektersebutcenderungdi sekitar titik asal koordinat tiga dimensi, akan tetapi merupakan batasan yang tidak dapat beketja dalam kasus gambar obyek jamak (multi object). Hal ini sederhana untuk diimplemen~ikan dan dipahami dan merupakan sistem yang berguna di mana untuk memperoleh pengalaman dari interaksi parameter dalam sebuah sistem pandang. Sebuah sistem koordinat pandang (XV'YI"ZV) ditetapkan pada titik pandang. z" bertepatan dengan arah pandang dan arah Yv dapat ditentukan, sebagai contoh dengan melekatkannya dalam bidang yang berisi Zv dan Zw.Sebuah proyeksi perspektif digunakan dengan pusat proyeksi pada titik pandang dan parameter yang keempat adalah jarak d dari titik pandang ke bidang pandang (hal ini digunakan pada saat gambar diproyeksikan ke bidang pandang sebagaimana yang diuraikan dalam Bagian 3.5). Sebuah sistem koordinat layar ditetapkan dalam bidang pandang dengan membuat Ys sejajar dengan Y" (lihat Bagian 3.5). Penetapan ini diperlihatkandalamGambar3.1. Sebuah antarmuka yang mudah dan intuitifbagi pemakai adalah memungkinkanjika sebuah sistem koordinat bola digunakan untuk menentukan posisi titik pandang. Perhatikan garis dari titik pandang ke titik asal koordinat tiga dimensi. f.i adalahjarak dari titik asal koordinat tiga dimensi ke titik pandang sepanjang garis ini, e adalah sudut yang bidangnya berisi garis tersebut dan tegak lurus dengan titik sistem pandang yang membuat sumbu Xwdan e merupakan sudut yang membuat sumbu Zw. Untuk mentransformasikan titik dari s~lah satu sistem ke yang lain kita perlu mengkombinasikan translasi dan rotasi. Sebagai contoh; untuk mengubah titik asal sistem koordinat dari (0,0,0,1) ke (tx,ly,lz,1) kita memerlukan transformasi:
o
u
1 o -ty
o o 1 -t~
dan kita catat bahwa ini merupakan inverse dari transformasi yang akan mengambit sebuah titik dari (0,0,0,1) ke (/x,ly,lz,1). Hal yang sarna, matriks transformasi untuk rotasi yang searah jarum jam pada sebuah sistem koordinat sarna dengan untuk rotasi yang berlawanan dengan arahjarumjam dari sebuah titik yang relatif terhadap sistem koordinat.
Sistem Pandang
75
z.
z.
e---
x.
View point I ,"iew coordi nate S~"Slemorigin)
..'"
.t.
Gambar 3.1 Sistem pandang I: sebuah sistem pandang sederhana (empat parameter). Sistem koordinat pandang ditetapkan pada titik pandang. Yv sejajar denganYs dan titik Zvmengarah ke titik asal koordinat tiga dimensi. Sistem koordinat tiga dimensi sesuai dengan tangan kanan, sistem koordinat pandang sesuai dengan tangan kiri.
Transformasi berikut mentransformasikan titik koordinat tiga dimensi ke titik koordinat pandang:
-cos e coscp -sin
ecos cp
sin e
o
-cos e sin cp -sin e sin cp -cos cp JL
~]
= [xw YONZW 1] T view
Matrik ini diturunkan dalam empat langkah: (1) Translasi yang mengambil titik asal koordinat tiga dimensi ke titik pandang. (2) Rotasikan melalui (900_0) searah putaran jarum jam sekitar sumbu z yang baru. (3) Rotasikan melalui (I SO-»sekitar sumbu z yang baru, membuat titik sumbu z baru mengarah ke titik asal koordinat tiga dimensi. (4) Transformasi ke sistem tangan-kiri.
76
3.3
Pengantar Komputer Grafik
Sistem pan dang II Ringkasan ciri sistem pandang ini adalah: (1) Persyaratan Antarmuka (interface) adalah: (a) dua buah titik tiga-dimensi, (b) satu sudut puntir, dan (c) satu jarak bidang pandang. (2) Tidak ada volume pandang yang ditentukan. (3) Tidak ada jendela bidang pandang yang ditentukan. (4) Pusat proyeksi adalah titik pandang dan proyeksi perspektif digunakan. Masalah dalam sistem pandang tiga-dimensi adalah bahwa ketika sistem tersebut menjadi semakin umum, misalnya dengan memasukkan volume pandang,jendela bidang pandang dan proyeksi miring, jumlah parameter yang diperlukan untuk menentukan perkembangan pandang, dan sebagai akibatnya membuat antarmuka pemakai menjadi lebih sulit. Dua buah sistem yang disetujui, yang tidak memperbolehkan keadaan umum penuhnya, akan tetapi dapat mengatasi keterbatasan sistem yang pertamadan memperbolehkanantarmuka yang cukup mudah sekarang dibahas. Sistem yang kedua diperkenalkan dengan cara yang paling baik adalah dengan bersama mempertimbangkan sebuah kamera sintetik (Gambar 3.2). Dalam sistem pandang ini kita dapat mengarahkan kamera tersebut pada sembarang arah; bidang pandang normal atau arah pandang kini tidak lagi terbatas pada titik yang terletak pada titik asal sistem koordinat tiga dimensi. Juga, kamera tersebut dapat dirotasikan di sekitar bidang pandang normal dengan menentukan sudut puntir. Ini merupakan derajad kebebasan normal bahwa seorang tukang foto akan menggunakan untuk menempatkan kamera yang sebenarnya. Kita menetapkan posisi kamera C, yang merupakan titik referensi pandang atau titik asal sistem koordinat pandang dan pusat proyeksi. Sebuah bidang pandang, normal terhadap sumbu Zv,ditentukan pada jarak d dari titik asal ini seperti sebelumnya. Arah dimana kamera tersebut diarahkan ditentukan oleh titik perhatian atau titik fokus F. Dua titik ini, C dan F, menentukan sumbu Zvdari sistem koordinat pandang, dan sudut puntir menetapkan rot~i kamera di sekitar sumbu ini dan arah sumbu Ys dalam bidang pandang. C adalah masukan sebagai
Sistem Pandang
77
z.
Viewplane (normal to :.1
.
x.
.,.
Gambar 3.2 Sistem pandang II: dengan menggunakan sebuah titik kamera C, titik fokus F dan sudut puntir 9 yang merotasikan sebuah kamera yang sebenarnya di sekitar arah pandang F-C. Sistem koordinat tiga dimensi adalah sistem tangan kanan, sistem koordinat pandang mengikuti tangan kiri.
sebuah titik (ef,g). F juga merupakan masukan sebagai sebuah titik dan sebuah satuan vektor (dengan komponen (a,b,c» diturunkan dengan pengurangan C dari F dan menormalkan vektor yang dihasilkan. Jadi sistem tersebut memerlukan seorang pemakai untuk menentukan dua titik tiga-dimensi C dan F, sudut puntir dan jarak bidang pandang d. Gagasan pada sebuah kamera khususnya berguna dalam animasi tiga-dimensi dimana lintasan salah satu (atau sejumlah) kamera dapat dikoreografikan sebagai bagian dari sebuah urutan. Transformasi pandang dapat diturunkan dari langkah-Iangkah berikut. Pertama, jika kamera tersebut ditempatkan pada titik asal koordinat tiga dimensi, menunjukkanarah yang ditentukan oleh titik perhatian F, kemudian transformasi pandang ini dapat diperlihatkan:
-a
b (l_e2)1/2 -ae
V
=I (l - e2) 1/2 0 0
(1 - e2)1/2 -be (1-
a
0
b
0
e 0
0 1
e2)1,'2
(l - e2) 1/2 0
78
Pengantar Komputer Graftk
Hal ini terjadi dengan menyatakan arab yang diperlukan sebagai dua rotasi dengan menggunakan notasi vektor untuk sinus dan cosinus dari dua sudut. Jika kemudian kita menyamaratakan posisi kamera, meletakkannya pada titik (ef,g)~ dan memasukkan rotasi melalui sudut 8 di sekitar C-F maka tiga ~omponen matriks transformasi pandang tersebut adalah:
o o
sin e cose
o o
1 o
~]
Komponen ini terjadi dengan mempertimbangkan sebuah sistem pandang dengan kamera pada titik asal yang mengarah sepanjang sumbu x dan berotasi melalui sudut 8. Untuk mentransformasikan titik koordinat tiga dimensi ke dalam sistem ini kita memerlukan VI. Komponen yang kedua adalah: V2 = V(seperti di atas).
Kamera tersebut masih tetap berada pada titik asal akan tetapi menunjuk arab F-C. Sekarang untuk mentransformasikan kedalam sistem ini kita memerlukan VtV2. Komponen yang ketiga adalab:
o 1 o
-I
o o 1
-g
Akhimya, kamera berada pada titik (ej,g) dan kita memiliki Tview= VI V2 V3
Sebagaicatatan bahwa singularitas (keganjilan) terjadi bila c2 = 1. Ini terjadi pada saat kamera tersebutmenunjuk tegak ke atas atau tegak ke bawah, (a,h,c) = (0,0,1) atau (0,0,-1) dan berhubungan dengan sebuah kasus khusus. Transformasi pandang ini dapat mengatasi banyak situasi dalam grafik komputer dan transformasi pandang ini menghindarkan kesulitan antarmuka pemakai yang berhubungan dengan sistem pan dang urnurn yang didukung oleh standar GSK dan PHIGS.
Sistem Pandang
3.4
79
Sistem pan dang III Ringkasan ciri sistem pandang ini adalah: (I)
Persyaratan Antarmuka (interface) adalah: (a) dua buah vektor dan satu buah titik tiga-dimensi, dan (b) satu jarak bidang pandang.
(2) Tidak ada volume pandang yang ditentukan. (3) Tidak adajendela bidang pandang yang ditentukan. (4) Pusat proyeksi adalah titik pandang dan proyeksi perspektif digunakan. Sebuah alternatif tertentu sistem praktis dan salah satu yang lebih dekat ke standar filosofi GKS dan PHIGS adalah dengan menggunakan vektor dalam antarmuka pemakai bukan titik tiga-dimensi dan sebuah sudut. Jadi tidak ada perbedaan pokok antara sistem pandang II dan III kecuali dalam implikasi spesifikasi dan antarmuka. Juga, kita memperkenalkan sebuah parameter ekstra (sebuah vektor) yang memungkinkan kita menetapkan sistem koordinat tangan-kanan atau tangan-kiri untuk ruang pandang. Sistem tersebut ditentukan oleh dua buah vektor dan sebuah posisi (Gambar 3.3): (1) Posisi kamera C. Titik ini juga merupakan pusat proyeksi dan sarna dengan titik C dalam sistem sebelumnya. (2) Sebuah vektor arah pandang N (sumbu Zvpositif), sebuah vektor normal terhadap bidang pandang. (3) Sebuah vektor atas V yang mengorientasikan kamera di sekitar arah pandang dan menetapkan dengan N orientasi dari jendela bidang pandang dalam bidang pandang. (4) Sebuah vektor U (opsional) untuk menunjukkan arah pertambahan x dalam sistem koordinat mata. Ini menetapkan sistem koordinat tangan-kanan atau tangan-kiri (UVN). Saat ini kita mempertimbang Tview untuk memisahkan kedalam sebuah translasi T dan suatu perubahan basis B: Tview= TB dimana
80
Pengantar Komputer Grafik
-. l'
Gambar 3.3 Sistem pandang III: dengan menggunakan sebuah titik kamera, sebuah vektor arah pandang N, sebuah vektor atas V, dan sebuah vektor opsional U, Sistem koordinat tiga dimensi adalah sistem tangan-kanan, sistem koordinat pandang berupa sistem tangan-kiri.
o
T=
1 o -cy
:
[-cx
o o 1
-c~
yakni, seperti V3 dalam sistem sebelumnya. Ini dapat diperlihatkan (Fiume, 1989) bahwa B ditentukan oleh:
ux U. B
=[ ~~
Vx Vy
v.
o
Sekarang permasalahan hanya berupa penentuan sebuah antarmuka pemakai untuk sistem terse but dan pemetaan apapun parameter digunakan oleh antarmuka terse but .kedalam U, V, dan N. Pemakai perlu untuk menentukan C, N, dan V. C cukup mudah seperti yang telah kita bahas. N, arah pandang atau normal bidang pan dang, dapat dimasukkan, katakan dengan menggunakan dua sudut dalam sistem koordinat bola seperti dalam sistem sebelumnya: () sudut azimut
Sistem Pandang
81
v
,
I I I I I I I
"
J"
I I
,I "-
,
Gambar 3.4 Sistem pandang III. Vektor atas V dapat dikalkulasikan dari sebuah tanda (indication) yang ditentukan oleh V'.
dirnana Nx
= sin
Ny
= sin
N ~ = cos
V lebih rnerupakan persoalan. Sebagai contoh, seorang pernakai rnungkin rnenghendaki "atas" agar sarna dengan istilah "atas" dalarn sistern koordinat tiga dirnensi. Akan tetapi, hal ini tidak akan dapat dicapai dengan penetapan:
v = (0,0,I) karena Vharus tegak lurus terhadap N. Strategi yang pantas adalah rnernperbolehkan seorang pernakai untuk rnenentukan orientasi aproksirnasi bagi V, katakan V' dan rnerniliki kalkulasi sistern V. Garnbar 3.4 rnendernonstrasikan hat ini. V' adalah vektor atas yang ditentukan oleh pernakai. Ini diproyeksikan pada bidang pandang: V=V'-(V'.N)N dan dinorrnalisasi. U dapat ditentukan atau tidak bergantung pada persyaratan pernakai. Jika U tidak ditentukan, maka U diperoteh dari:
82
Pengantar Komputer Graftk
U=NxV yang menghasilkan sistem koordinat tangan-kiri.
3.5
Proyeksi bidang pan dang untuk sistem pandang I-III Pada tahap iili kita mempertimbangkan transformasi yang kedua yang kita perlukan untuk mengambilnya dari ruang koordinat tiga dimensi ke dalam ruang layar. Ini merupakan transformasi proyektif dari ruang pandang atau ruang mata yang memproyeksikan informasi gambar pada bidang pandang. (Kemudian sebuah transformasi yang bergantung pada piranti akan mengambil bidang pandang ke dalam ruang layar yang sebenarnya). Karena permukaan pandang dalam grafik komputer dianggap datar, kita mempertimbangkan kelompok proyeksi yang dikenal sebagai proyeksi geometrik planar. Oua proyeksi dasar, perspektif dan paralel akan dibahas. Proyeksi ini dan perbedaan sifat dasarnya dilukiskan pada Gambar 3.5. Proyeksi perspektif yang lebih terkenal atau pilihan umum dalam grafik komputer karena proyeksi ini menggabungkan hukum perspektif. Oalam proyeksi perspektif ukuran relatif tidak dipertahankan, dan sebuah garis yang jauh ditampilkan lebih kecil daripada garis yang lebih dekat yang sarna panjangnya (Gambar 3.6). Pengaruh ini memungkinkan orang untuk merasakan kedalaman dalam foto dua dimensi atau menyesuaikan mode kenyataan tiga-dimensi. Sebuah proyeksi perspektif dicirikan oleh sebuah titik yang dikenal sebagai pusat proyeksi dan proyeksi titik tiga-dimensi pada pusat bidang pandang adalah merupakan irisan (intersection), dalam bidang.pandang, garis dari masing-masing titik ke pusat proyeksi. Garis ini disebut proyektor. Oalam sistem pandang I-IV kita meminta batasan yang bukan tidak praktis di mana garis dari pusat proyeksi ke pusat bidang pandang (atau, lebih tepatnya, pusat jendela bidang pandang) adalah sejajar dengan normal bidang pandang. Hal ini dianggap menyederhanakan matematika proyeksi bidang pandang. Oalam sistem pandang V kita mempertimbangkan implikasi penghilangan batasan ini. Gambar 3.7 memperlihatkan bagaimana sebuah proyeksi perspektif diperoleh. Titik P (x,.,y",z,,)adalah sebuah titik tiga-dimensi dalam sistem koordinat pandang. Titik ini diproyeksikan pada sebuah normal bidang pandang ke sumbu z" dan ditempatkan padajarak d dari titik asal sistem ini. Titik P' adalah proyeksi titik ini dalam bidang pandang dan memiliki koordinat dua-dimensi (x.,.,ys)dalam sistem
Sistem Pandang
83
Projectors are
parallel
Parallel projection
PI
r---L--------Perspective projection
Gambar 3.5 Dua titik yang diproyeksikan pada sebuah bidang menggunakan proyeksi perspektif dan proyeksi paralel.
koordinat bidang pandang dengan titik asal pada perpotongan surnbu z,. dan bidang pandang. Dalarn sistern ini kita rnernpertirnbangkan bidang pandang berupa permukaan pandang atau layar. Titik ini akan dipelajari pada bagian berikutnya. Segitiga sarna sebangun rnernberikan: Xs ---
d
Xv Zv
Xv
Xs = zv/d
Ys _.!..::.. d Zv Yv
Ys = zv/d
Untuk rnenyatakan transforrnasi yang tidak linear ini sebagai sebuah rnatriks 4 x 4 kita dapat rnernpertirnbangkannya dalarn dua bagian yakni bagian linear yang
84
Pengantar Komputer Graftk
,.'" ",,"",.."'
~~-----
Centre or projection
Gambar 3.6 Dalarn proyeksi perpektif sebuah garis yang jauh ditampilkan lebih kecil daripada garis yang lebih dekat yang sarna panjangnya.
.\\
View plane
-.
Looking along y axis
x.
P(x"y,. :,J P(x")',, z.J
Looking along x axis
d-
-. - View plane
Gambar 3.7 Penurunan sebuah transformasi perspektif.
Sistem Pandang
85
diikuti oleh bagian yang tidak linear. Dengan menggunakan koordinat homogen kita dapatkan: X=Xv Y=Yv Z = Zv w = zv/d
Sekarang kita dapat menuliskan [X y Z w] = [xv Yv Zv 1] Tpers
dimana
T "
0 0 1 0
0 1 0 0
=[
Selanjutnya dengan pembagian perspektif, kita dapatkan Xs
Ys Zs
= X/w = Y/w = Z/w
Di dalam proyeksi sejajar (parallel projection), jika bidang pandang adalah normal terhadap arah proyeksi maka proyeksi tersebut adalah orthographic dan kita dapatkan:
Y. = Yv
Zv = 0
Yang dinyatakan sebagai sebuah matriks 1 Tort =
0
0
0
o 1 0 0 000
0 0
0 0 1
[
]
Kini kita lihat beberapa contoh sederhana yang melukiskan bagaimana parameter dalam sistem pandang III mengubah proyeksi sebuah obyek yang sederhana. Gambar 3.8 memperlihatkan lima proyeksi, yaitu:
86
Pengantar Komputer Grafik
(a)
,
(b)
. I
(e)
(d)
fe)
Gambar 3.8 Lima contoh sistem pandang III. (a) Pandangan referensLV' ditetapkan pada (0,0,1) kamera yang sebenarnya dalam posisi ke atas. (b) Seperti (a) kecuali bahwa C dipindahkan menjauh dari titik asal koordinat tiga-dimensL (c) V ditentukan sebuah komponeny yang bukan nol ekuivalen dengan merotasikan kamera yang sebenarnya di sekitar arah pandangnya. (d) Seperti pandang (a) akan tetapi N diubah dengan merotasi di sekitar sumbu Zw(memperbesar komponen y). (e) Seperti pandang (a) kecuali bahwa keduajarak titik pandang dari titik asal adalah d, jarak bidang pandang, dikurangi menjadi bilangan bulat kecil dengan efek perspektifyang diperbesar.
-
Sistem Pandang
87
(a) Gambar referensi yang dipusatkan pada titik asal"koordinattiga-dimensi. V', vektor atas, ditetapkan pada (0,0,1). Yaitu, kamera yang sebenamya (virtual camera) berada dalam posisi ke atas. Di mana "atas" dianggap sebagai arab
yangditentukanoleh sumbuZ",. (b) Pandangan ini seperti (a) kecuali bahwa titik C dipindabkan semakin jauh dari titik asal koordinat tiga-dimensi. Arah pandang yang sarna dipertahankan. (c) Pandangan ini seperti (a) kecuali bahwa V ditentukan sebagai sebuah komponen y - ekuivalen dengan merotasi kamera tersebut di sekitar arah yang ditunjuk. (d) Pandangan ini seperti (a) tetapi N diubah dengan merotasinya di sekitar sumbu z'"(dengan memperbesar komponeny). (e)
3.6
Seperti (a) kecuali bahwa jarak titik pandang dari titik asal dan d, jarak bidang pandang, dikurangi menjadi bilangan bulat kecil dan menjadi dapat dibedakan dengan memperluas obyek tersebut. Ini merupakan efek perspektifyang diperbesar.
Sistem pandang IV Ringkasan ciri sistem pandang ini adalah: (1) Persyaratan Antarmuka (interface) adalah: (a) dua vektor dan satu titik, dan (b) satu jarak bidang pandang (yang juga jarak bidang dekat) dan satu jarak bidang jauh. (2) Volume pandang ditentukan akan tetapi bidang pandang dibatasi berdekatan dengan bidang dekat. (3) Jendela pandang ditentukan tetapi merupakan persegi dan diatur simetris di sekitar 'pusat' bidang pandang. (4) Pusat proyeksi adalah titik pandang dan proyeksi perspektif digunakan. Sampai saat ini kita tidak menggunakan konsep volume pandang dalam sistem pandang yang disederhanakan. Ini berarti bahwa dalam sistem pandang I-III semua informasi dalam gambar tersebut diproyeksikan pada bidang pandang. Hal ini memiliki dua implikasi. Pertama, karena kita tidak menggunakan volume
88
Pengantar Komputer Grajik
pandang kita bergantung pada algoritma pengklipingan dua-dimensi untuk mengeliminasi informasi dalam bidang pandang yangjatuh di luar jendela bidang pandang. Ini baik untuk tampilan bingkai kawat, karena utilitas penggambar garis (line-drawing utilities) yang akan kita gunakan hampir selalu memiliki utilitas pengklipingan yang berhubungan dengannya. Akan tetapi untuk gambar dari hasil "rendering" segala sesuatu tidak begitu sederhana. Kedua, untuk proyeksi agar dapat dimengerti kita harus menjamin bahwa titik pandang se/a/u berada di luar volume tersebut yang mencakup seluruh gambar. Proyeksi ini tidak dapat dimengerti, misalnya, untuk memasukkan informasi proyeksi yang berada dibelakang titik pandang. Sejauh ini yang diperhatikan adalah pipeline rendering tiga-dimensi yang umum, kita perlu mendefinisikan volume pandang. Ini merup~kan piramida pancung dalam ruang pandang terhadap poligon yang kita klip yang menyusun gambar tersebut. Untuk menentukan volume pandang ini kita perlu menentukan sebuah bidang dekat, sebuah bidang jauh dan sebuah jendela bidang pandang (Gambar 3.9). Dalam sistem ini kita membuat penyederhanaan atau batasan bahwa bidang dekat harus berimpitan dengan bidang pandang. Juga untuk menyederhanakan matematika kita menentukan sebuah jendela bidang pandang yang ditentukan secara simetris di sekitar pusat bidang pandang (perpotongan garis dari titik pandang C yang searah dengan arah pandang dan bidang pandang). Ini adalah sebuah sistem yang tampak dalam buku pelajaran klas.ik mengenai grafik komputer (newman dan Sproull, 1981). Secara sepintas, sebagai catatan dari Gambar 3.9 bahwa sistem seperti ini (grafik komputer) berbeda secara nyata dengan sistem kamera real dalam hal informasi dengan segera di depan kamera yang dapat dikliping. Sebu~h kamera real tidak memiliki (kecuali dalam bentuk pembatasan optik) bidan.g dekat dan bidang jauh. Kemudian volume pandang ditentukan oleh enam bidang: hXv =:t~ )'v= +~ -
Zv= d Zv= f dimana
d h.,.
d
Sistem Pandang
89
hz,
x'=-7 y\
-. x,
h:, Y'=-7 Gambar 3.9 Sistem pandang IV: pandang bentuk bangun terpancung (frustum) yang dibentuk oleh enam bidang dan volume f'andang. Ini merupakan sebuah sistem koordinat tangan-kiri.
2h adalah dimensi jendela bidang pandang d adalah jarak bidang pandang dan jarak bidang dekat f adalah jarak bidang jauh Pelat (plate) 2 memperlihatkan interaksi sebuah obyek dengan sebuah volume pandang dimana obyek tersebut sebagian berada di dalam dan sebagian berada diluar volume pandang.
3.7
Proyeksi bidang pan dang untuk sistem pandang IV Kini kita memerlukan Tpersdalam bentuk parameter ini. Juga pada tahap ini kita mendefinisikan konsep ruang layar tiga-dimensi dan sebuah titik dalam ruang terse but sebagai: [xsJ's,zs, 1]
dimana kita perlu menetapkan Zspada nilai tertentu (selain z.). Alasan untuk hal ini adalah bahwa pengklipingan tiga-dimensi yang terbaik dilakukan dalam ruang ini untuk alasan yang akan diuraikan dalam Bagian 3.8. Juga, pilihan yang paling populer bagi penghilangan permukaan yang tersembunyi, algoritma penyangga-Z (Bab 5), harus dilaksanakan dalam ruang ini. (Algoritma penyangga-Z dapat
90
Pengantar Komputer Grafik
digunakan untuk sistem pandang I-III dengan Zs ditetapkan sarna dengan zv). Pertimbangan kedalaman ruang layar adalah sebagai berikut: (1)
Zsperlu dinormalkan sehingga ketepatannya maksimum.
(2) "Garis-garis dalam bidang pandang memerlukan transformasi menjadi , garisgaris dalam ruang layar. (3)
Bidang-bidang dalam ruangpandang dang-bidang dalam ruang layar.
memerlukan transformasi menjadi bi-
Ini dapat diperlihatkan (oleh Newman dan Sproull, 1981) bahwa syarat ini dipenuhi asalkan transformasi z mengambil bentuk: Z.I. = A + B/zv
dimana A dan B adalah konstanta. Konstanta ini ditentukan dari batasan berikut 1m: (1) Memilihan B < 0 sedemikian rupa sehingga ketika Zvbertambah maka Zsjuga bertambah. Ini menjaga gagasan intuisi kita mengenai kedalaman. Jika satu titik berada di belakang titik yang lain, maka titik ini akan memiliki nilai Zv yang lebih besar; jika B < 0 titik ini juga akan memiliki nilai Zsyang lebih besar. (2) menormalkan rentang (range) nilai Zs sedemikian rupa sehingga rentang Zv [dj] memetakan ke dalam rentang Zv E [0,1]. Transformasi perspektif penuh kini ditentukan oleh: Xv
X, = d-,
l:y Vv
- d-=-y, - h::.v 10 - d!::.v) Z, = 1- d dimana penambahan konstan, h, tampak dalam transformasi tersebut untuk X.Idan YI,memastikan bahwa nilai ini berada dalam rentang [-1,1] pada layar persegi. Dengan mengambil manipulasi yang sarna dengan yang terdapat pada Bagian 3.5, kita mendapatkan d X=-,;xv
Sistem Pandang
91
d Y="hYv
Z = fzv/(f - d) - df/U - d) w = Zv
menghasilkan [X Y Z w] = [xv Yv Zv 1] Tp<:~ dimana:
o d/h
o o
o o flU - d) -df/(f - d)
(3.1)
I]
Ini kemudian diikuti oleh apa yang disebut dengan sifat dasar pembagian perspektif untuk membangkit citra perspektif (perspective image). Ini mengubah titik homogen (X;Y,Z,w) menjadi sebuah titik tiga-dimensi dalam ruang layar (x."y,,z..):
xs = X/w Ys= Y/w Zs = Z/w Ini merupakan instruksi untuk mengubah matriks (3.1) menjadi sebuah perkalian dari dua buah matriks:
_
Tpe~ -
[
d/h 0 0 o
0 d/h 0 0
o o 1 o
o
~] [~
1 o o
o o !/(f - d) - fd/(f - d)
f]
= Tpe~l Tpe~~ Hal ini memungkinkan visualisasi grafik yang berguna pada suatu proses. Matriks yang pertama adalah penyekalaan (dlh) dalam x dan y. Ini mengubah sebuah volume pandang dari piramida terpotong (truncated pyramid) dengan sisi miring pada sudut yang ditentukan oleh hid ke dalam sebuah piramida teratur (regular pyramid) dengan sisi miring pada sudut 45° (Gambar 3.10). Sebagai contoh, titik: (O.h.d,l) ditransformasikan ke (0.d.d.1)
92
Pengantar Komputer Grafik
.',. View volume
z, I I I I
Near plane
Far plane
(al
(U.d.dl
-,
y. +1
o
-I Near plane
z,
Far plane
(e)
Gambar 3.10 Transfonnasi volume pandang ke dalam volume pandang kanonikal (sebuah kotak) dengan menggunakan dua buah transfonnasi matriks.
Sistem Pandang
93
dan titik:
(O,-h,d,l)
ditransformasikan ke (O.-d,d,!)
Transformasi yang kedua memetakan piramida biasa ke sebuah kotak. Bidang dekat memetakan ke bidang xy dan bidangjauh dipetakan ke z=1. Sebagai contoh, titik: (O.d,d,l) ditransformasikan ke (O.d,O,d) yang ekuivalen dengan (0,1,0,1).
3.8
Pemotongan untuk sistem pan dang IV Penggunaan sistem pandang yang agak terbatas memberi kita keuntungan yang berarti bila kita mengkliping obyek volume pandang. Kliping melibatkan pengujian obyek terhadap pandangan bentuk bangun terpacung (viewing frustrum) dan ini diperlukan karena dua alasan berikut ini:
.
.
Sebuah titik pandang atau posisi karnera merupakan sebuah titik sembarang yang sebelumnya ditentukan dalam ruang tiga-dimensi. Jelasnya kita tidak ingin berhubungan dengan obyek yang tidak menyumbangkan untuk citra akhir, misalnya obyek yang berada di belakang titik pandang. Transformasi ruang layar adalah gambar yang didefinisikan berada di luar pandang bentuk bangun terpancung. Ada singularitas pada zv=O.Selain itu, sebuah daerah yang dicerminkan dalam ruang homogen, berhubungan dengan w negatif, juga memetakan ke dalam pandang potongan gambar.
Sebuah obyek tertentu yang berhubungan dengan pandang bentuk bangun terpancung dapat dimasukkan dalam salah satu dari tiga kategori: (1) Obyek tersebut sarna sekali terletak di luar pandang bentuk bangun terpancung dimana dalam kasus ini obyek tersebut dibuang. (2) Obyek tersebut terletak di dalam pandang bentuk bangun terpancung dalam kasus ini obyek tersebut ditransformasikan ke ruang layar dan di-render. (3) Obyek tersebut memotong pandang potongan dalam kasus ini ia dipotong dan ditransformasikan ke ruang layar.
94
Pengantar Komputer Grafik
Operasi pengklipingan tersebut dapat dilakukan pada koordinat homogen tepat sebelum pembagian perspektif. Pentranslasian penentuan pandang bentuk bangun terpancung di atas ke dalam koordinat homogen memberi kita batas-batas pengklipingan: -w:!O;;x:!O;;w
Algoritma pengklipingan (Bagian 5.2) mengkliping semua empat koordinat homogen -w yang diperlakukan dengan tanpa membeda-bedakan komponen yang lain.
3.9
Sistem pan dang V (PRIGS) Sistem pandang yang terakhir yang kita lihat adalah sistem standar yang diambil dari GKS dan PRIGS. Sebuah aspek yang tidak menguntungkan pada sistem pandang standar adalah bahwa karena mereka memberikan seperti keadaan umum yang tidak mereka harapkan tidak praktis dan sulit untuk mengantarmukakan. Walaupun subset parameter digunakan, nilaidefault untuk parameter yang tidak digunakan harus dapat dimengerti dan dipahami. Barangkali ini tidak dapat dielakkan. Fungsi standar, dalam satu hal, bukan untuk mencerminkan penggunaan umum akan tetapi untuk mendetinisikan perangkat fasilitas yang meny~luruh yang barangkali diperlukan oleh seorang pemakai dalam sebuah sistem .pandang yang umum (general viewing system). Beberapa fasilitas ini sangat sering dipakai adalah merupakan hal yang kurang menguntungkan.
3.9.1
Tiniauanmengenai sistem pandang V Kita mulai dengan meninjau perluasan terhadap sistem IV yang ditawarkan PRIGS. Perluasan tersebut adalah: (I)
Gagasan mengenai sebuah titik pandang atau titik mata yang menetapkan titik asal dari sistem koordinat pandang dan pusat proyeksi kini dibuang.
Sistem Pandang
95
Ruang pandang dalam PRIGS yang ekuivalen merupakan sistem koordinat referensi pandang (view reference coordinate, VRC) yang ditetapkan dengan mendetinisikan sebuah titik referensi proyeksi (projection reference point, PRP). (2) Ciri 1 berarti bahwa sebuah garis dari pusat proyeksi ke pusatjendela bidang pandang tidak perlu sejajar terhadap normal bidang pandang. Implikasi ini adalah memungkinkan adanya proyeksi sudut miring. Hal ini ekuivalen, dalam analogi kamera yang sebenamya, agar memungkinkan bidang film dimiringkan terhadap arah dimana kamera tersebut diarahkan. Efek ini digunakan dalam rancangan kamera tertentu untuk membetulkan distorsi perspektif dalam konteks seperti pemotretan sebuah bangunan yang tinggi dari tanah. (3) Bidang pengklipingan dekat dan jauh ditentukan seperti sebuah bidang pandang. Dalam sistem pandang IV kita buat bidang potong belakang yang berimpitan dengan bidang pandang. (4) Sebuah jendela bidang pandang didetinisikan yang dapat memiliki suatu aspek perbandingan dan dapat ditempatkan dimana saja dalam bidang pandang tersebut. Didalam sistem pandang IV kita mendetinisikan sebuah jendela persegi yang dibuang secara simetris di sekitar pusat bidang pandang tersebut. (5) Sistem koordinat referensi pandang jamak dapat didetinisikan atau banyak pandang terhadap suatu gambar dapat dibuat. Masalah utama yang berkenaan dengan sistem pandang I-IV, sejauh yang diperhatikan adalah generalitas, adalah bekerja dengan gagasan mengenai jarak. Kita menggunakan gagasan mengenai jarak titik pandang tersebut untuk mencerminkan gagasan intuisi yang dominan bahwa semakin jauh titik pandang dari suatu gambar, akan semakin kecil proyeksi gambar pada bidang pandang tersebut. Masalah yang muncul dari kenyataan bahwa dalam suatu sistem nyata, atau dalam sebuah sistem gratik komputer yang umum, tidak ada sesuatu sebagai titik pandang. Kita dapat memiliki sebuah pusat proyeksi dan sebuah bidang pandang, dan didalam sebuah kamera atau mata analogi ini bagus. Di dalam sebuah kamera, bidang pandang atau bidang film terdapat didalam kamera tersebut. Proyeksi suatu gambar ditentukan oleh jarak kamera dari subyek dan panjang titik fokus lensa tersebut. Akan tetapi, dalam gratik komputer kita bebas memindahkan
96
Pengantar Komputer Grafik
bidang pandang terhadap pusat proyeksi dan gambar tersebut. Tidak ada lensa yang sedemikian ini. Kemudian bagaimana kita mengkategorikan jarak? Apakah kita menggunakan jarak pusat proyeksi dari titik asal koordinat tiga dimensi atau jarak bidang pandang dari pusat proyeksi? Sistem umum seperti PHIGS mempersilahkan pemakai untuk menjawab pertanyaan t"ersebut.Barangkali ini merupakan atribut sistem pandang pmGS yang membuatnya tampak tidak praktis. PHIGS mengkategorisasikan sebuah sistem pandang menjadi tiga tahap (Gambar 3.11). Penetapan posisi dan orientasi bidang pandang dikenal sebagai bidang orientasi (view orientation). Hal ini memerlukan pemakai untuk menyediakan:
. . .
titik referensi pandang (view reference point, VRP) - sebuah titik dalam ruang koordinat tiga-dimensi; arah pandang atau normal bidang 'pandang (view plane normal, VNP) sebuah vektor dalam ruang koordinat tiga-dimensi. vektor pandang atas (VUV) sebuah vektor dalam ruang koordinat tiga-dimenSl.
-
Tahap kedua dalam proses tersebut dikenal sebagai pemetaan pandang (view mapping) dan menentukan bagaimana titik-titik dipetakan pada bidang pandang. Ini memerlukan:
.
.
. . . .
jenis proyeksi (paralel atau perspektit); titik referensi proyeksi (projection reference point, PRP) - sebuah titik dalam ruang VRC; jarak bidangpandang(viewplanedistance,VPD) - nyatadalamruangVRC; jarak bidang belakang dan bidang depan nyata dalam ruang VRC; batas jendela bidang pandang empat batas dalam ruang VRC. batas tutup jendela pandang proyeksi empat batas dalam ruang proyeksi yang dinormalkan (normalized projection space, NPC).
-
-
-
Informasi ini digunakan untuk memetakan informasi dalam VRC atau beberapa VRC kedalam koordinat proyeksi yang dinormalkan (normalized projection coordinates, NPCs). Ruang NPC adalah sebuah kubus dengan koordinat dalam masing-masing arah yang terbatas pada jangkauan 0-1. Dasar pemikiran dari ruang ini adalah agar memungkinkan VRCs yang berbeda ditetapkan pada saat diperlukan lebih dari satu pandang dari sebuah gambar (dan dipetakan secara
Sistem Pandang
97
World coordinates
I View orientation establishes the view rderence coordinale svstem Requires VRP. VPN and VUV View referenc coordinates
e
View mapping delermincs Ihe posilion <>flhc vicw plane and how points arc mapped onlO it. Requires projeclion Iype. PRP. VPD. near and far plane dislances. view plane window
Device cutlrdinales
Gambar 3.11
Sistem pandang V:penetapan sistem pandang dalam PHIGS.
berurutan ke dalam tutup jendela pandang yang berbeda pada layar). Masing-masing pandang memiliki VRC sendiri yang berhubungan dengannya, dan pandang yang berbeda dipetakan kedalam ruang NPC. Tahap pemrosesan terakhir adalah transformasi workstation, yakni, transformasi yang bergantung pada piranti normal. Kini aspek-aspek ini diuraikan dengan jelas.
98
Pengantar Komputer Grafik
3.9.2 Parameter orientosi pandang Di dalarn PHIGS kita rnenetapkan sebuah sistern ruang pandang yang rnerniliki titik asal yang diternpatkan dimana saja dalarn ruang koordinat tiga-dirnensi oleh VRP. Bersarna-sama dengan VPN dan VUV ini rnenentukan sistern koordinat tangan-kanan dengan surnbu U, V, dan N. N adalah arah pandang dan UV rnenentukan bidang apakah berirnpitan dengan atau sejajar dengan bidang pandang. (VUV rnerniliki fungsi yang tepat sarna dengan fungsi V' dalarn Bagian
,
" ,I ,
Vi.:w nri':nlatiun
£
\
VL!V\\ \\
Gambar 3.12 PHIGS - orientasi pandang dan parameter pemetaan pandang. Catat bahwa ini adalah sistem koordinat tangan-kanan.
Sistem Pandang
99
3.4). Perkalian silang VUV dan VPN menentukan U dan perkalian silang VPN dan U menentukan V: U = (VUV) x (VPN) V = (VPN) x U
Sebuah interface untuk menetapkan VPN dapat dengan mudah ditetapkan menggunakan saran yang diberikan dalam Proyek 3.1. (Catatan bahwa VUV harus tidak sejajar dengan VPN.) Hubungan geometrik antara orientasi dan parameter pemetaan diperlihatkan pada Gambar 3.12. Jadi tahap orientasi pandang menetapkan posisi dan orientasi VRC relatif terhadap titik asal koordinat tiga-dimensi. Spesitikasi bidang pandang ditentukan relatif terhadap VRC dan sedemikian jauh filosoti ini mirip dengan sistem pandang IV. (Kecuali bahwa kini kita mempertimbangkan sistem tangan-kanan dan VRC hanya merupakan titik asal ruang pandang. la tidak memiliki signitikansi khusus yang juga pusat proyeksi untuk sebuah proyeksi proyektifperspektif.)
3.9.3
Parameterpemetaanpandang Tahappemetaanpandangmenentukanbagaimansuatugambar,dan bagian,yang diproyeksikan pada bidang pandang. Dalam proses orientasi pandang parameter tersebut ditentukan dalam ruang koordinat tiga-dimensi. Dalam tahap ini parameter tersebut ditentukan dalam ruang pandang. Pertama, ruang pandang ditetapkan. Ini adalah sebuah bidang (secara teoritis) perluasan tak hingga, sejajar dengan bidang UV dan pada jarak yang ditentukan oleh VPD dari VRP. Sebagaimana dalam sistem pandang IV, volume pandang ditetapkan oleh penentuan bidang depan dan bidang belakang, bersama-sama dengan sebuah jendela pandang. Sebuah jendela pandang adalah suatu jendela persegi dalam bidang pandang. la didetinisikan oleh koordinat minimax dalam ruang pandang dua-dimensi, jadi, koordinat UV ditransformasikan sepanjang VPN ke bidang pandang. Ini adalah (Umin,Vmin)dan (umax,vmax).Hubungan ini diperlihatkan untuk sebuah proyeksi sejajar dan proyeksi perspektif dalam Gambar 3.13. Jenis proyeksi dan.PRP melengkapi gambar tersebut. PRP sebagaimana yang telah kita nyatakan diatas tidak terletak pada sebuah garis, sejajar dengan VPN, dan melalui pusat jendela bidang pandang. Jika ia berhenti pada garis ini akan dibentuk sebuah proyeksi miring.
100
Pengantar Komputer Grafik
~
Far plane
PRP
(a)
~t \
1;>"\1 '>~~ ~ .~'\
I
P1
~'\
I I I I I
I
I I
ivPN I I I I
'" Farplane
"" "" PRP
View plane wimlow
Nearplane
(b)
Gambar 3.13 Geometri volume pandang untuk sebuah proyeksi sejajar dan perspektif.
Sistem Pandang
101
Dua hubungan yang memungkinkan antara PRP dan jendela bidang pandang diperlihatkan dalam Gambar 3.14. Ini adalah: (a)
Sebuah garis dari PRP ke pusat jendela bidang pandang adalah seJaJar dengan VPN.
(b) Perpindahan PRP menghasilkan sebuah proyeksi miring. Syarat pada (a) tidak lagi benar. Bidang pandang yang lebih rinci Posisi dan orientasi sebuah bidang pandang ditentukan oleh titik referensi pandang (view reference point, VRP), jarak bidang pandang (view plane distance, VPD) dan normal bidang pandang (view plane normal, VPN) (lihat Gambar 3.12). Arah pandang ditetapkan oleh VPN. Dibandingkan dengan sistem yang sebelumnya, dengan menggunakan kamera dan sebuah titik fokus untuk menetapVRP dan VPN kan VPN dan jarak d, kini kita menggunakan dua vektor (ditambah jarak (VPD) yang memindahkan VRP dari bidang pandang). Tidak seperti dua sistem sebelumnya dimana VRP juga digunakan sebagai pusat proyeksi, titik referensi proyeksi (projection reference point, PRP) juga ditentukan secara terpisah. Kini VRP menjadi titik referensi untuk sebuah sistem koordinat dan dapat ditempatkan dimana saja yang sesuai. Sebagai contoh, VRP dapat membentuk titik asal bidang pandang, atau VRP dapat ditempatkan pada titik asal koordinat tiga-dimensi, atau pada pusat obyek yang menjadi perhatian. Dengan menempatkan VRP selain pada titik asal bidang pandang memiliki keuntungan bahwa VPD memiliki beberapa arti sebagai sebuah titik pandang. Jika VRP ditempatkan dalam bidang pandang maka VPD menjadi nol dan merupakan sesuatu yang berlebihan sebagai sebuah parameter. Jug~, untuk menggerakkan semakin jauh atau semakin dekat terhadap sebuah obyek hanya VPD lah yang perlu berubah. Sebuah bidang pandang dapat ditempatkan dimana saja di dalam ruang koordinat. Bidang pandang dapat berada di belakang, di depan, atau mengkliping melalui obyek (Plate 2). Dengan penetapan posisi dan orientasi sebuah bidang pandang kita menetapkan sebuah sistem koordinat uv dalam bidang pandang tersebut dengan VRP (atau proyeksinya dengan bidang pandang) sebagai titik asal (Gambar 3.15). Sistem koordinat dua-dimensi uv dan VPN yang membentuk sebuah sistem koordinat tangan-kanan. Ini memungkinkan puntiran jendela bidang pandang yang ditetapkan di sekitar VPN dan memungkinkan penetapan
-
102
Pengantar Komputer Grajik
-
vP:-;
PRP
PRP
View plane window View plane
(a)
VP~ ---
. ~
PRP
(b)
Gambar 3.14 (a) Proyeksi strandar dan (b) proyeksi miring yang diperoleh dengan menggerakkan PRP turun secara tegak dengan arah yang sejajar dengan bidang pandang.
jendela (Gambar 3.16). Puntiran ini ditetapkan oleh vektor atas pandang (view up vektor, VUV) dan efek umum dari vektor ini adalah untuk menentukan apakab suatu gambar dilihat tegak lurns, terbalik atau apapun juga. Arab sumbu v diten-
Gambar 3.15 Sebuah sistem koordinat uv yang ditetapkan dalam bidang pandang yang membentuk sistem tiga-dimensitangan-kiri (tangan-kanan untuk GKS-3D dan PHIGS)dengan VPN.
Sistem Pandang
103
I
(/) I
Gambar 3.16 VUV menetapkan arab sumbu v yang memperbolehkan bidang pandang untuk memuntir sekitar VPN.
Viewplane
Gambar 3.17 Penetapan sebuabjendela dua-dimensi dalam bidang pandang.
tukan oleh sumbu Vdengan proyeksi VUV yang sejajar dengan VPN pada bidang pandang tersebut. Dengan sebuah sistem koordinat dua-dimensi yang ditetapkan dalam bidang pandang suatu jendela dua-dimensi dapat ditetapkan (Gambar 3.17). Ini
104
Pengantar Komputer Grajik
menjaga pemetaan nilai vertex berorientasi aplikasi atau tidak dibatasi dalam ruang koordinat tiga-dimensi untuk menyesuaikan nilai dalam perluasan bidang pandang. Segala sesuatu yang lain sarna, penetapan jendela ini menentukan ukuran obyek pada permukaan pandang.
3.10
Pengimplementasian sistem pandang V Dengan memiliki transformasi yang dikembangkan untuk sistem pandang IV kita dapat menghubungkan sistem pandang V dengan memperluas transformasi ini. Pertama perhatikan PRP. Dalam sistem pandang V ini ditentukan sebagai sebuah titik dalam ruang VRC, yakni, sebuah titik relatif terhadap titik asal VRC. Kita dapat menghadapi perbedaan ruang antara PRP dan VRC dengan membuat PRP titik asal. Parameter bidang pandang dan bidang potong adalah jarak yang perlu dinyatakan relatif terhadap pusat proyeksi dan hal ini diatasi dengan penggunaan translasi (PRP) terhadap mereka. Pendekatan kita hanyalah untuk memroses parameter sistem pandang V dengan demikian ia menjadi sarna seperti sistem pandang IV. Hal ini memberi kita keadaan yang diperlihatkan dalam Gal11bar3.18 yang seharusnya dibandingkan dengan Gambar 3.10(a). Ciri lain dari sistem pandang V adalah bahwa kini kita memiliki sebuah bidang pandang, bidang dekat dan bidang jauh serta volume pandang yang memiliki sisi slope yang berbeda karena kita menghilangkan batasjendela bidang pandang dari sistem pandang IV. Sebagai catatan bahwa volume pandang kita cenderung sekitar sumbu -z karena kini ruang pandang kita berupa sistem tangan-kanan. Kita ambit kaidah berikut 1m: Nilai interface
Setelah pentransformasian PRP ke titik asal VRC
VPD Jarakbidang jauh
d f n
Jarak bidang dekat umax,
Umin
Vmax. Vmin
Xmax, Xmin Vrnax, Vrnin
(Sebagai catatan bahwa meskipunf dan d memiliki interpretasi yang sarna dengan f dan d pada sistem pandang IV mereka bukan nilai yang sarna. Simbol-simbol yang sarna tetap dipakai di sini untuk menghemat bertambah banyaknya notasi).
Sistem Pandang
105
Farplane View \"olume
View plane View plane windo\\<
centre line
--
PRP
n f
(a)
Gambar 3.18 (a) Keadaan setelah pembuatan PRP titik asa1.(b) Setelah pentransformasian ke volume pandang simetris.
106
Pengantar Komputer Grafik
Kini Tpersdibagi menjadi dua buah komponen dan kita memiliki: Tpers = Tpersia Tperslb Tpers2 dimana Tperslbdan Tpers2memiliki efek yang sarna seperti Tpersldan Tpers2pada sistem pandang IV. Ini diperoleh dengan memodifikasi Tpersldan Tpers2untuk memasukkan parameter jendela bidang pan dang dan pemisahan bidang dekat dari bidang pandang. Pertama kita perlu mengkliping sedemikian rupa sehingga garis pusat volume pandang menjadi berimpitan dengan sumbu z,.. Ini berarti menyesuaikan nilai x dan y dengan nilai yang sesuai dengan z. Dapat dilihat dengan mudah bahwa: 1 0
Tpersia =
I
Xmax
0 1
+ Xmin
2d 0
Ymax
+ Ymin
2ei 0
0 0
0 0
1
0
0
1
Sebagai contoh, edge jendela bidang pandang bagian atas dan bawah ditransformasikan sebagai berikut: ditransformasikan ke
(O,Ymax,-d, 1)
(xmax+Xmin)
2
(
'
(Ymax-Ymin) -d 2
"
1 )
dan (O,Ymin,-d,l)
ditransformasikan ke (
_ (xmax + Xmin) 2
'
_
(Ymax
-2 Ymin)" -d
1)
pentransformasian volume pandang original ke dalam volume pandang simeteris (Gambar 3.18b). Transformasi yang kedua adalah:
2d Xmax
Tperslb
=I
- Xmin 0
0 0
0 2d Ymax-
0 0
0
0
0
0
1 0
0 1
Ymin
Sistem Pandang
107
Penyekalaan ini sarna efeknya terhadap Tperslpada sistem pan dang IV yang mengubah volume pandang simetris menjadi volume pandang 45°. Sebagai contoh, perhatikan efek dari Tpersl = TpersIaTpers1bpada garis yang 'ilelalui pusat jendela bidang pandang. Ini mentransformasikan titik: Xmax
(
+ Xmin
2
.
Ymax
+ 2
Ymin
'
-d 1 ,
)
ke
(O,O,-d.l)
yang membuat garis dari titik asal ke titik ini berimpit dengan sumbu -z yakni hasiI yang diinginkan. Akhirnya kita mendapatkan:
o 1 o o
o o f/U - n) - fn/U - n)
yang memetakan piramida beraturan menjadi sebuah kotak.
Prayek, catatan, dan saran 3.1 Interface sistem pandang Tingkatkan program bingkai kawat dasar anda agar mencantumkan sebuah interface sistem grafik untuk sistem pandang I. .Lakukan ini dengan perancangan sebuah tutup jendela pandang yang mempertahankan penyajian penggambaran garis mutakhir pada parameter sistem pandang; ini berupa sebuah proyeksi duadimensi pada sistem pandang dari sebuah titik pandang yang sesuai (misalnya, lihat lampiran A, Gambar A.2). Kini kita memiliki dua titik pandang: sebuah titik pandang primer yang digunakan tutup jendela pandang utamauntuk melihat obyek, dan sebuah titik pandang yang digunakan untuk interaksi tutup jendela pandang yang melihat titik pandang primer diIekatkan dalam sistem koordinat bolanya. Hal ini memungkinkan seorang pemakai untuk memindahkan titik pandang dalam arti sebuah intuisi dari posisi yang sekarang ke posisi yang baru.
108
Pengantar Komputer Grajik
(3)
(b)
Ie)
Gambar 3.19 Cara kerja dari ruang mata ke ruang layar.(a) Pandangan pada sebuah gambar. (b) Pandangan sistem pandang yang memperlihatkan pandang terpancung dan bidang pandang. (c) Isi jendela bidang pandang.
Sistem Pandang
109
Sebagai catatan bahwa pilihan titik pandang untuk penyajian sistem pandang adalah tidak arbitrase. Jika proyeksi sistem pandang agar berguna, maka titik pandang harns dipilih sehingga ia sendiri merupakan fungsi dari parameter pandang yang utama. 3.2 Sistem p.andang belajar beFbantuan-komputer Orang mempelajari sistem pandang biasanya memiliki beberapa kesulitan dalam memperkirakan efek bermacam-macam parameter pada tampilan terakhir dari gambar yang diproyeksikan. Rancanglah sebuah sistem pengajaran untuk sistem pandang 11-V. Salah satu gagasan (yang agak rumit) diperlihatkan pada Gambar 3.19. Ini memperlihatkan sebuah gambar dengan sebuah pandang bingkai-kawat terpancung, bersama-sama dengan proyeksi yang sesuai.