Monday, 16 December 2019

WEB GLOVE


Image result for logo ubhara

WebGL bersifat hardware accelerated dan spesifikasinya berdasar pada OpenGL ES 2.0. Bagian CPU diproses menggunakan javascript, sedangkan GPU menggunakan GLSL (OpenGL Shading Language). 
Secara garis besar, masing-masing tahap pada pipeline diatas adalah sebagi berikut (beberapa saya sendiri kurang yakin).
  1. API (CPU) merupakan API WebGL
  2. Vertex Buffer Object (CPU) adalah data vertex yang akan dikirim ke GPU
  3. Promitive Processing (CPU) adalah segala proses yang dituliskan melalui javascript
  4. Vertex Shader (GPU) merupakan shader yang memproses setiap vertex
  5. Primitive Assembly (GPU) itu seperti pengelompokan data vertex-vertex untuk dibentuk menjadi titik, garis atau poligon (hanya segitiga)
  6. Rasterizer (GPU) adalah pembentukan pixel
  7. Fragment Shader (GPU) adalah tempat pewarnaan pixel.
  8. Depth Stencil (GPU) merupakan proses depth test dan stencil test.
  9. Colour Buffer Blend (GPU) adalah proses blending warna dari pixel-pixel yang tersisa.
  10. Dither (kurang tau ini apaan)
  11. Frame Buffer (GPU) adalah tempat gambar 2D hasil. Jika Framebuffer tidak ada, maka hasil akan digambar pada canvas
Vertex dan fragment shader adalah bagian yang harus anda definisikan menggunakan GLSL.
Ø  WebGL = Javascript + GLSL
Secara garis besar, Pemograman WebGL dilakukan dengan mengatur data dari CPU ke GPU. Konstruksi data dilakukan di CPU menggunakan bahasa Javascript. Data kemudian dikirim ke GPU dan diproses menggunakan bahasa GLSL pada bagian vertex shader dan fragment shader. Output dari vertex shader adalah posisi titik-titik tiga dimensi dalam clip space dan ukuran pixel untuk setiap titik, sedangkan fragment shader adalah warna untuk setiap pixel.
Ø  Inisiasi
Langkah pertama yang dilakukan untuk membuat aplikasi WebGL adalah mendapatkan konteks WebGL dari canvas element. String context untuk WebGL adalah "webgl", akan tetapi karena implementasi WebGL masih ekperimental pada beberapa browser, maka string context yang umumnya (hampir semuanya) digunakan adalah "experimental-webgl".
Ø  Vertex dan vertex shader
Vertex didefinisikan sebagai titik (point) dalam ruang 3D yang memiliki koordinat x, y, dan z. Akan tetapi dalam WebGL, pengertian vertex lebih dari sekedar titik. Vertex dapat didefinisikan sebagai sebuah objek, berupa titik, yang memiiki attibut/properti. Salah satu attribut adalah posisi, dan dapat memiliki atribut lain seperti warna dan surface normal.
Atribut vertex dalam vertex shader didefinisikan menggunakan keyword attribute. Dalam tutorial ini, vertex hanya memiliki satu atribut yaitu "a_position" yang merupakan posisi vertex dalam ruang 3D.
Ø  Data Vertex
Data vertex dibuat di CPU dan dikirim ke GPU. Untuk mengirim data ke GPU, data perlu "dipaket" dalam vertex buffer. Setting data dalam vertex buffer dilakukan dengan menggunakan ArrayBuffer atau ArrayBufferView. Terdapat 8 jenis ArrayBufferView yaitu Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array. Tutorial kali ini menggunakan 4 vertex dimana koordinat posisi (x, y, z) masing-masing vertex adalah sebagai berikut.
1.      ( 0.5,  0.5, 0)
2.      ( 0.5, -0.5, 0)
3.      (-0.5, -0.5, 0)
4.      (-0.5,  0.5, 0)
ArrayBufferView yang digunakan sebagai data posisi vertex adalah Float32Array, karena data koordinat x, y dan z berupa tipe data float. Data harus diletakkan secara "rata" dalam elemen-elemen ArrayBufferView. 

Ø  Glove

Sebuah sarung kabel (kadang-kadang disebut "dataglove" atau "cyberglove") adalah sebuah perangkat input untuk interaksi manusia-komputer yang dikenakan seperti sarung tangan.Berbagai sensor teknologi yang digunakan untuk menangkap data fisik seperti menekuk dari jari . Seringkali tracker gerak, seperti magnet alat pelacak atau perangkat pelacakan inersia , melekat untuk menangkap posisi / rotasi data global dari sarung tangan. Gerakan-gerakan ini kemudian diinterpretasikan oleh perangkat lunak yang menyertai sarung tangan, sehingga setiap gerakan yang dapat berarti banyak hal. Gestures kemudian dapat dikategorikan menjadi informasi yang berguna, seperti untuk mengenali Sign Language atau fungsi simbolis lainnya. Mahal high-end sarung kabel juga dapat memberikan haptic feedback, yang merupakan simulasi dari indera peraba. Hal ini memungkinkan sarung tangan kabel juga dapat digunakan sebagai perangkat output. Secara tradisional, sarung kabel hanya telah tersedia dengan biaya yang besar, dengan sensor tikungan jari dan perangkat pelacakan harus dibeli secara terpisah.Sarung kabel sering digunakan dalam virtual reality lingkungan.

#UBHARA

No comments:

Post a Comment