ENVIRONMENT MAPPING
Pemetaan
lingkungan (Environment Mapping) adalah teknik yang relatif sederhana yang mencoba untuk
mensimulasikan tampilan permukaan reflektif seperti air atau logam. Misalnya,
menghitung cerminan sejati, yang merupakan proses yang mahal, menggunakan tekstur
peta dan beberapa tipuan koordinat tekstur untuk menciptakan efek reflektif yang
cukup meyakinkan.
Perhatikan,
bahwa pemetaan lingkungan tidak mensimulasikan refleksi yang benar. Ini hanya trik pintar matematika yang membodohi mata hampir sepenuhnya. Sebuah
peta lingkungan hanyalah sebuah peta tekstur biasa yang kita gunakan untuk
menyandikan refleksi untuk spesifik objek. Sebagai contoh, jika kita ingin
menampilkan teko di tengah ruangan besar, peta lingkungan mengkodekan informasi
ruangan, dan kemudian kita menggunakan beberapa teknik untuk menetapkan
koordinat pemetaan atas tekstur peta.
Peta ini biasanya diproyeksikan baik dalam koordinat bola atau dengan
menggunakan kubus. Koordinat bola lebih
mudah untuk dibuat, tapi hasilnya mengalami distorsi di beberapa kutub. Koordinat kubus,
di sisi
lain, tidak mengalami distorsi, didukung oleh perangkat keras baru, dan membuka
pintu untuk menghitung refleksi yang
benar. Semua yang perlu kita lakukan adalah menghasilkan peta kubus yang
dinamis enam wajah encode refleksi informasi untuk objek.
Sejauh
pelaksanaan berjalan, pemetaan lingkungan perlu koordinat tekstur yang harus
dihitung per frame. Jika teko berputar, kita akan melihat refleksi yang berbeda
pada permukaannya. Ingat dari bab sebelumnya bahwa refleksi sebagian besar terlihat
tergantung, dan dengan demikian pemetaan lingkungan selalu dinamis. Sekarang
ini koordinat pemetaan tidak sulit untuk dighitung. Untuk peta bola, yang harus
kita lakukan adalah mendapatkan pervertex normal, mengubahnya dari XYZ untuk
koordinat polar, dan menggunakan koordinat ini untuk mengakses lingkungan peta.
Untungnya, baik OpenGL dan DirectX dukungan otomatis texturing generasi
koordinat, sehingga yang harus kita lakukan adalah meminta API pilihan untuk
generasi otomatis pada bola, pesawat, atau kubus, dan akan menanganinya secara
internal, jauh lebih cepat dari implementasi perangkat lunak. Pada OpenGL,
generasi tekstur otomatisdikendalikan oleh panggilan glTexGen. Untuk peta
wilayah, panggilan tersebut harus :
glTexGen(GL_S,
GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGen(GL_T,
GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGen(GL_Q,
GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
Under DirectX, the same can be achieved by using
d3dDevice->SetTextureStageState(
0, D3DTSS_TEXCOORDINDEX,
D3DTSS_TCI_CAMERASPACENORMAL
);
yang menetapkan koordinat
tekstur harus dihitung dari normal permukaan, dengan demikian menghasilkan bola
koordinat.
Menggunakan pemetaan lingkungan
hanya dalam satu tahap tekstur dan menggabungkan (menggunakan kombinasi
tekstur) dengan tahap lain menghasilkan hasil yang sangat realistis. Logam
permukaan yang menggabungkan reflektifitas dengan karat, atau bumpmapped air
reflektif keduanya mungkin menggunakan teknik ini bersama-sama.
GLOSS MAPPING
Pemetaan gloss (Gloss Mapping)
merupakan varian dari pemetaan lingkungan yang memungkinkan realisme yang lebih
besar dalam refleksi kita . Sebuah tekstur baru , peta gloss, mengkodekan
informasi tentang reflektifitas dari permukaan obyek, sehingga tidak konstan di
sepanjang permukaannya. Beberapa daerah akan menjadi mengkilap, dan orang lain
akan menjadi kusam. Cara yang populer untuk mencapai hal ini hasil reflektif
adalah untuk menyandikan informasi pemetaan gloss sebagai alpha channel dari
bahan dasar. Kemudian, untuk membuat kilau, kita mulai dengan rendering peta
tekstur dasar tanpa alpha dan modulasi itu dengan informasi pencahayaan difus. Kemudian
kita kalikan informasi gloss oleh specular atau lingkungan tekstur peta. Hal
ini menghasilkan komponen reflektif yang bervariasi sepanjang permukaan. Kemudian,
kita menambahkan ini ke dasar tekstur sebagai komponen specular. Karena
informasi lebih digunakan untuk menghitung hasil dari pada lingkungan pemetaan
tradisional atau specular highlight, refleksi lebih realistis dan menyoroti
adalah dihitung.
sumber http://www.tar.hu/gamealgorithms/ch18lev1sec10.html2/9/2009
sumber http://www.tar.hu/gamealgorithms/ch18lev1sec10.html2/9/2009
0 komentar:
Posting Komentar