Selasa, 14 Januari 2014

Objek 3 Dimensi (Landasan Teori)




BAB II
LANDASAN TEORI

2.1 Definisi Objek 3 Dimensi

Obyek 3-D adalah sekumpulan titik-titik 3-D (x,y,z) yang membentuk luasan-luasan (face) yang digabungkan menjadi satu kesatuan. Face adalah gabungan titik-titik yang membentuk luasan tertentu atau sering dinamakan dengan sisi.
           


Contoh pernyataan Objek : Limas Segiempat

Titik-titik yang membentuk obyek:     
Titik 0  (0,150,0)
Titik 1  (100,0,0)
Titik 2  (0,0,100)
Titik 3 (-100,0,0)
Titik 4  (0,0,-100)

2.2 Konsep Camera Modelling

Kamere modelling merupakan  suatu permodellan dimana dalam komputer grafis digunakan untuk perkiraan sistem optik fisik. Beberapa model kamera memiliki ke khasannya masing masing dalam menghasilkan suatu gambar. Sebuah model kamera mensimulasikan menangkap cahaya dari tiga dimensi menjadi ruang objek gambar ke dua dimensi. Kebanyakan model mengandung perkiraan sistem lensa pararel seperti dari kamera atau mata. Sumbu yang melewati pusat geometris dari sistem lensa disebut sumbu optik. Dalam komputer grafis pusat dari sistem lensa tunggal disebut pusat proyeksi(COP).  Suatu objek dalam adegan diproyeksikan melalui sistem lensa untuk memebentuk sebuah gambar di sisi berlawanan dari sistem. Setiap lensa memiliki aperture yang mendefinisikan daerah dimana cahaya diperbolehkan untuk langsung ke gambar. Biasanya model – model render mempertimbangkan suatu gambar didepan sistem lensa  ketika membentuk gambar, model kamera mempertimbangkan bidang film belakang sistem lensa. Seperti sistem optik fisik ,gambar terbentuk  pada bidang film terbalik. Dalam optik unit standar kekutan lensa adalah diopter unit yang diukur dalam meter terbalik. Meskipun jumlah blur tidak  sama di kejauhan , itu merupakan sekeliling dari dioptri.
Ada berbagai algoritma yang digunakan untuk menerjemahkan 3D geometri ke gambar 2D. Ketika adegan berubah menjadi gambar 2D ,adegan sering mempertahankan peta kedalaman yang berisi pengukuran jarak ke kamera  pada setiap piksel yang diberikan, ini dapat digunakan untuk tambahan algoritma post-procesing. Dua metode untuk menterjemahkan model 3D dalam ruang obyek menjadi gambar 2D adalah scanline rendering dan ray tracing.
Rendering adalah proses akhir dari keseluruhan proses pemodelan ataupun animasi komputer. Dalam rendering, semua data-data yang sudah dimasukkan dalam proses modeling, animasi, texturing, pencahayaan dengan parameter tertentu akan diterjemahkan dalam sebuah bentuk output (tampilan akhir pada model dan animasi).
Rendering tidak hanya digunakan pada game programming, tetapi juga digunakan pada banyak bidang, misalnya arsitektur, simulator, movie, spesial effect pada tayangan televisi, dan design visualization. Rendering pada bidang-bidang tersebut memiliki perbedaan, terutama pada fitur dan teknik renderingnya. Terkadang rendering juga diintegrasikan dengan model yang lebih besar seperti paket animasi, tetapi terkadang berdiri sendiri dan juga bisa free open-source product.
Ø  Algoritma Rendering

Algoritma Rendering adalah prosedur yang digunakan oleh suatu program untuk mengerjakan perhitungan untuk menghasilkan citra 2D dari data 3D. Metode yang saat ini sering dipakai adalah scan-line. Rendering berarti program melihat dari setiap pixel, satu per satu, secara horizontal dan menghitung warna di pixel tersebut. Saat ini dikenal 3 algoritma :
Ray-Casting
Ray-Tracing
Radiosity
·         Teknik Rendering Permukaan
- Melakukan perhitungan dengan model pencahayaan untuk semua titik yg tampak
- Ray-tracing, melakukan interpolasi untuk titik-titik pada permukaan dari sekumpulan intensitas hasil perhitungan dengan model pencahayaan.
Kelanjutan ide Ray-Casting :
§  ‘Sinar’ diteruskan (memantul ke / menembus objek lain)
§   Mencatat semua kontribusi terhadap intensitas suatu titik
§  Untuk mendapatkan efek pantulan _ dan transmisi secara global
Ray-Tracing dasar :
§  Deteksi permukaan tampak, efek bayangan, transparansi, pencahayaan dengan beberapa sumber cahaya
Pengembangan Ray-Tracing:
§  Tampilan fotorealistik (terutama objek mengkilap)
Algoritma Ray-Tracing Dasar :
For each pixel in projection plane {
Create ray from the reference point passing through this pixel
Initialize NearestT to INFINITY and NearestObject to NULL
For every object in scene {
If ray intersects this object {
If t of intersection is less than NearestT {
Set NearestT to t of the intersection
Set NearestObject to this object
}
}
}
If NearestObject is NULL {
Fill this pixel with background color
} Else {
Shoot a ray to each light source to check if in shadow
If surface is reflective, generate reflection ray: recurse
If transparent, generate refraction ray: recurse
Use NearestObject and NearestT to compute shading function
Fill this pixel with color result of shading function
}
}

- Scan-line
a. Permukaan = polygon
b. Aplikasi model pencahayaan:
- Perhitungan intensitas tunggal untuk masing-masing polygon
- Intensitas tiap titik pada poligon didapat dengan cara interpolasi
c. Algoritma:
- Flat (constant-intensity) shading
Intensitas tunggal untuk setiap polygon
·         Semua titik dalam poligon ditampilkan dengan intensitas yang sama
·         Sering digunakan untuk mendapat tampilan cepat dari objek
·         Akurat dengan asumsi: Objek = polihedron (bukan aproksimasi kurva), Sumber cahaya cukup jauh (N.L konstan), Pengamat cukup jauh (V.R konstan)
·         Bisa disiasati dengan memperkecil polygon Facet
Algoritma render standar dalam komputer grafis setara dengan modeling kamera obscura atau kamera lubang jarum . Dalam model ini semua sinar cahaya dari adegan yang lewat melalui satu titik disebut pusat proyeksi  atau melalui lensa dengan aperture sangat kecil . Karena hanya sinar cahaya tunggal dilemparkan dari setiap titik dalam adegan dapat melewati COP terlepas dari lokasinya di ruang bebas, setiap titik akan diberikan tepat sekali di bidang film . Hal ini menyebabkan semua benda dalam adegan muncul dalam fokus yang tajam pada gambar yang dihasilkan . Model ini tidak bisa direalisasikan secara fisik karena dalam kenyataannya , titik berukuran aperture akan menghasilkan gambar pada bidang film yang akan terlalu redup untuk diamati . Namun  hanya membalikkan model ini  untuk menghasilkan pelacak sinar , dimana sinar diproyeksikan dari COP melalui setiap pixel pada gambar pesawat dan kemudian warna bahan ini bersimpangan menentukan warna piksel tertentu . Teknik analitik juga telah dikembangkan dengan menggunakan model ini untuk obyek proyek ke ruang gambar efisien.
Banyak situasi di mana model kamera yang akurat itu penting yaitu:
·         Salah satu tren di komputer grafis realistis adalah menuju physicallybased algoritma render yang kuantitatif model transportasi cahaya . Output dari program ini adalah biasanya cahaya pada setiap permukaan . Sebuah model kamera berbasis fisik diperlukan untuk mensimulasikan proses pembentukan citra jika perbandingan akurasi dengan data empiris yang dibuat .
·         Dalam banyak aplikasi ( efek khusus , augmented reality ) itu diperlukan untuk mempermudah menggabungkan citra yang diperoleh dengan sintetik citra . Dalam situasi ini, penting bahwa sintetis citra dihitung menggunakan model kamera mirip dengan kamera nyata.
·          Dalam beberapa visi dan aplikasi  mesin ilmiah itu perlu untuk mensimulasikan kamera dan sensor akurat . Sebagai contoh, sistem visi mungkin ingin menguji apakah model internal dari dunia sesuai dengan apa yang sedang diamati .
·         Banyak pengguna sistem grafis 3d yang sangat akrab dengan kamera serta tahu bagaimana cara menggunakannya . Dengan menggunakan kamera metafora sistem grafis mungkin lebih mudah untuk digunakan. Mungkin pengenalan awal model kamera di komputer grafis adalah model kamera sintetik yang diusulkan dalam CORE
sistem. Kemudian bekerja menggunakan metafora kamera untuk menggambarkan proses sintesis gambar , tapi tidak berniat untuk mereproduksi efek fotografi atau memberikan kontrol fotografi seperti di atas pembentukan citra . Terobosan besar berikutnya dalam pemodelan kamera adalah simulasi kedalaman lapangan dan motion blur. Metode saat ini untuk mensimulasikan efek ini menggunakan sistem lensa ideal dan dengan demikian tidak dapat digunakan untuk mensimulasikan perilaku tertentu sistem fisik . Sejumlah peneliti telah menunjukkan bagaimana melakukan proyeksi kamera non - linear , seperti untuk fisheye atau Lensa Omnimax. Metode ini berasal dari transformasi peta gambar poin ke arah dalam 3D , dan memiliki kekurangan efek seperti kedalaman lapangan tidak dapat dikombinasikan dengan proyeksi tujuan khusus .

2.2 Konsep Texture Modelling

1) Satu set filter dipilih dari filter bank umum untuk menangkap fitur tekstur , filter ini diterapkan ke gambar tekstur yang diamati , dan histogram dari gambar yang diambil disaring . Ini histogram merupakan perkiraan dari distribusi marjinal f ( I) . Langkah ini disebut ekstraksi fitur .
2) Prinsip entropi maksimum digunakan untuk memperoleh p distribusi ( I) , yang dibatasi untuk memiliki distribusi marjinal yang sama seperti pada ( 1 ). P ini ( I) dianggap sebagai estimasi f ( I). Langkah ini disebut fitur fusi.

            Tekstur merupakan karakteristik penting dari penampilan objek dalam pemandangan alam, dan merupakan syarat kuat dalam persepsi visual. Memainkan peran penting dalam visi komputer, grafis, dan pengkodean gambar. Pemahaman tekstur merupakan bagian penting dari memahami visi manusia. Analisis tekstur dan sintesis telah menjadi daerah penelitian arsip selama tiga dekade berlalu, dan sejumlah besar metode telah diusulkan, dengan tujuan yang berbeda atau asumsi pokok tentang proses pembentukan tekstur yang mendasarinya. Misalnya dalam komputer grafis, persamaan reaksi-difusi telah digunakan untuk mensimulasikan beberapa proses kimia yang dapat menghasilkan tekstur pada kulit hewan. Pembentukan tekstur tujuannya adalah untuk mencari model umum yang harus dapat untuk menggambarkan berbagai tekstur dalam kerangka umum, dan dengan pemahaman fisik dan logika tekstur manusia persepsi.
Model pertama tekstur umum diusulkan oleh Julesz di tahun 1960. Julesz menyarankan bahwa persepsi tekstur dapat dijelaskan dengan mengekstraksi disebut "k order" statistik, yaitu statistik kejadian untuk intensitas piksel. Dalam akta kerja awal pemodelan tekstur terutama didorong oleh dugaan ini (haralick, 1979). Kelemahan utama untuk model ini adalah bahwa jumlah data yang terdapat dalam urutan statistik k adalah raksasa dan dengan demikian sangat sulit untuk menangani ketika k > 2. Di sisi lain  percobaan psychophysical menunjukkan bahwa sistem visual manusia tidak mengambil setidaknya beberapa statistik lebih tinggi dari urutan dua (Diaconis dan preman, 1981).
Penelitian yang lebih baru pada tekstur terutama berfokus pada dua bidang.
Seseorang penyaringan teori yang terinspirasi oleh multichannel mekanisme penyaringan yang ditemukan dan berlaku umum di neurofisiologi. Mekanisme ini menunjukkan bahwa sistem visual terurai ke satu set sub - band. Daerah kedua adalah pemodelan statistik yang menjadi ciri gambar tekstur yang timbul dari distribusi probabilitas pada bidang acak ini . Pendekatan pemodelan hanya melibatkan sejumlah kecil untuk tekstur . Lebih penting lagi mereka mengajukan analisis tekstur sebagai masalah inferensi statistik yang terdefinisi dengan baik . Teori statistik memungkinkan kita tidak hanya untuk membuat inferensi tentang parameter dari model probabilitas yang mendasari berdasarkan gambar tekstur yang diamati, tetapi juga untuk mensintesis gambar tekstur dengan contoh dari model probabilitas. Itu menyediakan cara yang ketat untuk dimodelkan (Salib dan Jain 1983), tetapi biasanya model ini adalah bentuk yang sangat terbatas yaitu kurangnya kekuatan ekspresif .
            Objek 3D  pada open GL merupakan objek yang lebih hidup dibandingkan objek 2D. Namun permukaan objek 3D yang polos membuat 3D sangatlah kurang menarik. Untuk membuat objek yang lebih hidup pada OpenGL diperlukan suatu pembuatan tekstur yaitu salah satunya texture mapping. Mapping adalah kegiatan untuk melakukan pewarnaan atau memetakan permukaan geometri pada objek 3D. Sedangkan Maps adalah bentuk gambar atau warna yang digunakan untuk melapisi objek 3D pada saat dilakukan mapping. Sehingga  pemetaan texture merupakan pemberian sebuah gambar pada permukaan objek sehingga objek akan tampak realistis. Texture mapping memungkinkan untuk menaruh gambar pada geometric primitive tersebut dan sekaligus mengikuti transformasi yang diterapkan kepada objek. Contohnya apabila sebuah objek kubus tanpa gambar diberi texture bebatuan pada permukaannya, maka objek tersebut akan tampak memiliki tekstur kasar seperti batu. Texture pada permukaan objek dapat dilihat dari berbagai perspective yang berbeda. Contoh dari pembuatan texture:
Namun terkadang  efek tekstur dicampur lebih dari satu texture. Proses pencampuran lebih dari satu texture disebut dengan istilah blending. Salah satu efek blending yang paling sederhana adalah dengan memblending texture dengan warna.  Fungsi yang digunakan pada proses blending adalah glEnable(GL_BLEND).

Ø  Konsep Texture Mapping
Texture mapping merupakan teknik pemetaan sebuah tekstur pada pola gambar wireframe, dimana wireframe yang telah dibuat akan ditampilkan memiliki kulit luar seperti tekstur yang diinginkan. Beberapa hal yang perlu diperhatikan dalam pemberian tekstur, diantaranya:
·           Menentukan tekstur

1. Membaca atau membangkitkan tekstur
2. Menandai tekstur
3. Mengenablekan tekstur

·         Menandai koordinat tekstur pada vertek
·         Menentukan parameter tekstur

Ø  Teknik – teknik realisme dalam Komputer Grafik

1.      . Tekstur-Maps

Maps berwujud gambar tekstur 2D yang dituangkan ke permukaan geometri/ objek untuk membuat penampilan objek tersebut tampak halus untuk detail permukaannya. Pada pengembangan grafik realisme tingkat tinggi diperlukan lebih banyak lapisan tekstur, agar hasil mapping mendekati kesempurnaan. Sebuah tekstur maps yang diterapkan (dipetakan) biasanya dipakai untuk permukaan bentuk objek polygon, proses ini mirip dengan menerapkan texture pada kertas berpola kotak putih yang polos.Kegiatan texture mapping untuk texture maps dapat didefinisikan sebagai sebuah metode untuk menambahkan detail tekstur permukaan (bitmap atau raster image), atau warna yang dihasilkan komputer grafis atau model 3D. Penerapannya pada grafis 3D dirintis oleh Dr Edwin Catmull pada proyek Ph.D tesisnya tahun 1974.

1.      Environment-Maps

Environtment-Maps ialah maps yang memiliki pewarnaan dengan banyak gambar (tekstur) yang merekam refleksi global dan pencahayaan pada objek. Gambar-gambar ini difungsikan sebagai resampled selama proses rendering, dengan tujuan untuk mengekstrak, dan melihat informasi spesifik yang kemudian diterapkan sebagai tekstur objek pada permukaan geometri. Maps ini sering disebut reflection yang berarti tekstur pencahayaan dari benda-benda luar di sekitar objek, maps jenis ini sangat cocok untuk benda-benda yang memiliki tingkat refleksi yang sangat tinggi, seperti kaca, dan lain sebagainya.Environmet mapping pada maps ini memiliki definisi yaitu metode yang efisien untuk simulasi kompleks permukaan bercermin melalui suatu gambar tekstur. Tekstur yang digunakan bekerja untuk menyimpan gambar dari lingkungan sekitar objek yang diberikan. Ada beberapa cara untuk menyimpan tekstur lingkungan sekitar objek, salah satu metode yang paling umum adalah metode Spherical Environment Mapping, di mana dalam metode ini suatu tekstur yang berisi citra lingkungan sekitar akan direfleksikan sebagai bola cermin, dan kemudian dimasukkan sebagai tekstur objek yang diberi maps.

2.    Bump-Maps

Bump maps adalah maps yang memfokuskan permukaan tekstur pada objek, dengan menggunakan maps ini, permukaan geometri/objek akan terlihat berbeda dan unik, tidak seperti objek-objek yang memiliki permukaan normal pada umumnya. Rumus pekerjaan dari maps ini akan menerapkan bidang untuk intensitas dalam maps yang menunjukkan tingkat rendah tingginya suatu permukaan objek, fungsi maps ini akan mengacaukan permukaan objek yang normal, sehingga menimbulkan kesan unik ketika hasilnya sudah di-render.Untuk kegiatannya, bump mapping adalah sebuah teknik grafis komputer di mana pada setiap pixel untuk permukaan normal objek, akan diberikan efek tidak halus dan diterapkan sebelum melakukan perhitungan iluminasi. Hasilnya, objek yang diberi maps akan lebih kaya, serta lebih rinci untuk representasi permukaan objek dan lebih mirip pada permukaan alam.

3.      Normal-Maps

Maps ini serupa dengan bump-maps, perbedaannya adalah fungsionalitas yang ada pada normal maps, maps ini secara alami akan menghasilkan bentuk permukaan yang tidak halus tanpa menggunakan lebih banyak penambahan atau pengurangan poligon pada objek.Dalam dunia grafik komputer 3D, normal mapping pada maps ini bisa disebut " Dot3 bump mapping ", definisinya adalah sebuah teknik yang digunakan untuk ”berpura-pura” menambahkan efek tidak halus pada permukaan objek. Kenapa disebut ”berpura-pura” ? Hal ini disebabkan karena mapping ini bekerja dengan menambahkan rincian tidak halus pada permukaan objek tanpa menggunakan poligon. Normal mapping biasanya diakurasi sebagai sebuah gambar RGB yang berhubungan dengan koordinat X, Y, dan Z dari permukaan normal suatu objek. Penggunaan umum teknik ini adalah untuk lebih meningkatkan tampilan dan detail dari model poligon rendah dengan menghasilkan peta normal dari model poligon yang tinggi.

4.      Shadow-Maps

Shadow maps yaitu maps yang menghasilkan suatu bayangan tekstur pada objek dengan menangkap siluet objek tersebut dari sumber cahaya yang terlihat. Maps ini sangat sering dipakai oleh pengembang grafik 3D, karena efek yang dihasilkan seolah-olah menunjukkan objek tersebut sangat realistis, dan disebabkan adanya bayangan dari sumber cahaya yang ada.Fungsi kerjanya yang berkonsep shadow mapping adalah proses di mana bayang-bayang ditambahkan ke grafik komputer 3D. Konsep ini diperkenalkan oleh Lance Williams pada tahun 1978, dalam sebuah makalah yang berjudul "Casting curved shadows on curved surfaces". Sejak saat itu, teknik ini telah digunakan baik dalam pra-render adegan, dipakai secara realtime, atau bahkan diterapkan ke banyak konsol dan PC high-end game.
 
Berikut ini adalah macam-macam tekstur:

  •  GL_TEXTURE_1D: semua gambar dalam tekstur ini 1-dimensi. Memiliki lebar, tapi tidak memiliki ketinggian atau kedalaman.
  • GL_TEXTURE_2D: semua gambar dalam tekstur ini 2-dimensi. Memiliki lebar dan tinggi, namun tidak punya kedalaman 
  • GL_TEXTURE_3D: semua gambar dalam tekstur ini 3-dimensi. Memiliki lebar, tinggi,dan kedalaman. 
  • GL_TEXTURE_RECTANGLE: Gambar dalam tekstur ini (hanya satu gambar padamipmapping) 2-dimensi. Koordinat tekstur yang digunakan untuk tekstur ini tidakdinormalisasi. 
  • GL_TEXTURE_BUFFER: Gambar dalam tekstur ini (Hanya satu gambar adamipmapping) 1-dimensi. Penyimpanan data berasal dari Buffer Object 
  • GL_TEXTURE_CUBE_MAP: terdapat 6 set gambar 2D berbeda, dengan ukuran yang sama. Berbentuk seperti 6 sisi kubus. 
  • GL_TEXTURE_1D_ARRAY: Gambar dalam tekstur ini semua 1-dimensi. Namun,berisi beberapa set gambar 1-dimensi, semua dalam satu tekstur. Panjang arraybagian dari ukuran tekstur itu. 
  •  GL_TEXTURE_2D_ARRAY: Gambar dalam tekstur ini semua adalah 2-dimensi.Namun, mengandung beberapa set gambar 2 dimensi, semua dalam satu tekstur.Panjang array bagian dari ukuran tekstur itu. 
  •  GL_TEXTURE_CUBE_MAP_ARRAY: Gambar dalam tekstur ini merupakan pemetaan kubus. Berisi beberapa set peta kubus yang kesemuanya berada dalamsebuah tekstur. Panjang Array * 6 (jumlah sisi kubus) merupakan bagian dari ukuran tekstur. 
  •  GL_TEXTURE_2D_MULTISAMPLE: Gambar dalam tekstur ini (hanya satu gambarada mipmapping) adalah 2-dimensi. Setiap pixel dalam gambar ini berisi beberapasampel bukan hanya satu nilai. 
  •  GL_TEXTURE_2D_MULTISAMPLE_ARRAY: Menggabungkan 2D array dan jenismultisample 2D. Tidak ada mipmapping.