Pages

Subscribe:

Kamis, 04 Maret 2010

Tugas Grafik Komputer 2

Texture mapping

Texture mapping adalah sebuah metode untuk menambahkan detail, tekstur permukaan (a bitmap atau raster image), atau warna ke dihasilkan computer grafis  atau model 3D. Penerapannya pada grafis 3D dirintis oleh Dr Edwin Catmull di gelar Ph.D. tesis 1974.

Sebuah peta tekstur diterapkan (dipetakan) ke permukaan bentuk atau poligon. Proses ini mirip dengan menerapkan kertas berpola kotak putih polos.
Multitexturing adalah penggunaan lebih dari satu tekstur pada suatu waktu pada poligon. Sebagai contoh, sebuah peta cahaya tekstur dapat digunakan untuk menyalakan permukaan sebagai alternatif pencahayaan recalculating bahwa setiap kali permukaan diterjemahkan. Teknik ini multitexture lain benjolan pemetaan, yang memungkinkan sebuah tekstur untuk mengontrol langsung menghadap arah permukaan untuk tujuan dari perhitungan pencahayaan, tetapi dapat memberikan penampilan yang sangat baik dari permukaan yang kompleks, seperti kulit pohon atau beton kasar, yang mengambil pada pencahayaan detail di samping yang biasa mewarnai rinci. Bump pemetaan telah menjadi populer dalam beberapa video game sebagai hardware grafis telah menjadi cukup kuat untuk mengakomodasi hal itu.

Cara yang dihasilkan pixels pada layar yang dihitung dari texels (tekstur piksel) diatur oleh tekstur penyaringan. Metode tercepat adalah dengan menggunakan interpolasi tetangga terdekat-, tapi bilinear interpolasi atau trilinier interpolasi antara mipmaps adalah dua alternatif yang umum digunakan mengurangi aliasing atau jaggies. Dalam hal tekstur berada di luar koordinat tekstur, itu baik dijepit atau dibungkus.

Perspektif Kebenaran

Koordinat Tekstur ditetapkan pada setiap sudut dari suatu segitiga, dan koordinat ini interpolated menggunakan diperpanjang garis Bresenham algoritma. Jika koordinat tekstur ini linear interpolated di layar, hasilnya adalah tekstur affine pemetaan. Ini adalah perhitungan cepat, tetapi bisa terdapat diskontinuitas yang nyata antara batas segitiga segitiga saat ini adalah pada sudut terhadap bidang layar (lihat gambar di sebelah kanan â € "tekstur (si pemeriksa kotak) akan muncul membungkuk).


Karena pemetaan tekstur affine tidak memperhitungkan informasi mendalam tentang poligon's simpul, dimana poligon tidak tegak lurus ke penampil itu menghasilkan cacat yang nyata.

Perspektif benar texturing account untuk simpul 'posisi dalam ruang 3D, bukan sekadar interpolating 2D segitiga. Ini mencapai efek visual yang benar, tetapi lambat untuk dihitung. Alih-alih interpolating koordinat tekstur langsung, koordinat dibagi dengan kedalaman mereka (relatif terhadap penonton), dan kebalikan dari nilai kedalaman juga interpolated dan digunakan untuk memulihkan perspektif-benar koordinat. Koreksi ini membuatnya begitu bahwa di bagian-bagian poligon yang lebih dekat ke penampil perbedaan dari piksel ke piksel antara koordinat tekstur lebih kecil (peregangan tekstur yang lebih luas), dan di bagian yang lebih jauh perbedaan ini lebih besar (mengompresi tekstur )
Affine pemetaan tekstur langsung interpolates koordinat tekstur  antara dua endpoint  dan :
di mana 
Perspektif benar pemetaan interpolates setelah membaginya dengan kedalaman z , Kemudian menggunakan timbal balik yang menyela untuk memulihkan koordinat yang benar:

Semua hardware grafis modern yang benar mengimplementasikan perspektif texturing.

Doom menjadikan rentang vertikal (dinding) dengan tekstur affine pemetaan.

Pemeta tekstur klasik umumnya hanya melakukan pemetaan sederhana dengan paling banyak satu efek pencahayaan dan perspektif kebenaran itu sekitar 16 kali lebih mahal. Jadi untuk di satu pihak tidak menunggu di divisi dan di sisi lain tidak membiarkan pembagian dan perkalian menjalankan rangkaian menganggur setiap segitiga dibagi dalam kelompok dari sekitar 16 piksel. Untuk perspektif pemetaan tekstur hardware bodoh segitiga adalah dipecah menjadi segitiga yang lebih kecil untuk rendering, yang pada arsitektur non aplikasi memiliki beberapa sinergi dengan tingkat detail. Lunak layar renderers subdivisi umumnya disukai karena memiliki lebih sedikit overhead. Sebagai tambahan mereka mencoba melakukan interpolasi linier sepanjang garis dari pixel untuk menyederhanakan set-up (dibandingkan dengan 2d affine interpolasi) dan dengan demikian lagi di atas kepala (juga affine pemetaan tekstur tidak sesuai dengan jumlah rendah dari 086 register CPU, yang 68.000 RISC atau jauh lebih cocok). Sebagai contoh, Doom dunia untuk membatasi dinding vertikal dan horisontal lantai / langit-langit. Ini berarti dinding akan jarak yang konstan di sepanjang garis vertikal dan lantai / langit-langit akan jarak yang konstan di sepanjang garis horizontal. Affine pemetaan yang cepat dapat digunakan di sepanjang jalur tersebut karena akan benar. Sebuah pendekatan yang berbeda diambil untuk Quake, yang akan menghitung koordinat perspektif yang benar hanya sekali setiap 16 piksel dari scanline dan interpolasi linear antara mereka, secara efektif berjalan pada kecepatan interpolasi linier karena perspektif perhitungan benar berjalan secara paralel pada co-prosesor. The poligon yang diberikan secara mandiri, maka dimungkinkan untuk beralih di antara rentang dan kolom atau diagonal arah tergantung pada orientasi poligon normal untuk mencapai yang lebih konstan z, tapi tampaknya upaya untuk tidak sepadan.
Teknik lain adalah membagi poligon poligon yang lebih kecil, seperti segitiga di 3d-ruang atau kotak di layar ruang, dan menggunakan pemetaan affine pada mereka. Distorsi affine pemetaan menjadi jauh lebih sedikit terlihat pada poligon lebih kecil. Namun teknik lain adalah perspektif yang mendekati dengan perhitungan yang lebih cepat, seperti polinomial. Masih teknik lain menggunakan 1 / z nilai dari dua ditarik ekstrapolasi linear piksel ke nilai berikutnya. Divisi ini kemudian dilakukan mulai dari nilai-nilai tersebut sehingga hanya sisa kecil harus dibagi, tetapi jumlah pembukuan membuat metode ini terlalu lambat pada kebanyakan sistem. Akhirnya, beberapa programer  memperpanjang jarak konstan trik yang digunakan untuk Doom dengan mencari garis jarak konstan untuk sewenang-wenang dan rendering poligon sepanjang itu.


Sumber :