MODUL 11 WEB3D: MEMBUAT OBYEK SEDERHANA RINGKASAN Web dengan tampilan konvensional tidak akan memberikan rasa/pengalaman bernavigasi atau menjelajah dunia maya seperti yang seharusnya. Web konvensional dua dimensi (2D) hanya akan memberikan rasa berpindah dokumen atau membuka-buka tumpukan buku/tumpukan kertas yang meskipun terkadang terlihat “bergerak”, tetapi apa yang nampak tidak lebih dari suatu lembaran. Dengan Web3D maka dunia maya (virtual world) atau cyberspace yang sebenarnya akan dapat diperoleh. Dunia maya dapat dibentuk dari rangkaian obyek sederhana yang digabungkan untuk membangun dunia yang lebih kompleks. Dalam Web3D, beberapa obyek sederhana dapat langsung dibuat dengan perintah sederhana untuk membuat deskripsinya secara cepat di browser. LATIHAN Silakan Anda mencoba bentuk-bentuk obyek 3D sederhana yang dapat ditampilkan di browser. Contoh-contoh di bawah ini dapat dibuat dalam editor teks (misalnya notepad), kemudian simpan masing-masing latihan sebagai file dengan ekstensi .wrl (misalnya “latihan1.wrl”). Sebelum memulai sesi ini, pastikan anda telah memasang plug-in VRML pada browser yang akan anda pakai. Plug-in yang direkomendasikan adalah Cortona, produk dari ParallelGraphics. Untuk kompatibilitas yang lebih baik dengan VRML, disarankan menggunakan browser MS Internet Explorer. 1. Latihan 1 #VRML V2.0 utf8 Group { children [ Shape { appearance Appearance { material Material { } } geometry Cone { } } DEF TS TouchSensor { } # sensor pointer hover DEF DL DirectionalLight { # sorot warna merah color 1 0 0 on FALSE } ] ROUTE TS.isOver TO DL.set_on } 2. Latihan 2 #VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor 1 0 0 # R G B (diberi warna merah) } } geometry Box { } # membuat kotak } 3. Latihan 3 #VRML V2.0 utf8 # menampilkan teks secara 3D Shape { appearance Appearance { material Material { }
} geometry Text { fontStyle FontStyle { style "BOLD" size 4 } string ["HELLO", "WORLD!"] } } 4. Latihan 4 #VRML V2.0 utf8 Shape { appearance Appearance { material Material { } } geometry Sphere { } } 5. Latihan 5 #VRML V2.0 utf8 # Obyek bola dan silinder digeser dengan perintah node Transform. # Obyek kerucut tetap di tempat (0,0,0). WorldInfo { info [ "Latihan mengeser obyek", "dari posisi awalnya" ] title "Bentuk sederhana" } Shape { appearance Appearance { material Material { } } geometry Cone { } } Transform { translation -3 0 0 # x y z (geser ke bawah sumbu X) children [ Shape { appearance Appearance { material Material { } } geometry Sphere { } } ] } Transform { translation 3 0 0 # x y z (geser ke atas sumbu X) children [ Shape { appearance Appearance { material Material { } } geometry Cylinder { } } ] } 6. Latihan 6 #VRML V2.0 utf8 Anchor { url "http://web3d.uad.ac.id/"
description "UAD’s Web3D site" children [ Shape { appearance Appearance { material Material { } } geometry Cone { } } ] } Transform { translation -3 0 0 # x y z (geser ke bawah sumbu X) children [ Shape { appearance Appearance { material Material { } } geometry Sphere { } } ] } Transform { translation 3 0 0 # x y z (geser ke atas sumbu X) children [ Shape { appearance Appearance { material Material { } } geometry Cylinder { } } ] } 7. Latihan 7 #VRML V2.0 utf8 Transform { translation 0 2 0 # x y z scale 2 2 2 # x y z children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 0 # R G B (beri warna hijau) } } geometry Cone { } } ] } Transform { translation 0 -1.5 0 # x y z scale .25 1.5 .25 # x y z children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 # R G B (beri warna putih) } } geometry Cylinder { } } ] }
8. Latihan 8 #VRML V2.0 utf8 Transform { translation 0 2 0 # x y z scale 2 2 2 # x y z rotation 0 0 1 .785 # x y z, sudut children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 0 # R G B (beri warna hijau) } } geometry Cone { } } ] } Transform { translation 0 -1.5 0 # x y z scale .25 1.5 .25 # x y z rotation 0 0 1 .785 # x y z, sudut children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 # R G B (beri warna putih) } } geometry Cylinder { } } ] } 9. Latihan 9 #VRML V2.0 utf8 Background { skyColor 1 1 1 # R G B (latar belakang warna putih) } Group { children [ # pertama, buat kerucut untuk ujung pohon # beri warna hijau gelap: Transform { translation 0 2 0 # x y z scale 2 2 2 # x y z children [ Shape { appearance Appearance { material Material { diffuseColor 0 .25 0 # (hijau gelap) } } geometry Cone { } } ] } # selanjutnya buat silinder untuk batang pohon # beri warna coklat: Transform { translation 0 -1.5 0 # x y z scale .25 1.5 .25 # x y z children [
Shape { appearance Appearance { material Material { diffuseColor .3 .15 .05 # R G B (warna coklat) } } geometry Cylinder { } } ] } ] } 10. Latihan 10 #VRML V2.0 utf8 DEF SphereColumn Group { children [ DEF OneSphere Shape { appearance Appearance { material Material {} } geometry Sphere {radius .75} } Transform { translation 0 6 0 children USE OneSphere } Transform { translation 0 4 0 children USE OneSphere } Transform { translation 0 2 0 children USE OneSphere } Transform { translation 0 -2 0 children USE OneSphere } Transform { translation 0 -4 0 children USE OneSphere } Transform { translation 0 -6 0 children USE OneSphere } ] } Transform { translation -6 0 0 children USE SphereColumn } Transform { translation -4 0 0 children USE SphereColumn } Transform { translation -2 0 0 children USE SphereColumn } Transform { translation 2 0 0 children USE SphereColumn } Transform { translation 4 0 0 children USE SphereColumn } Transform { translation 4 0 0 children USE SphereColumn } Transform { translation 6 0 0 children USE SphereColumn } 11. Latihan 11 #VRML V2.0 utf8 Background { skyColor 1 1 1 } NavigationInfo { headlight TRUE } Shape { appearance Appearance { material Material {} } geometry Sphere {} } Transform { translation -4.5 1.5 0 # pindahkan rotation 0 1 0 1.571 # diputar arahnya scale 1.5 1.5 1.5 # dibuat lebih besar children [ Inline { url "latihan.wrl" # ganti saja filenya dengan salah satu file latihan bboxSize 6 3 3 bboxCenter -2.25 .75 0 }
] } 12. Latihan 12 #VRML V2.0 utf8 Transform { rotation 0 0 1 .785 # x y z, sudut children [ # buat sebuah kerucut yang akan menjadi child dari root Transform, # berikan juga perintah Transform ke dalam kerucut ini # sehingga dapat dikendalikan secara independen dari child lain: Transform { translation 0 2 0 # x y z scale 2 2 2 # x y z children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 0 # R G B (warna hijau) } } geometry Cone { } } ] } # kemudian buat silinder sebagai child dari root Transform # dan juga letakkan silinder dalam Transform –nya sendiri sehingga # dapat dikendalikan secara independen dari child lain: Transform { translation 0 -1.5 0 # x y z scale .25 1.5 .25 # x y z children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 # R G B (warna putih) } } geometry Cylinder { } } ] } ] }