Senin, 28 Desember 2015

VRML UNTUK REPRESENTASI TANSFORMASI 3D

DASAR VRML

VRML adalah singkatan dari Virtual Reality Modeling Language suatu bahasa pemrograman yang digunakan untuk menampilkan objek 3D yang dapat dibaca oleh browser internet.  VRML dipublikasikan pada Mei 1995 dan kemudian dilakukan standarisasi pada VRML97. Agar browser dapat menjalankan file VRML maka perlu terlebih dahulu di pasang plugin yang diantaranya adalah  Blaxxun Contact, BlenderWeb Plugin, Cosmo Player, Viscape, dll. VRML ditulis dalam bentuk teks dengan format utf8, dengan struktur file yang sudah ditetapkan. File VRML di beri extention wrl serta case sensitive atau membedakan huruf besar dan kecil.

Struktur File VRML97
File VRML diawali dengan header pada baris pertama dengan tanda  # dan diikuti “VRML V2.0 utf8” ini menunjukan file tersebut dapat di tampilkan dengan format VRML versi 2 dan format file utf8. Tanda # pada baris kedua dan seterusnya merukan komentar dan tidak diproses. Berikut contoh sederhana dari file VRML.
#VRML V2.0 utf8
# Komentar isi file
             Node

Node
Node adalah objek yang ada pada VRML, node memiliki field yang merupakan properti atau keterangan dari node tersebut,. Field dapat berupa node yang lain, sehingga memungkinkan node memiliki field yang berupa node juga. Berikut contoh dari membuat gambar kotak menggunakan VRML
Shape
Shape adalah node dasar yang digunakan untuk membuat sebuah objek sederhana. Pada contah diatas dapat diterangkan sebagai berikut yaitu Node Shape  yang memiliki field appearance dan geometry.  Sedangkan field appearance di isi dengan Node Apperance yang juga memiliki fields material dan diisi  Node Material.
appearance
Field appearance pada node Shape digunakan untuk memberi warna tektur dan transparansi serta sifat-sifat yang lain.
geometry
Field geometry digunakan untuk membetuk objek dasar yang dimilikik oleh VRML.

Berikut contoh membuat bentuk kerucut yang berwarna Biru muda
#VRML V2.0 utf8
Shape {
  appearance Appearance {
             material  Material {
                    diffuseColor 0 1 1   # biru muda
                    emissiveColor 0.3 0.3 0.3
             }
  }
  geometry  Cone {}     # kerucut pada posisi default
}

Hasil yang ditampilkan:


TANSFORMASI

Untuk merepresentasikan transformasi VRML menggunakan node Transform. Node tersebut memiliki field translation, rotation, scale dan children dengan format sebagai berikut:
Transform {  
      translation  x y z
      scale x y z
      rotation    x y z sudut
      children nodeShape
}


Nilai x y z adalah integer yang digunakan ukuran dari transformasi, pada translation adalah ukuran dari arah pergeseran, pada scale x y z merupakan sekala yang dapat berupa angka pecahan. Pada rotation merupakan sumbu putaran, pada node ini ada nilai sudut yang digunakan untuk menentukan besar putaran dalam radian.  Sedangkan node children digunakan untuk membuat objek yang dilakukan proses transformasi.

ROTASI

Berikut contoh objek silinder  yang dilakukan transformasi  rotasi sebesar 90 derajad terhadap sumbu Z  
#VRML V2.0 utf8
    
Transform {
    rotation    0 0 1 1.57
    children [
     Shape {
       appearance Appearance {
       material Material { diffuseColor 0 1 1 }
     }
     geometry  Cylinder {
           radius        1
           height        4 }
    }
 ]
}

Hasil yang ditampilkan:



SKALA

Berikut contoh objek kotak dengan ukuran X=1 Y=1 Z=1  berwarna merah dan dirubah skala terhadap sumbu   z menjadi 10% lebih kecil
#VRML V2.0 utf8
    
Transform {
    scale    1 0.1 0.1
    children [
     Shape {
       appearance Appearance {
       material Material { diffuseColor 1 0 0 }
     }
     geometry  Box {size 1 1 1 }
    }
    ]
}


Hasil yang ditampilkan:





TRANSLASI

Berikut contoh objek bola  berwarna hijau  dan dilakukan pergeseran terhadap sumbu x positif 5 dan y positif 2, pada hasil capture berikut tidak terlihat pergeserannya karena dipotong pada gambarnya saja:
#VRML V2.0 utf8
    
Transform {
    translation 5 2 0
    children [
     Shape {
       appearance Appearance {
       material Material { diffuseColor 0 1 0 }
     }
     geometry  Sphere{}
    }
    ]
}


Hasil yang ditampilkan:

Tidak ada komentar:

Posting Komentar