VRML Pengenalan Kegunaan VRML bangunkan aksi dan dunia 3D bangunkan grafik berinteraktif menyokong kedua- dua pengguna tunggal atau berbilang terbitkan grafik melalui internet 1 2 Kegunaan VRML Pembangunan VRML HTML < VRML < Bahasa C takrifkan dunia 3D yang boleh dipaparkan di mana-mana melalui Internet World Wide Web (pelayan WWW) antaramuka grafik Internet Pencipta daripda Silicon Graphics (Open Inventor) mudah digunakan, pandangan berstruktur, deskripsi objek satu imej hanya satu pandangan tidak boleh diubah model 3D menyokong banyak pandangan boleh diubah 3 4 Pembangunan VRML Pembangunan VRML VRML berdasarkan format Open Inventor bahasa deskripsi pandangan untuk Web VRML 1.0 Oktober 1994 VRML 2.0 August 1996 (Moving Worlds oleh Sil. Graphics HoloWeb oleh Sun Microsystems ActiveVRML oleh Microsoft Out of This World oleh Apple) 5 VRML 1.0 untuk hasilkan dunia 3D yang statik dan pautan VRML 2.0 pergerakan objek objek bertindakbalas terhadap peristiwa (event) gunakan objek multimedia (bunyi dan video) 6
Fitur-fitur VRML 2.0 Objektif utama VRML 2.0 untuk berikan pengguna pengalaman yang lebih kaya, menarik dan interaktif berbanding dengan VRML 1.0 untuk berikan asas yang kukuh untuk perkembangan VRML di masa hadapan, mudah, pantas kepada semua (pembanguna browser, pereka bentuk dunia maya, dan pengguna akhir) Fitur-fitur VRML 2.0 Pertingkatkan dunia statik Interaktif Animasi Penskriptan Pemprototaipan Pertingkatkan dunia statik (warna tanah/langit, fog, bunyi, ) 7 8 Fitur-fitur VRML 2.0 Interaktif (pengesan, penentuan perlanggaran,.) Animasi (interpolators, ) Penskriptan penskriptan mengambil input daripada pengesan dan janakan peristiwa berdasarkan input yang boleh mengubah nod-nod lain Fitur-fitur VRML Pemprototaipan prototaip - satu jenis kejadian nod baru, antaramuka berparameter 9 10 Perubahan daripada VRML 1.0 Perubahan daripada VRML 1.0 Jenis nod baru nod Group (collision, transform) maklumat browser (Background, NavigationInfo, Viewpoint, WorldInfo) Lights & Lighting (fog) Sound Shapes (nod geometry + nod property) Appearance Sensors Nod khusus (special nodes) 11 Jenis nod yang disingkir AsciiText ---> WorldInfo Info ---> WorldInfo Separator ---> Transform transformation nodes ---> Transform 12
VRML perlu kepada editor teks ---- >xxx.wrl browser ---- > SGI Cosmo Player Membina sebuah dunia fail VRML merupakan koleksi objek- objek objek objek fizikal (geometry, color, material, 3D position) sounds lights viewpoints 13 14 Membina sebuah dunia geometry node shape node appearance node Nod Objek adalah Nod (satu nod boleh mempunyai lain-lain nod) Medan (fields) (setiap satu nod mempunyai medan) Menghasilkan silinder berwarna ungu #VRML V2.0 utf8 Shape { appearance Appearance material Material { geometry Cylinder { 1.0 2.0 15 16 Struktur fail VRML Struktur fail VRML Shape { merupakan nod container asas untuk objek geometry ia merangkumi nod appearance bagi geometry Geometry{ Sphere, Cylinder, Box, Cone IndexedFaceSet geometry Sphere{ geometry Cone { medan (fields) 17 material Material { tanpa nod ini, objek tidak kelihatan (black) nod Material yang kosong, objek yang terpapar berwarna light grey (default colour) 18
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { geometry Cylinder { radius 3.0 radius 6.0 side True top False bottom True Kes nama nod: Cylinder nama medan: radius medan (fields) 19 material { material Material { diffusecolor.5 0.5 shininess.5 appearance { texture{ colour Red Green Blue black 0 0 0 white 1 1 1 purple.5 0.5 red 1 0 0 green 0 1 1 blue 0 0 1 (colour, smoothness, shiny) properti bagi permukaan shininess (0 ----- 1) soft reflection sharp highlight 20 material Material { diffusecolor x x x shininess x ambientintensity x?transparency? Shape{ Diagram Scene Terbahagi pada 2 kategori: nod pengumpulan (grouping nodes) nod bukan pengumpulan (non-grouping nodes) Appearance{ medan bagi nod Shape Material{ medan bagi nod Appearance.. fields 21 22 Grouping nodes Grouping Node Group, Transform, LOD, Switch, Anchor, Inline, Collision Grouping nodes digunakan untuk gabungkan objek dalam kumpulan Mereka boleh mempunyai anak (children) Tidak semua nod boleh menjadi anak kepada grouping node #VRML V2.0 utf8 Transform { - # sebarang medan transform Shape{ ------- # nod Shape ------- 23 24
Grouping Nodes Komen Transform Shape Appearance Cylinder Material Group { # an empty group Komen boleh berada di mana- mana baris Ia tidak diendahkan mulai tanda # hingga ke akhir baris 25 26 Nod Inline Kejadian (Instances) digunakan untuk masukkan model VRML lain ke dalam scene sama seperti pautan (link) Inline{ url xxxxx.wrl Inline{url xxxxx.wrl prestasi akan menurun untuk mengambil data daripada server dan dimasukkan ke dalam scene. untuk model kecil, tampalkan data terus ke dalam scene 27 benarkan penggunaan semula nod yang sama beberapa kali dalam scene kejadian dihasilkan melalui nama bila definisikan nod dengan satu nama, boleh gunakan semula nama tersebut pada mana- mana tempat yang kita hendak gunakan nod tersebut kelebihan kejadian fail lebih ringkas dan mudah dibaca singkatkan masa download tingkatkan prestasi 28 Kejadian (Instances) jika properti asal nod yang dinamakan itu diubah, semua kejadian nod tersebut juga berubah untuk mengubah appearance, boleh tentukan geometry dengan nama kemudian gunakannya dengan material dan tekstur yang berbeza 29 Kejadian (Instances) DEF BothBraziers Transform { DEF Brazier Group { children url TMBrazierTlaloc.wrl bboxcenter 799.5 127.01-1187.5 bboxsize 124 5 5 Transform { children USE Brazier translation 54.5 0 0 translation 0-1.43 0 TH3813 03 VRML 1 30
Nod Anchor bolehkan hiperlink pada scene yang lain, laman HTML, bunyi, dan fail movie terdapat dalam rangkaian 31 Nod Anchor DEF Title Anchor { url Tenochitlan.html description The Aztec City url TitleText.wrl bboxsize 5.8 0.75 0 bboxcenter 0.37 0 url ialah fail yang dipauti description ialah prompt apabila tetikus menunjuk kepada objek anak children ialah objek untuk activate hiperlink bila pengguna klik 32 Nod Anchor url TitleText.wrl bboxsize 5.8 0.75 0 bboxcenter 0.37 0 url brazier.wrl bboxcenter 0 0 0 bboxsize 3.14 3.13 3.12 33 Kumpulan Transform Objek boleh dikumpulkan pada kumpulan Transform yang sama Transform Transform Inline Inline scope 1 scope 1 & scope 2 34 Kumpulan Transform Transform {, Transform { - TH3813 03 VRML 1 Scope - nod transform yang melibatkan ke semua nod di dalamnya - nod transform dikatakan tersarang jika ia di masukkan dalam nod transform yang lain 35 Kumpulan Transform Susunan transform adalah penting Satu nod gunakan nod Transformnya sendiri, kemudian nod Transform bapanya, dan seterusnya Nod transform pada paras yang sama tidak memberikan kesan sesama sendiri 36
Kumpulan Transform Pandangan scene T T T1 T T2 T1 T2 N1 N2 N1 N2 Viewpoint tentukan posisi mata dan arah pandangan pada scene yang sama viewpoint yang default ialah (0 0 10) z y x 37 38 Pandangan scene field of view tentukan berapa jumlah scene yang dipaparkan (zoom, wide angle) ditentukan melalui nilai radian 1 radian = 57 darjah? radian = 180 darjah? radian = 360 darjah Viewpoint berbilang boleh tentukan dahulu viewpoint berbilang dalam kedudukan, arah dan field of view yang berbeza, kemudian gunakan dengan nama pertukaran daripada satu viewpoint ke satu viewpoint yang lain dianimasikan melalui scene oleh browser. 39 40 Viewpoint berbilang menggunakan viewpoint dalam pautan Anchor LOD (level of detail) digunakan untuk kurangkan kekompleksan objek dengan jarak (distance) Anchor { url chacmool #TheGate viewpoint TheGate ---- digunakan untuk melihat pautan nod chacmool.wrl 41 42
LOD (level of detail) children LOD { center xx xx xx range [60, 200 levels [ Transform { # first level, Transform { # second level, Group { # last level - - center(x, y, z) ialah pusat bagi objek - digunakan untuk mengira jarak antara pusat objek dan viewpoint range[60,200 jika d < 60 lukis paras pertama jika 60<d<200 lukis paras kedua jika d > 200 lukis paras terakhir 43 Interaksi pengguna pengesan (sensors), peristiwa (events), jalan (routes) sensors ialah nod yang bertindak terhadap interaksi pengguna Touchsensor - kesan klik ProximitySensor - kesan jarak PlaneSensor - kesan tidakan drag TimeSensor - kesan detikan masa 44 Interaksi pengguna terdapat 2 peristiwa (event) yang boleh dipanggil dalam setiap sensor - eventin dan eventout Interaksi pengguna tukarkan nilai medan eventin TouchSensor hantar keluar nilai medan eventout TouchSensor eventout route PointLight eventin buka lampu route ialah hubungan antara dua nod 45 46