haii...kawand blog ku sekalian.. sekarang saya akan membahas tutorial VRML(Virtual Reality Modeling Language)...sebelum membahas secara detail VRML..apa sich Vrml itu...?? dan apa keguanaannya??
Realitas Virtual Modeling Language adalah sebuah program berbasis teks yang digunakan untuk membuat dan menampilkan gambar tiga dimensi di Internet tanpa harus membeli program perangkat lunak yang mahal seperti Macromedia Flash.
Polygons digunakan secara umum untuk mengatur segi objek didefinisikan berdasarkan dua struktur: sisi meja dan meja simpul.
Tabel simpul dimasukkan koordinat X, Y dan Z untuk setiap titik, setiap koordinat dipisahkan dengan spasi dan setiap titik dengan koma. Sebagai contoh: :
Tabel wajah didefinisikan bagaimana simpul dihubungkan untuk membentuk wajah(poligon). Dalam tabel ini, setiap vertex ditentukan oleh nomor sesuai dengan posisi mereka (indeks) pada tabel simpul. Puncak pertama dari tabel selalu memilikiindeks 0 (nol).
Berikut didefinisikan simpul dan wajah yang diperlukan untuk membuat piramida persegi, dengan puncak di (0,10,0).
Figura 5 - Exemplo de uma PirĂąmide de uma cor em VRML 2
Gambar - Contoh INCLUDE VRML
Posisi lampu dalam lingkungan VRML
Menulis teks dalam VRML
Realitas Virtual Modeling Language adalah sebuah program berbasis teks yang digunakan untuk membuat dan menampilkan gambar tiga dimensi di Internet tanpa harus membeli program perangkat lunak yang mahal seperti Macromedia Flash.
Header dari file VRML
#VRML V2.0 utf8
# ----------------------------------------------------------------
# Baris pertama di atas adalah wajib dalam setiap file VRML # 2
# Di baris lainnya, dimana untuk mencari # berarti komentar.
# ----------------------------------------------------------------
#
Semua file harus memiliki ekstensi WRL VRML.
Mendefinisikan Objek
Objek tiga dimensi di VRML 2 disebut SHAPES.
#VRML V2.0 utf8 # -------------------------------------------------------- # Gambar paralel pipedium Kuning # -------------------------------------------------------- Shape { # define blok objek (Shape) } # end do shape |
Untuk SHAPE telah, pada umumnya dua atribut, penampilan dan geometri.
Penampilan set warna objek, antara atribut lain.
Penampilan set warna objek, antara atribut lain.
Objek Geometri mendefinisikan apa yang harus ditampilkan.
Mendefinisikan Cubes
Untuk menentukan sebuah kubus (sebenarnya parallelepiped) menggunakan ungkapan BOX. O pola pusat sebuah BOX (0,0,0).
Gambar 1 muncul contoh dari program yang berisi BOX VRML.
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Draw a yellow parallelepiped # ------------------------------------------------- ------- Shape {# define a block of a OBJETIVE (Shape) appearance Appearance {# define the appearance of Shape material Material { diffuseColor 1.0 1.0 0.0 b g # r } } geometry Box {# define the geometry of the Shape size 2.5 2.5 5.0 # larg, height, prof } } # End shape |
Gambar 7.1 - Contoh BOX VRML 2
Mendefinisikan Bola
Untuk mendefinisikan sebuah bola, jari-jari harus ditentukan. Ekspresi adalah:Sphere radius r1 {}. Jika jari-jari dihilangkan browser akan menganggap nilai 1.Pusat default bola adalah (0,0,0).
Dalam Gambar 2 akan muncul contoh dari sebuah program yang berisi bola di VRML.
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Draw a sphere # ------------------------------------------------- ------- Shape {# define a block of a OBJETIVE (Shape) appearance Appearance {# define the appearance of Shape material Material { diffuseColor 1.0 0.5 0.3 b g # r } } geometry Sphere { radius 4.0 } } # end shape |
Gambar 2 - Contoh dari sebuah kawasan di VRML 2Definindo
Silinder
VRML 2 dalam silinder yang dibuat dengan menjalankan Silinder:
geometry Cylinder { radius 2.0 # radius 1.0 # height height TRUE # side is the side? TRUE # top is the top? TRUE # bottom is the bottom? } |
Gambar 3 - Contoh silinder di VRML 2
Mendefinisikan Kerucut
Sebuah kerucut di VRML 2 didefinisikan oleh perintah Cone:
geometry Cone { bottomRadius 1.0 # raio da base height 5.0 # altura side TRUE # tem a lateral ? bottom TRUE # tem a base ? } |
Gambar 4 - Contoh kerucut di VRML 2
Mendefinisikan Poligon
Untuk membuat poligon (wajah objek) di VRML 2, ada geometri disebut IndexedFaceSet.
Polygons digunakan secara umum untuk mengatur segi objek didefinisikan berdasarkan dua struktur: sisi meja dan meja simpul.
Tabel simpul dimasukkan koordinat X, Y dan Z untuk setiap titik, setiap koordinat dipisahkan dengan spasi dan setiap titik dengan koma. Sebagai contoh: :
coord Coordinate { point [ # lista de Vértices 0 10 0, # vértice 0 -5 0 5, # vértice 1 5 0 5, # vértice 2 5 0 -5, # vértice 3 -5 0 -5, # vértice 4 ] |
Tabel wajah didefinisikan bagaimana simpul dihubungkan untuk membentuk wajah(poligon). Dalam tabel ini, setiap vertex ditentukan oleh nomor sesuai dengan posisi mereka (indeks) pada tabel simpul. Puncak pertama dari tabel selalu memilikiindeks 0 (nol).
Pemisahan masingmasing vertex dilakukan dengan koma danDeskripsi akhir entri dari wajah masing-masing ditetapkan sebagai "-1". Sebagai contoh:
coordIndex [ # lista de Faces 4, 3, 2, 1 -1, # Base (terbentuk oleh simpul 4, 3,2 e 1) 0, 1, 2, -1, # Frontal 0, 2, 3, -1, # Direita 0, 3, 4, -1, # Traseira 0, 4, 1, -1 # Esquerda ] |
Untuk menghilangkan wajah dilakukan dengan benar, semua pihak harus didefinisikan pada titik-titik sudutnya berorientasi searah jarum jam.
Berikut didefinisikan simpul dan wajah yang diperlukan untuk membuat piramida persegi, dengan puncak di (0,10,0).
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Draw an object formed by faces (a pyramid) # ------------------------------------------------- ------- Shape { appearance Appearance { material Material { diffuseColor 0.7 0.5 0.0 # BROWN } } geometry IndexedFaceSet { coord Coordinate { point [# Vertex list 0 10 0, # vertex 0 -5 0 5, # vertex 1 5 0 5, # vertex 2 0 5 -5, # vertex 3 -5 0 -5, # vertex 4 ] } coordIndex [# list of Faces 4, 3, 2, 1 -1, # Base 0, 1, 2, -1, # Front 0, 2, 3, -1, # RIGHT 0, 3, 4, -1, Rear # 0, 4, 1, -1 # Left ] } } |
Figura 5 - Exemplo de uma PirĂąmide de uma cor em VRML 2
Selain mendefinisikan geometri objek di wajah mereka, Anda dapat mengatur warnaindividual untuk wajah. Untuk ini menggunakan kontrol Color Index dan Warna. Berikutcontoh penggunaan perintah ini
.
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Draw an object formed by faces (a pyramid) # ------------------------------------------------- ------- Shape { appearance Appearance { material Material {} } geometry IndexedFaceSet { coord Coordinate { point [ 0 10 0, # vertex 0 -5 0 5, # vertex 1 5 0 5, # vertex 2 0 5 -5, # vertex 3 -5 0 -5, # vertex 4 ] } coordIndex [ 4, 3, 2, 1 -1, # Base 0, 1, 2, -1, # Front 0, 2, 3, -1, # RIGHT 0, 3, 4, -1, Rear # 0, 4, 1, -1 # Left ] color Color { color [ 1.0 0.0 0.0 # 0 Color: Red 0.0 1.0 0.0, # 1 Color: Green 0.0 0.0 1.0 # 2 Colour: Blue 1.0 1.0 0.0 # 3 Color: Yellow 1.0 0.0 1.0 # 4 Color: Purple 0.7 0.5 0.0 # 5 Color: Brown ] } colorPerVertex FALSE ColorIndex [# sets the color of each face 4, 5, 1, 2, 3, -1 ] } } |
Gambar - Contoh warna-warni piramida di VRML
Warna
Untuk mendefinisikan warna, VRML memiliki komando dan kontrol diffuseColorBahan. Memang Bahan mendefinisikan sekelompok sifat visual yang warnanya satu.Spesifikasi warna dilakukan dengan mendefinisikan komponen R, G dan B, yangdapat bervariasi dalam rentang [0 .. 1].
Sifat bahan lain dari perintah ini adalah:
- Warna specular berspekulasi bahwa menyetel warna objek. Warna ini muncul bilasatu sisi "depan" untuk sumber cahaya.
· Transparansi yang mendefinisikan tingkat transparansi objek. Operasi atau tidaktergantung pada atribut plug-in yang digunakan.
- shininess, yang mendefinisikan tingkat kecerahan (0 = buram, 1 = terang)
Pada contoh berikut ini dapat diamati dengan menggunakan specularColor dandiffuseColor bersama-sama..
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Desain warna parallelepiped dengan specular # ------------------------------------------------- ------- Shape {# define satu blok dari sebuah objek (Shape) penampilan Penampilan {# define tampilan Shape Bahan materi { diffuseColor 0.3 1.0 0.0 b g # r } # Akhir material ImageTexture tekstur { [url "image1.jpg"] } # Akhir Tekstur } # Tampilan Akhir Kotak geometri { 500,0 500,0 200,0 # ukuran larg, tinggi, prof } } # bentuk End |
The sguir presenter adalah tabel dengan contoh-contoh dari beberapa gaya bahan(dari buku "The VRML 2.0 Sourcebook" oleh Andrea L. Ames, David R. Nadeau, danJohn L. Moreland. 1997).
Textures
Untuk menerapkan tekstur (image) pada objek, cukup tempatkan perintah dalamblok Tekstur Penampilan. Sintaks dari perintah ini ditampilkan di bawah, di mana angka dipetakan pada sebuah kubus..
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Desain warna parallelepiped dengan specular # ------------------------------------------------- ------- Shape {# define satu blok dari sebuah objek (Shape) penampilan Penampilan {# define tampilan Shape Bahan materi { diffuseColor 0.3 1.0 0.0 b g # r } # Akhir material ImageTexture tekstur { [url "image1.jpg"] } # Akhir Tekstur } # Tampilan Akhir Kotak geometri { 500,0 500,0 200,0 # ukuran larg, tinggi, prof } } # bentuk End |
Menempatkan lebih dari satu objek dalam sebuah file VRML 2
Untuk memasukkan lebih dari satu objek dalam sebuah file VRML hanyamenempatkan blok satu setelah Shape lainnya. Pada contoh berikut ini ada Box dansebuah kerucut di sama.
# VRML V2.0 utf8 # ------------------------------------------------- ------- # File in VRML 2 with a Box and a Cone # ------------------------------------------------- ------- Shape {# BOX appearance Appearance {# define the appearance of Shape material Material { diffuseColor 0.3 1.0 0.0 b g # r specularColor 0.5 0.0 0.0 b g # r Transparency 0.5 # between 0 and 1 shininess 0.0 # between 0 and 1 } } geometry Box { size 2.5 2.5 5.0 # larg, height, prof } } # end of BOX Shape {# CONE appearance Appearance { material Material {diffuseColor 1 0.5 0} # orange } geometry Cone { bottomRadius 1.0 height 5.0 side TRUE TRUE bottom } } # End Cone |
Geometric Transformations of Objects
Sejauh ini hanya hadir objek dalam posisi aslinya.
Dalam VRML, untuk mengubah posisi atau orientasi obyek berlaku transformasigeometris.
Transformasi geometrik didefinisikan dengan mengubah perintah di mana Andadapat menentukan rotasi, posisi dan skala untuk diterapkan dan apa yang"objek-anak" untuk transformasi.
Dalam VRML, untuk mengubah posisi atau orientasi obyek berlaku transformasigeometris.
Transformasi geometrik didefinisikan dengan mengubah perintah di mana Andadapat menentukan rotasi, posisi dan skala untuk diterapkan dan apa yang"objek-anak" untuk transformasi.
Di bawah ini kita dapat melihat model pemrosesan perintah.
Transform { # Command processing ............... children [# "children" Transformation # Here are the Shapes that will undergo the transformations # Set up # Among the Shapes, put a comma ] } # End Transform |
- Transformasi perintah adalah:
• tx ty tz terjemahan: untuk mengubah posisi;
• skala ey ez ex: untuk mengubah ukuran objek.
• rotasi 1 0 0 0.7: untuk mengubah orientasi. Dimana tiga angka pertamamenentukan sumbu rotasi dan sudut rotasi terakhir (dalam radian);
Konversi tabel derajat ke radian
3.1415 = 180 graus
1.5707 = 90 graus
0.7853 = 45 graus
0.5235 = 30 graus
1.5707 = 90 graus
0.7853 = 45 graus
0.5235 = 30 graus
Penting untuk diingat bahwa transformasi geometrik, serta sifat visual, efektif hanyadalam blok Transform {... } yang didefinisikan. Selain itu, lembah ini transformasi dariposisi di mana mereka muncul.
Perubahan VRML selalu diterapkan dalam urutan sebagai berikut: Rotasi, Skala danTerjemahan. Hal ini terjadi meskipun sumber dari perubahan ini muncul dalam urutan yang berbeda.
Pada contoh berikutini kita dapat mengamati penerapan transformasi geometris dalam 2 kubus
# VRML V2.0 utf8 # ------------------------------------------------- ------------ # Draw two cubes with geometric transformations # -------- ----------------------------------------- ------------ Transform { translation 0 0 0 rotation 0 0 1 0.7853 # axis and angle (in radians) (1.57 = 90 degrees) scale 1 1 2 children [# The changes may have one or more "children" Shape {# These "children" or other changes are Shapes appearance Appearance { material Material {diffuseColor 1.0 0.0 0.0} } geometry Box {size 5 5 5} } ] } Transform { translation 10 0 0 scale 1 1 1 rotation 0 1 0 # 0.7 and axis angle (in radians) children [# The changes may have one or more "children" Shape {# These "children" or other changes are Shapes appearance Appearance { material Material {diffuseColor 0.0 1.0 0.0} } geometry Box {size 5 5 5} } ] } |
Gambar - Transformasi Geometris Cubes
Transformasi Geometri Bersarang
Untuk membuat transformasi geometri untuk diterapkan di atas sudah ada harus meletakkan blok
Transform {} dalam blok Transform anak-anak lain. Perhatikan bahwa dalam VRMLperubahan apa di transformasi geometrik adalah sistem koordinat, serta OpenGL.
Pada contoh berikut ini transformasi terjemahan diterapkan pada rotasi yang lain.Diterapkan pada rotasi 90 derajat pada sumbu X, sumbu Z menunjuk ke bawah. Jadi terjemahan yang diterapkan untuk mengikuti sumbu Z adalah obyek ke bawah.
Untuk membuat transformasi geometri untuk diterapkan di atas sudah ada harus meletakkan blok
Transform {} dalam blok Transform anak-anak lain. Perhatikan bahwa dalam VRMLperubahan apa di transformasi geometrik adalah sistem koordinat, serta OpenGL.
Pada contoh berikut ini transformasi terjemahan diterapkan pada rotasi yang lain.Diterapkan pada rotasi 90 derajat pada sumbu X, sumbu Z menunjuk ke bawah. Jadi terjemahan yang diterapkan untuk mengikuti sumbu Z adalah obyek ke bawah.
# VRML V2.0 utf8 # ------------------------------------------------- ------------ # Draw two cubes with geometric transformations NESTED # ------------------------------------------------- ------------ Transform { scale 1 2 1 rotation 1 0 0 1.57079 # axis and angle (in radians) (1.57 = 90 degrees) children [# 1 >>>>>> CHILDREN Transform { translation 0 0 5 # This will make the object DOWNLOAD!! children [# 2 ****** CHILDREN Shape { appearance Appearance { material Material {diffuseColor 1.0 0.0 0.0} } geometry Box {size 5 5 5} } # End of Shape ] # End ****** 2 CHILDREN } # End Transform ] # End of >>>>>>> CHILDREN 1 } Transform { translation 10 0 0 scale 1 1 1 rotation 0 1 0 # 0.7 and axis angle (in radians) children [# The changes may have one or more "children" Shape {# These "children" or other changes are Shapes appearance Appearance { material Material {diffuseColor 0.0 1.0 0.0} } geometry Box {size 5 5 5} } ] } |
Membuat Link pada objek
Di VRML, objek apapun dapat link ke halaman lain. Anda hanya harus menempatkanblok Anchor.
Anchor dalam blok atau tempat objek dan masih memproses URL yang akanmenjadi tujuan link.
Contoh dalam gambar di bawah ini membuat link ke dua alamat yang berbeda daridua benda yang terpisah.
Anchor dalam blok atau tempat objek dan masih memproses URL yang akanmenjadi tujuan link.
Contoh dalam gambar di bawah ini membuat link ke dua alamat yang berbeda daridua benda yang terpisah.
# VRML V2.0 utf8 # ------------------------------------------------- ------------ # Example of using links # ------------------------------------------------- ------------ Anchor { children [ Transform { translation 0 0 0 children [# The changes may have one or more "children" Shape {# These "children" or other changes are Shapes appearance Appearance { material Material {diffuseColor 1.0 0.0 0.0} } geometry Box {} } ] } # End of Transform ] # end of Children of Anchor url ["Box.wrl"] } # end of Anchor Anchor { children [ Transform { translation 5 0 0 scale 1 1 1 rotation 1 0 0 0.7853 # axis and angle (in radians) children [# The changes may have one or more "children" Shape {# These "children" or other changes are Shapes appearance Appearance { material Material {diffuseColor 0.0 1.0 0.0} } geometry Cylinder {} } ] } # End of Transform ] # end of Children of Anchor url ["Cylinder.wrl"] } # end of Anchor |
Gambar - Contoh Link di VRML
Menempatkan file-file di lain
Untuk menyertakan objek telah didefinisikan dalam file lain (lokal atau jauh)menggunakan perintah diikuti dengan URL file inline. Dalam gambar berikutmenunjukkan contoh penggunaan Inline.
# VRML V2.0 utf8 # ------------------------------------------------- ------------ # Example File Inclusion # ------------------------------------------------- ------------ Transform { translation 0 0 0 rotation 0 0 1 0.7853 # axis and angle (in radians) (1.57 = 90 degrees) scale 1 1 2 children [# The changes may have one or more "children" Inline { url ["Box.wrl"] } ] } Transform { translation 10 0 0 scale 1 2 1 rotation 0 1 0 # 0.7 and axis angle (in radians) children [ Inline { url ["Cylinder.wrl"] } ] } |
Gambar - Contoh INCLUDE VRML
Pengamat 3D Scene
VRML 2 adalahmungkin untuk posisi pengamat di beberapa posisi tertentu ruangmelalui perintah Viewpoint memiliki bidang-bidang berikut:
• posisi XYZ: yang mendefinisikan posisi pengamat;
• xyz ang orientasi: mendefinisikan sumbu dan sudut rotasi pengamat;
• fieldOfView ang: mendefinisikan sudut pandang dalam radian;
• deskripsi "string" yang mendefinisikan nama sudut pandang ini. Nama ini dapatdigunakan untuk navigasi dengan browser.
• posisi XYZ: yang mendefinisikan posisi pengamat;
• xyz ang orientasi: mendefinisikan sumbu dan sudut rotasi pengamat;
• fieldOfView ang: mendefinisikan sudut pandang dalam radian;
• deskripsi "string" yang mendefinisikan nama sudut pandang ini. Nama ini dapatdigunakan untuk navigasi dengan browser.
Berikut adalah dua contoh pandangan.
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Draw a yellow parallelepiped # The Observer was changed to UP objects # There are two defined positions. To scroll between them using # Browser command to navigate among specific # Viewpoints # ------------------------------------------------- ------- Viewpoint { 0 position on March 15 orientation 0 0 1 0 fieldOfView 0.785398 # 90 degrees to radians description "See above" } # end Viewpoint Viewpoint { position 0 -3 15 orientation 0 0 1 0 fieldOfView 0.785398 # 90 degrees to radians description "See below " } # end Viewpoint Shape { appearance Appearance {# define the appearance of Shape material Material { diffuseColor 1.0 1.0 0.0 b g # r } } geometry Box {} } # end shape |
Posisi lampu dalam lingkungan VRML
Untukmenempatkan cahaya dalam adegan VRML menggunakan PointLight perintahyang memungkinkan Anda menetapkan lokasi, warna cahaya dan intensitas cahaya.Dalam file VRML sama bisa beberapa lampu.
Lalu ada contoh penggunaan lampu
Lalu ada contoh penggunaan lampu
# VRML V2.0 utf8 # ------------------------------------------------- ------- # Example use of lighting in VRML 2 # ------------------------------------------------- ------- PointLight { location 0 10 0 1 0 0 # color red intensity 1 } PointLight { location 10 0 0 color 0 1 0 # green light intensity 1 } Shape {# define a block of a OBJETIVE (Shape) appearance Appearance {# define the appearance of Shape material Material { diffuseColor 0.5 0.5 0.0 b g # r } } geometry Box {} } # end shape |
Menulis teks dalam VRML
VRML adalah sebuah teks dalam bentuk, seperti kotak atau kerucut.
Perintah untuk menampilkan teks adalah Teks. Perintah memiliki bidang teks untukmenentukan teks itu sendiri, panjang dan jenis huruf (font). Lihat contoh berikut.
# VRML V2.0 utf8 # Example of using the Text node Shape { appearance Appearance { material Material { diffuseColor 1.0 0.0 0.3 } } geometry Text { string ["This one eh" # multiple lines of text "Example" "text" "VRML 2.0"] length [15, 15, 8, 10] # size of each line fontStyle FontStyle { family "SERIF" # and can also be SERIF TYPEWRITER style "ITALIC" # may also be BOLD spacing 1.0 # space between the lines # 2.0 size font size justify "BEGIN" # END and can also be MIDDLE } # end of fontStyle } # end geometry } Shape { appearance Appearance { material Material { diffuseColor 0.0 1.0 0.0 } } geometry Box {} } |
Tidak ada komentar:
Posting Komentar