Jumat, 05 Maret 2010

Sekilas Tentang VRML

Pengertian VRML97

VRML97 adalah spesifikasi Virtual Reality Modeling Language yang telah diresmikan oleh ISO (international Standard Organization) pada bulan April 1997 sebagai bahasa VRML standar dunia. Spesifikasi ini masih belum mengalami perubahan, meskipun telah dilakukan upaya-upaya penyempurnaan. Menurut informasi terbaru (juli 1999).

Para pakar VRML telah menyempurnakan desain spesifikasi VRML 1.0 dengan memperbaiki node (perintah dasar VRML) lama dan memberikan berbagai node baru untuk menambah kemampuan interaktif. Selain itu, VRML97 memungkinkan user melakukan desain lingkungan virtual 3D lebih realistis disertai dengan animasi 3D.

Pemrograman ini memiliki keunggulan dalam pembuatan dunia maya, yaitu :

1. Lebih Interaktif

Pada VRML97, suatu objek didalam lingkungan virtual dapat leluasa berinteraksi secara langsung tanpa mempengaruhi objek lain.

2. Lebih Reality

Dalam pemrograman ini objek juga dapat disimulasikan dengan lingkungan serealistis mungkin, sehingga suatu lingkungan virtual 3D dapat diciptakan menyerupai aslinya.

3. Lebih Dinamik

VRML97 dikatakan lebih dinamik karena objek yang dibuat dapat bergerak dari satu tempat ke tempat lain ataupun dapat dibuat perubahan warna objek atau sumber cahaya secara otomatis.

Pada penulisan ini objek yang akan dibuat lebih realistis dan interaktif tetapi tidak dinamis, sebab objek ini adalah suatu bentuk bangunan. Dimana lebih diutamakan keaslian seperti objek sesungguhnya.

Hirarki dan Struktur

Dunia VRML terbangun dari stuktur yang terhirarki. File VRML sendiri adalah hirarki yang paling atas yang terdiri dari header, scene-graph, prototype dan event routing. Struktur yang paling bawah adalah node yang terdiri dari filed yang berisi property dan informasi tentang node yang dimilikinya. Secara garis besar, scene-graph merupakan kumpulan dari node yang dibangun. Tetapi node yang berisikan field inipun bisa juga berisi node lainnya, sehingga dapat membentuk struktur cascading. Pada penulisan ini dibuat contoh bentuk sederhana dari pemrograman VRML97 agar bisa dibayangkan bagaimana bentuk strukturnya.

#VRML V2.0 utf8

Group {

children [

Shape {

Appearance Appearance {

material Material {

diffuseColor 1 0 0

}

}

geometry Box {size 2 2 2}

}

]

}

pada contoh tersebut scenegraph digambarkan menjadi sebuah kotak berwarna merah yang berukuran 2 x 2 x 2 (gambar 2.1)

Gb 2.1 Scene terdiri dari kotak berwarna merah dengan latar belakang gelap

keterangan singkat dari source code pada contoh, Group adalah salah satu jenis node yang mempunyai field children . Dalam field children didefinisikan lagi node Shape yang mempunyai field appearance dan geometry . Dalam field geometry didefinisikan node Box yang mempunyai field size, yang merupakan informasi geometri dari objek kotak. Kalau diperhatikan, node selalu diawali dengan huruf besar, sedang field dengan huruf kecil. Sekarang akan dibahas lebih rinci dari struktur yang membentuk file VRML.

Struktur File VRML

A. Header

Header digunakan untuk mengidentifikasi jenis encoding yang dipakai dalam membangun file VRML. Format header ini seperti berikut:

#VRML V2.0 [optional comment]

Pada versi VRML97 dalam praktiknya hanya digunakan tipe encoding utf8, sedang pada versi 1.0 dipakai ascii. Baris header ini harus ditulis pada baris pertama dari file VRML. Baris berikutnya yang berawalan # akan diinterpretasi sebagai komentar. Untuk diingat, VRML ini mengenal perbedaan antara huruf besar dan kecil. Contoh baris header adalah berikut:

#VRML V2.0 utf8 Pembuatan Objek 3D

#Ini adalah baris komentar

B. Sintaks Pernyataan Node

Node dapat dibayangkan sebagai jenis objek dasar untuk membangun sebuah scene. Sedang kumpulan dari scene-scene ini nantinya akan membentuk dunia virtual. Dengan kata lain, node adalah objek dasar yang diperlukan untuk merealisasikan dunia virtual. Contoh tipe dari objek dasar ini adalah bentuk geometri, tampilan permukaan, latar belakang, sensor dan sebagainya. Dalam VRML terdapat lebih dari 50 tipe node standar yang sudah didefinisikan. Untuk mengklasifikasikan node ini, tentu saja bisa bermacam-macam menurut kategori yang diinginkan. Menurut fungsinya, node akan diklasifikasikan yaitu :

  • Grouping. Dengan node tipe ini node-node lainnya dapat dikelompokkan menjadi satu grup. Tetapi tidak semua node dapat digunakan di sini. Untuk penulisan, node termasuk jenis ini yaitu Transform yang sistem koordinatnya akan dijadikan referensi bagi node-node di dalamnya.
  • Geometri dan penampakan. Dengan node ini maka jenis objek dapat dibangun seperti kubus, silinder, bola, kerucut dan sebagainya. Objek geometri ini dapat mempunyai penampakan, seperti warna, jenis materi, textur yang ditentukan dengan bantuan node Shape, Appearance, dan Material.

Pada penulisan ini klasifikasi node yang digunakan hanyalah sebatas pada penjelasan tadi.

C. Struktur Pernyataan Filed

Filed adalah bagian dari node yang memberikan sifat – sifat (properties) objek (node) pada virtual world. Objek yang berbeda sifat satu sama lain dapat dibentuk dengan filed, meskipun penggunaan node yang sama. Pernyataan suatu field terdiri atas nama filed dan diikuti oleh harga (value) filed itu. Ada dua jenis filed pada spesifikasi VRML97, yaitu filed yang memerlukan hanya satu harga Single-valued Field disingkat SF yang ditulis dalam format:

Contoh : diffuseColor 1 0 0

diffuseColor merupakan namaFiled yang fungsinya untuk memberikan warna dan 1 0 0 merupakan nilaiField yang hasilnya adalah berwarna merah. Sedangkan filed yang menerima lebih dari satu Multi-valued Filed disingkat MF dan ditulis dalam format :

[ ]

Contoh : point [ -4 0 -4, -5 0 -5]

Point merupakan namaFiled yang fungsinya untuk menentukan sebuat titik yang memiliki nilaiField lebih dari satu. Pada sintaks MF terdapat kurung siku “[...]” yang mengapit deretan nilai-nilai field. Jika pemberian harga hanya satu pada filed ini maka boleh dihilangkan kurung siku.

Objek Dasar Geometri

Objek dasar geometri terdiri dari node Box, Cone, Cylnder, Sphere dan Text. Node ini dipakai untuk membuat objek kotak, kerucut, silinder, bola dan text. Field yang dimiliki oleh node ini tentu saja tidak sama, karena untuk membuat objek yang berbeda ini bisa digunakan parameter yang berlainan. Setiap node tersebut memiliki satuan nilai yang sama yaitu meter. Pada pemrograman ini satuan pada nilai objek tersebut tidak perlu ditulis, nilai yang diberikan hanya berupa angka. Pada pembahasan ini, Node yang akan dibahas hanya node Box dan Cylinder.

A. Node Box (Kotak)

Suatu objek kotak 3D dapat diciptakan menggunakan node Box. Jika ingin membuat suatu kotak CPU, lemari es, meja, kursi, ruangan, gedung bertingkat sederhana atau lainnya, maka node Box sangat bermanfaat. Node box hanya memiliki satu field yang mempunyai bentuk sebagai berikut :

Box { size 2 2 2 }

Nilai dari variabel size adalah nilai default jika tidak didefinisikan. Seperti terlihat pada Gambar 2.2, posisi titik asal dari sistem koordinat berada di pusat dari box, yaitu (0,0,0) dari sistem koordinat lokal. Sedang elemen pertama dari ukurannya adalah panjang pada sumbu x, elemen kedua panjang pada sumbu y dan elemen ketiga panjang pada sumbu z.


Gb 2.2. Node Box dengan ukuran dan sistem koordinatnya

B. Node Cylinder (Silinder)

Node Cylinder dipakai untuk membuat objek silinder. Sebagai parameter objek, node ini memiliki filed height dan radius yang bertipe data SFFloat dengan nilai default masing – masing 2 dan 1. Selain itu node ini mempunyai 3 field lainnya masing-masing dari tipe SFBool (tipe data boolean), yaitu top, bottom dan side yang mengindikasikan apakah sisi yang disebut dalam field nyata atau tidak. Jika nilai ini FALSE maka pada sisi yang bersangkutan tidak akan dilakukan proses rendering dan sisi ini tidak dapat dipakai dalam proses deteksi kolisi (collision detection). Letak sistem koordinat dan parameter geometri dari objek ini ditampilkan pada Gambar 2.3.


Gb 2.3. Node Cylinder dengan ukuran dan sistem koordinatnya

Struktur dari node ini adalah seperti berikut.

Cylinder { bottom TRUE

height 2

radius 1

side TRUE

top TRUE

}

Nilai pada filed bottom dan top adalah TRUE. Program dijalankan maka objek silinder ini akan memiliki bidang atas dan bidang bawah. Jika nilai diberi FALSE, maka bidang atas dan bawah tidak ada sehingga bentuk silinder yang dihasilkan akan berlubang. Sedangkan side adalah selimut dari objek silider. Jika nilai diisi FALSE maka bentuk objek silinder tidak akan ada. Untuk filed height merupakan suatu tinggi dari silinder dan untuk radius adalah jari – jari pada silinder yang akan berbentuk bulat.

Transformasi Dari Sistem Koordinat

Transformasi adalah suatu perubahan posisi, orientasi, maupun perubahan bentuk objek. Pada pemrograman VRML97 operasi transformasi dapat dilakukan dengan menggunakan node Transform. Pada node Transform memiliki 3 Filed dasar dalam mentranslasikan objek, yaitu :

Filed translation digunakan untuk menggeser benda dari posisi default ke lokasi tertentu. Harga default adalah (0 0 0) atau tidak ada pergeseran. Masing – masing dari harga filed ini adalah suatu sumbu x, y, dan z.

Filed rotation digunakan untuk mengubah orientasi objek terhadap suatu sumbu rotasi tertentu. Harga default pada filed ini adalah (0 0 1 0). Komponen yang berada didalam field rotation ini adalah (x y z sudut). Jadi arti dari harga default pada field ini yaitu objek diputar pada sumbu Z sebesar 0 radian.

Filed scale digunakan untuk mengubah sekala pada objek. Harga default yang diberikan adalah (1 1 1) apabila harga field ini tidak dituliskan pada program. Komponen yang berada didalam filed ini adalah (x y z) dan masing – masing harus diberi harga lebih besar dari 0.


sumber :

Anwar Bachtiar, Bahasa Pemrograman VRML97, Elex Media Komputindo, Jakarta, 1999.


Tidak ada komentar:

Posting Komentar