Apakah akan mengaktifkan pemfilteran anisotropik atau tidak. Menyiapkan kartu grafis Nvidia untuk bermain game

Langganan
Bergabunglah dengan komunitas “koon.ru”!
Berhubungan dengan:

Halo semua! Hari ini sangat artikel menarik tentang menyempurnakan kartu video untuk kinerja tinggi V permainan komputer. Teman-teman, setuju bahwa setelah menginstal driver kartu video, Anda pernah membuka "Nvidia Control Panel" dan melihat kata-kata asing di sana: DSR, shader, CUDA, clock pulse, SSAA, FXAA, dan sebagainya, dan memutuskan untuk tidak pergi ke sana lagi . Namun demikian, semua ini mungkin dan bahkan perlu untuk dipahami, karena kinerja secara langsung bergantung pada pengaturan ini. Ada kesalahpahaman bahwa semua yang ada di panel canggih ini dikonfigurasi dengan benar secara default, sayangnya hal ini tidak terjadi dan eksperimen menunjukkan hal itu pengaturan yang benar dihargai dengan peningkatan yang signifikankecepatan bingkai.Jadi bersiaplah, kita akan memahami optimasi streaming, pemfilteran anisotropik, dan buffering tiga kali lipat. Pada akhirnya, Anda tidak akan menyesalinya dan Anda akan diberi imbalan berupameningkatkan FPS dalam game.

Menyiapkan kartu grafis Nvidia untuk bermain game

Laju perkembangan produksi game semakin hari semakin meningkat, begitu pula dengan hidangan utama satuan moneter di Rusia, dan oleh karena itu relevansi optimalisasi pengoperasian perangkat keras, perangkat lunak, dan sistem operasi telah meningkat tajam. Tidak selalu mungkin untuk menjaga kuda baja Anda dalam kondisi yang baik melalui suntikan keuangan yang terus-menerus, jadi hari ini kita akan berbicara tentang meningkatkan kinerja kartu video karena kemampuannya. pengaturan rinci. Dalam artikel saya, saya sudah berulang kali menulis tentang pentingnya menginstal driver video, jadi , saya pikir Anda bisa melewatkannya. Saya yakin Anda semua tahu betul cara melakukan ini, dan Anda semua sudah menginstalnya sejak lama.

Jadi, untuk masuk ke menu manajemen driver video, klik kanan di mana saja di desktop dan pilih “Nvidia Control Panel” dari menu yang terbuka.

Kemudian, di jendela yang terbuka, buka tab “Kelola parameter 3D”.

Disini kita akan mengkonfigurasi berbagai parameter yang mempengaruhi tampilan gambar 3D di game. Tidak sulit untuk memahami bahwa untuk mendapatkan performa maksimal dari kartu video Anda harus mengurangi kualitas gambar secara signifikan, jadi bersiaplah untuk ini.

Jadi, poin pertama " CUDA - GPU" Berikut adalah daftar prosesor video yang dapat Anda pilih dan akan digunakan oleh aplikasi CUDA. CUDA (Compute Unified Device Architecture) adalah arsitektur komputasi paralel yang digunakan oleh semua GPU modern untuk meningkatkan kinerja komputasi.

Poin berikutnya" DSR - Kelancaran“Kami melewatkannya karena ini adalah bagian dari pengaturan item “DSR - Derajat”, dan pada gilirannya, perlu dinonaktifkan dan sekarang saya akan menjelaskan alasannya.

DSR (Resolusi Super Dinamis)– sebuah teknologi yang memungkinkan Anda menghitung gambar dalam game dengan resolusi lebih tinggi, dan kemudian menskalakan hasil yang dihasilkan ke resolusi monitor Anda. Agar Anda memahami mengapa teknologi ini diciptakan dan mengapa kita tidak membutuhkannya untuk mendapatkan kinerja yang maksimal, saya akan mencoba memberikan contoh. Pastinya kalian sudah sering memperhatikan dalam game bahwa detail-detail kecil seperti rumput dan dedaunan sangat sering berkedip atau beriak saat bergerak. Hal ini disebabkan semakin rendah resolusinya, semakin kecil jumlah titik pengambilan sampel untuk menampilkan detail halus. Teknologi DSR dapat memperbaiki hal ini dengan meningkatkan jumlah titik (semakin tinggi resolusinya, semakin banyak jumlah titik pengambilan sampel). Saya harap ini menjadi jelas. Dalam kondisi produktivitas maksimal, teknologi ini kurang menarik bagi kami karena menghabiskan biaya yang cukup besar sumber daya sistem. Nah, dengan dinonaktifkannya teknologi DSR, penyesuaian kehalusan, yang saya tulis di atas, menjadi tidak mungkin. Secara umum, kami mematikannya dan melanjutkan.

Berikutnya datang penyaringan anisotropik. Pemfilteran anisotropik adalah algoritma grafik komputer yang dibuat untuk meningkatkan kualitas tekstur yang miring relatif terhadap kamera. Artinya, ketika menggunakan teknologi ini, tekstur dalam game menjadi lebih jelas. Jika kita bandingkan antisotropic filtering dengan pendahulunya yaitu bilinear dan trilinear filtering, maka anisotropic filtering merupakan yang paling rakus dalam hal konsumsi memori video card. Item ini hanya memiliki satu pengaturan - memilih koefisien filter. Tidak sulit untuk menebaknya fungsi ini harus dinonaktifkan.

Poin berikutnya - pulsa sinkronisasi vertikal. Ini menyinkronkan gambar dengan kecepatan refresh monitor. Jika Anda mengaktifkan opsi ini, Anda dapat memperoleh gameplay sehalus mungkin (sobekan gambar dihilangkan saat kamera berbelok tajam), namun, penurunan bingkai sering kali terjadi di bawah kecepatan refresh monitor. Untuk mendapatkan kuantitas maksimum frame per detik, lebih baik nonaktifkan opsi ini.

Personel yang telah terlatih sebelumnya realitas maya . Fungsi kacamata virtual reality kurang menarik bagi kami karena VR masih jauh dari penggunaan sehari-hari oleh para gamer awam. Kami membiarkannya default - gunakan pengaturan aplikasi 3D.

Bayangan pencahayaan latar belakang. Membuat pemandangan tampak lebih realistis dengan memperhalus intensitas cahaya sekitar pada permukaan yang tertutup oleh objek di dekatnya. Fungsi ini tidak berfungsi di semua game dan sangat membutuhkan sumber daya. Oleh karena itu, kami membawanya ke ibu digital.

Cache shader. Saat fitur ini diaktifkan, CPU menyimpan shader yang dikompilasi untuk GPU ke disk. Jika shader ini diperlukan lagi, GPU akan mengambilnya langsung dari disk, tanpa memaksa CPU untuk mengkompilasi ulang shader ini. Tidak sulit untuk menebak bahwa jika Anda menonaktifkan opsi ini, kinerja akan turun.

Jumlah maksimum frame yang telah disiapkan sebelumnya. Jumlah frame yang dapat disiapkan CPU sebelum diproses oleh GPU. Semakin tinggi nilainya, semakin baik.

Anti-aliasing multi-bingkai (MFAA). Salah satu teknologi anti-aliasing yang digunakan untuk menghilangkan “jaggedness” pada bagian tepi gambar. Teknologi anti-aliasing apa pun (SSAA, FXAA) sangat menuntut GPU (satu-satunya pertanyaan adalah tingkat kerakusannya). Matikan.

Pengoptimalan aliran. Dengan mengaktifkan fitur ini, suatu aplikasi dapat menggunakan beberapa CPU sekaligus. Jika aplikasi lama tidak berfungsi dengan benar, coba atur mode “Otomatis” atau nonaktifkan fungsi ini sama sekali.

Mode manajemen daya. Ada dua opsi yang tersedia - mode adaptif dan mode performa maksimum. Selama mode adaptif, konsumsi daya bergantung langsung pada beban GPU. Mode ini terutama diperlukan untuk mengurangi konsumsi daya. Selama mode kinerja maksimum, seperti yang Anda duga, tingkat kinerja dan konsumsi daya setinggi mungkin dipertahankan, terlepas dari beban GPU. Mari kita masukkan yang kedua.

Anti-aliasing – FXAA, Anti-aliasing – koreksi gamma, Anti-aliasing – parameter, Anti-aliasing – transparansi, Anti-aliasing – mode. Saya sudah menulis tentang smoothing sedikit lebih tinggi. Matikan semuanya.

Buffer tiga kali lipat. Suatu jenis buffering ganda; metode keluaran gambar yang menghindari atau mengurangi artefak (distorsi gambar). Jika kita berbicara dengan kata-kata sederhana, lalu meningkatkan produktivitas. TETAPI! Hal ini hanya berfungsi bersama dengan sinkronisasi vertikal, yang, seperti yang Anda ingat, telah kami nonaktifkan sebelumnya. Oleh karena itu, kami juga menonaktifkan parameter ini, tidak ada gunanya bagi kami.

Penyaringan tekstur.

Pemfilteran memecahkan masalah penentuan warna piksel berdasarkan texel yang ada dari gambar tekstur.

Metode paling sederhana untuk menerapkan tekstur disebut pengambilan sampel titik(pengambilan sampel titik tunggal). Intinya adalah untuk setiap piksel yang membentuk poligon, satu texel dipilih dari gambar tekstur yang paling dekat dengan pusat titik cahaya. Kesalahan terjadi karena warna piksel ditentukan oleh beberapa texel, namun hanya satu yang dipilih.

Cara ini sangat tidak tepat dan akibat penggunaannya adalah munculnya penyimpangan. Yaitu, setiap kali piksel berukuran lebih besar daripada texel, efek kedipan akan diamati. Efek ini terjadi jika bagian poligon cukup jauh dari titik pengamatan sehingga banyak texel yang ditumpangkan pada ruang yang ditempati oleh satu piksel. Perhatikan bahwa jika poligon sangat dekat dengan titik pengamatan dan ukuran texel lebih besar daripada piksel, jenis penurunan kualitas gambar lainnya akan diamati. DI DALAM pada kasus ini, gambar mulai terlihat kotak-kotak. Efek ini terjadi bila teksturnya mungkin cukup besar, namun keterbatasan resolusi layar yang tersedia menghalangi gambar asli untuk ditampilkan dengan benar.

Metode kedua - penyaringan bilinear(Bi-Linear Filtering) terdiri dari penggunaan teknologi interpolasi. Untuk menentukan texel yang akan digunakan untuk interpolasi, digunakan bentuk dasar titik cahaya - lingkaran. Pada dasarnya, sebuah lingkaran didekati dengan 4 texel. Pemfilteran bilinear adalah teknik untuk menghilangkan distorsi gambar (pemfilteran), seperti tekstur "blok" saat diperbesar. Saat memutar atau memindahkan suatu objek secara perlahan (mendekati/menjauh), “melompat” piksel dari satu tempat ke tempat lain mungkin terlihat, mis. kekusutan muncul. Untuk menghindari efek ini, pemfilteran bilinear digunakan, yang menggunakan rata-rata tertimbang dari nilai warna empat texel yang berdekatan untuk menentukan warna setiap piksel dan, sebagai hasilnya, menentukan warna tekstur overlay. Warna piksel yang dihasilkan ditentukan setelah tiga operasi pencampuran dilakukan: pertama, warna dari dua pasang texel dicampur, dan kemudian dua warna yang dihasilkan dicampur.

Kerugian utama penyaringan bilinear adalah bahwa perkiraan dilakukan dengan benar hanya untuk poligon yang terletak sejajar dengan layar atau titik pengamatan. Jika poligon diputar pada suatu sudut (dan ini terjadi pada 99% kasus), pendekatan yang digunakan salah, karena elips harus didekati.

Kesalahan "aliasing kedalaman" muncul dari fakta bahwa objek yang jauh dari sudut pandang tampak lebih kecil di layar. Jika suatu objek bergerak dan menjauh dari titik pandang, gambar tekstur yang ditumpangkan pada objek yang menyusut menjadi semakin terkompresi. Akhirnya, gambar tekstur yang diterapkan pada objek menjadi sangat terkompresi sehingga terjadi kesalahan rendering. Kesalahan rendering ini khususnya menjadi masalah dalam animasi, di mana artefak gerakan tersebut menyebabkan efek kedipan dan gerakan lambat di bagian gambar yang seharusnya diam dan stabil.

Persegi panjang berikut dengan tekstur bilinear dapat berfungsi sebagai ilustrasi efek yang dijelaskan:

Beras. 13.29. Mengarsir suatu objek menggunakan metode pemfilteran bilinear. Munculnya artefak "aliasing kedalaman", yang mengakibatkan beberapa kotak bergabung menjadi satu.

Untuk menghindari kesalahan dan mensimulasikan fakta bahwa objek pada jarak jauh tampak kurang detail dibandingkan objek yang lebih dekat ke titik pandang, teknik yang dikenal sebagai pemetaan mip. Singkatnya, pemetaan mip adalah overlay tekstur dengan derajat atau tingkat detail yang berbeda, ketika, bergantung pada jarak ke titik pengamatan, tekstur dengan detail yang diperlukan dipilih.

Tekstur mip (mip-map) terdiri dari sekumpulan gambar yang telah disaring dan diskalakan sebelumnya. Dalam gambar yang terkait dengan lapisan mip-map, sebuah piksel direpresentasikan sebagai rata-rata empat piksel dari lapisan sebelumnya dengan lebih banyak piksel. resolusi tinggi. Oleh karena itu, gambar yang terkait dengan setiap tingkat tekstur mip berukuran empat kali lebih kecil dibandingkan tingkat peta mip sebelumnya.

Beras. 13.30. Gambar yang terkait dengan setiap level mip-map tekstur bergelombang.

Dari kiri ke kanan kami memiliki mip-map level 0, 1, 2, dst. Semakin kecil gambarnya, semakin banyak detail yang hilang, hingga mendekati akhir ketika tidak ada yang terlihat kecuali piksel abu-abu yang buram.

Level of Detail, atau sederhananya LOD, digunakan untuk menentukan level mip-map (atau level detail) mana yang harus dipilih untuk menerapkan tekstur pada suatu objek. LOD harus sesuai dengan jumlah texel yang dilapis per piksel. Misalnya, jika tekstur terjadi dengan rasio mendekati 1:1, maka LOD-nya akan menjadi 0, yang berarti level mip-map dengan resolusi tertinggi akan digunakan. Jika 4 texel tumpang tindih dengan satu piksel, maka LOD akan menjadi 1 dan level mip berikutnya dengan resolusi lebih rendah akan digunakan. Biasanya, ketika menjauh dari titik pengamatan, objek yang paling layak mendapat perhatian memiliki lebih banyak perhatian bernilai tinggi LOD.

Meskipun mip-texturing memecahkan masalah kesalahan penghalusan kedalaman, penggunaannya dapat menyebabkan munculnya artefak lain. Saat objek bergerak semakin jauh dari titik pengamatan, terjadi transisi dari level mip-map rendah ke level tinggi. Ketika suatu objek berada dalam keadaan transisi dari satu level mip-map ke level lainnya, tipe khusus kesalahan visualisasi yang dikenal sebagai "mip-banding" - banding atau laminasi, mis. batas transisi yang terlihat jelas dari satu level mip-map ke level lainnya.

Beras. 13.31. Pita persegi panjang terdiri dari dua segitiga bertekstur gambar seperti gelombang, di mana artefak "mip-banding" ditandai dengan panah merah.

Masalah kesalahan "mip-banding" sangat akut dalam animasi, karena fakta bahwa mata manusia sangat sensitif terhadap perpindahan dan dapat dengan mudah melihat transisi tajam antara tingkat penyaringan saat bergerak mengelilingi suatu objek.

Penyaringan trilinear(pemfilteran trilinear) adalah metode ketiga yang menghilangkan artefak mip-banding yang terjadi saat tekstur mip digunakan. Dengan pemfilteran trilinear, untuk menentukan warna suatu piksel, diambil nilai warna rata-rata delapan texel, diambil empat dari dua tekstur yang berdekatan, dan sebagai hasil dari tujuh operasi pencampuran, warna piksel ditentukan. Saat menggunakan pemfilteran trilinear, dimungkinkan untuk menampilkan objek bertekstur dengan transisi mulus dari satu level mip ke level berikutnya, yang dicapai dengan menentukan LOD dengan menginterpolasi dua level peta mip yang berdekatan. Dengan demikian menyelesaikan sebagian besar masalah yang terkait dengan tekstur mip dan kesalahan akibat penghitungan kedalaman pemandangan yang salah ("aliasing kedalaman").

Beras. 13.32. Peta MIP Piramida

Contoh penggunaan pemfilteran trilinear diberikan di bawah ini. Di sini sekali lagi persegi panjang yang sama digunakan, bertekstur dengan gambar seperti gelombang, tetapi dengan transisi yang mulus dari satu level mip ke level berikutnya melalui penggunaan pemfilteran trilinear. Perhatikan bahwa tidak ada kesalahan rendering yang nyata.

Beras. 13.33. Persegi panjang bertekstur dengan gambar seperti gelombang ditampilkan di layar menggunakan tekstur mip dan pemfilteran trilinear.

Ada beberapa cara untuk menghasilkan tekstur MIP. Salah satunya adalah dengan mempersiapkannya terlebih dahulu menggunakan paket grafis seperti Adobe FotoShop. Cara lain adalah dengan menghasilkan tekstur MIP dengan cepat, mis. selama eksekusi program. Tekstur MIP yang telah disiapkan sebelumnya berarti tambahan 30% ruang disk untuk tekstur dalam instalasi dasar game, tetapi memungkinkan metode yang lebih fleksibel untuk mengelola pembuatannya dan memungkinkan Anda menambahkan berbagai efek dan detil tambahan tingkat MIP yang berbeda.

Ternyata mipmapping trilinear adalah yang terbaik?

Tentu saja tidak. Terlihat bahwa masalahnya tidak hanya pada rasio ukuran piksel dan texel, tetapi juga pada bentuk masing-masingnya (atau lebih tepatnya pada rasio bentuk).

Metode tekstur mip bekerja paling baik untuk poligon yang berhadapan langsung dengan sudut pandang. Namun, poligon yang miring terhadap titik pengamatan membengkokkan tekstur overlay sehingga piksel dapat di-overlay berbagai jenis dan area bentuk persegi pada gambar tekstur. Metode tekstur mip tidak memperhitungkan hal ini dan akibatnya gambar tekstur terlalu buram, seolah-olah menggunakan texel yang salah. Untuk mengatasi masalah ini, Anda perlu mengambil sampel lebih banyak texel yang membentuk tekstur, dan Anda perlu memilih texel ini dengan mempertimbangkan bentuk piksel yang "dipetakan" dalam ruang tekstur. Metode ini disebut penyaringan anisotropik(“penyaringan anisotropik”). Tekstur mip konvensional disebut "isotropik" (isotropik atau seragam) karena kita selalu memfilter wilayah persegi texel. Penyaringan anisotropik berarti bentuk wilayah texel yang kita gunakan berubah tergantung keadaan.

Untuk memahami perbedaan antara algoritma pemfilteran yang berbeda, Anda harus terlebih dahulu memahami apa yang coba dilakukan pemfilteran. Layar Anda memiliki resolusi tertentu dan terdiri dari apa yang disebut piksel. Resolusi ditentukan oleh jumlah piksel. Papan 3D Anda harus menentukan warna masing-masing piksel ini. Dasar penentuan warna piksel adalah gambar tekstur yang ditumpangkan pada poligon yang terletak dalam ruang tiga dimensi. Gambar tekstur terdiri dari piksel yang disebut texel. Pada dasarnya, texel ini adalah piksel dari gambar 2D yang ditumpangkan pada permukaan 3D. Pertanyaan utama apakah ini: texel apa (atau texel apa) yang menentukan warna piksel di layar?

Bayangkan masalah berikut: katakanlah layar Anda berupa lempengan dengan banyak lubang (anggap saja pikselnya punya bentuk lingkaran). Setiap lubang adalah piksel. Jika Anda melihat melalui lubang tersebut, Anda akan melihat warnanya dalam kaitannya dengan pemandangan tiga dimensi di balik lempengan tersebut. Sekarang bayangkan seberkas cahaya melewati salah satu lubang ini dan mengenai poligon bertekstur yang terletak di belakangnya. Jika poligon terletak sejajar dengan layar (yaitu pelat imajiner kita yang berlubang), maka berkas cahaya yang mengenainya membentuk titik cahaya bulat (lihat Gambar 1). Sekarang, dengan menggunakan imajinasi Anda lagi, mari kita buat poligon berputar pada porosnya dan pengetahuan paling sederhana akan memberi tahu Anda bahwa bentuk titik cahaya akan berubah, dan bukannya bulat, ia akan menjadi elips (lihat Gambar 2 dan 3). Anda mungkin bertanya-tanya apa hubungan titik cahaya ini dengan masalah penentuan warna suatu piksel. Pada dasarnya, semua poligon yang terletak di titik cahaya ini menentukan warna piksel. Semua yang kami bahas di sini adalah pengetahuan dasar yang perlu Anda ketahui agar dapat memahaminya berbagai algoritma penyaringan.

Anda dapat melihat berbagai bentuk titik cahaya menggunakan contoh berikut:


Beras. 1

Beras. 2


Beras. 3

1. Pengambilan Sampel Titik

Pengambilan Sampel Titik - pengambilan sampel titik. Ini adalah cara paling sederhana untuk menentukan warna piksel berdasarkan gambar tekstur. Anda hanya perlu memilih texel yang paling dekat dengan pusat titik cahaya. Tentu saja Anda salah, karena warna sebuah piksel ditentukan oleh beberapa texel, dan Anda hanya memilih satu. Anda juga tidak memperhitungkan fakta bahwa bentuk titik cahaya bisa berubah.

Keuntungan utama dari metode pemfilteran ini adalah persyaratan bandwidth memori yang rendah, karena untuk menentukan warna piksel Anda hanya perlu memilih satu texel dari memori tekstur.

Kerugian utamanya adalah ketika poligon ditempatkan lebih dekat ke layar (atau titik pandang), jumlah piksel akan lebih besar daripada jumlah texel, sehingga menghasilkan blok dan penurunan kualitas gambar secara keseluruhan.

Namun tujuan utama penggunaan filtering bukanlah untuk meningkatkan kualitas sekaligus mengurangi jarak dari titik pengamatan ke poligon, melainkan untuk menghilangkan efek kesalahan penghitungan kedalaman pemandangan (aliasing kedalaman).

2. Penyaringan Bi-Linear

Penyaringan Bi-Linear - pemfilteran bilinear. Terdiri dari penggunaan teknologi interpolasi. Dengan kata lain, untuk contoh kita, untuk menentukan texel yang harus digunakan untuk interpolasi, digunakan bentuk dasar titik cahaya - lingkaran. Pada dasarnya, sebuah lingkaran didekati dengan 4 texel. Metode penyaringan ini jauh lebih baik daripada pengambilan sampel titik karena sebagian memperhitungkan bentuk titik cahaya dan menggunakan interpolasi. Ini berarti bahwa jika poligon terlalu dekat dengan layar atau sudut pandang, lebih banyak texel yang diperlukan untuk interpolasi daripada yang sebenarnya tersedia. Hasilnya adalah gambar buram yang tampak bagus, namun sebenarnya adil efek samping.

Kerugian utama dari pemfilteran bilinear adalah bahwa perkiraan dilakukan dengan benar hanya untuk poligon yang terletak sejajar dengan layar atau titik pengamatan. Jika poligon diputar miring (dan ini terjadi pada 99% kasus), maka Anda menggunakan perkiraan yang salah. Masalahnya adalah Anda menggunakan perkiraan lingkaran padahal seharusnya Anda memperkirakan elips. Masalah utamanya adalah pemfilteran bilinear memerlukan pembacaan 4 texel dari memori tekstur untuk menentukan warna setiap piksel yang ditampilkan di layar, yang berarti kebutuhan bandwidth memori meningkat empat kali lipat dibandingkan dengan pemfilteran titik demi titik.

3. Pemfilteran Tri-Linear

Pemfilteran Tri-Linear - pemfilteran trilinear adalah simbiosis dari pemfilteran tekstur mip dan bilinear. Pada dasarnya, Anda melakukan pemfilteran bilinear pada dua level mip, yang memberi Anda 2 texel, satu untuk setiap level mip. Warna piksel yang seharusnya ditampilkan di layar ditentukan dengan menginterpolasi warna dua tekstur mip. Pada dasarnya, level mip adalah versi lebih kecil dari tekstur aslinya yang telah dihitung sebelumnya, artinya kita mendapatkan perkiraan yang lebih baik dari texel yang terletak di titik cahaya.

Teknik ini menyediakan filtrasi yang lebih baik, tetapi hanya memiliki keuntungan kecil sebelum penyaringan bilinear. Persyaratan bandwidth memori dua kali lipat dari pemfilteran bilinear karena Anda perlu membaca 8 texel dari memori tekstur. Penggunaan mipmapping memberikan perkiraan yang lebih baik (menggunakan lebih banyak texel yang terletak di titik terang) di seluruh texel di titik terang, berkat penggunaan tekstur mip yang telah dihitung sebelumnya.

4. Penyaringan anisotropik

Penyaringan anisotropik - penyaringan anisotropik. Jadi untuk benar-benar mendapatkan hasil yang baik, Anda harus ingat bahwa semua texel di titik cahaya menentukan warna piksel. Anda juga harus ingat bahwa bentuk titik cahaya berubah seiring dengan perubahan posisi poligon relatif terhadap titik pengamatan. Sampai saat ini kami hanya menggunakan 4 texel, bukan semua texel yang tercakup dalam titik cahaya. Ini berarti bahwa semua teknik penyaringan ini menghasilkan hasil yang terdistorsi ketika poligon terletak lebih jauh dari layar atau dari titik pengamatan, karena Anda tidak menggunakan informasi yang cukup. Faktanya, Anda memfilter secara berlebihan di satu arah dan tidak cukup memfilter di semua arah lainnya. Satu-satunya keuntungan dari semua pemfilteran yang dijelaskan di atas adalah kenyataan bahwa ketika mendekati titik pandang, gambar tampak tidak terlalu kotak-kotak (walaupun ini hanya efek samping). Jadi, untuk mencapai kualitas terbaik, kita harus menggunakan semua texel yang tercakup dalam titik terang dan rata-rata nilainya. Namun, hal ini berdampak serius lebar pita memori - mungkin jumlahnya tidak cukup, dan melakukan sampel seperti itu dengan rata-rata adalah tugas yang tidak sepele.

Anda dapat menggunakan berbagai filter untuk memperkirakan bentuk titik cahaya sebagai elips untuk beberapa kemungkinan sudut poligon relatif terhadap sudut pandang. Ada teknik pemfilteran yang menggunakan 16 hingga 32 texel dari suatu tekstur untuk menentukan warna suatu piksel. Benar, menggunakan teknik pemfilteran seperti itu memerlukan bandwidth memori yang jauh lebih besar, dan hal ini hampir selalu mustahil dilakukan sistem yang ada visualisasi tanpa menggunakan arsitektur memori yang mahal. Dalam sistem visualisasi yang menggunakan ubin 1, sumber daya bandwidth memori dihemat secara signifikan, yang memungkinkan penggunaan pemfilteran anisotropik. Visualisasi menggunakan pemfilteran anisotropik menyediakan kualitas terbaik gambar, karena kedalaman detail yang lebih baik dan representasi tekstur yang lebih akurat yang ditumpangkan pada poligon yang tidak sejajar dengan layar atau titik pandang.

1 Ubin (ubin) - ubin atau fragmen gambar. Faktanya, ubin adalah bagian dari suatu gambar, biasanya berukuran 32 kali 32 piksel; Penyortiran dilakukan di seluruh area ini untuk menentukan poligon mana yang termasuk dalam ubin ini yang terlihat. Teknologi ubin diimplementasikan dalam chipset VideoLogic/NEC.

Informasi tambahan tentang topik ini dapat dibaca dan.

Bantuan dalam mempersiapkan materi diberikan oleh Kristof Bit(Kekuatan PowerVR)

Dengan munculnya game 3D, mulai muncul masalah yang tidak ada di game 2D: lagipula, sekarang Anda perlu menampilkan gambar tiga dimensi pada monitor datar. Jika objek sejajar dengan bidang layar di dekatnya, tidak ada masalah: satu piksel sama dengan satu texel (texel adalah piksel gambar dua dimensi yang ditumpangkan pada permukaan 3D). Namun apa yang harus dilakukan jika benda tersebut miring atau jauh? Lagi pula, ada beberapa texel per piksel, dan karena monitor memiliki jumlah piksel yang terbatas, warna masing-masing piksel harus dihitung dari beberapa texel melalui proses tertentu - pemfilteran.


Untuk mempermudah pemahaman, mari kita bayangkan setiap piksel adalah “lubang” persegi di monitor, kita menembakkan “sinar cahaya” dari mata, dan texel terletak pada kotak persegi di belakang monitor. Jika kita menempatkan kisi-kisi tersebut sejajar dengan monitor tepat di belakangnya, maka cahaya dari satu piksel hanya akan menutupi satu texel. Sekarang kita akan mulai memindahkan jerujinya - apa yang akan kita dapatkan? Fakta bahwa titik cahaya kita dari satu piksel sudah mencakup lebih dari satu texel. Sekarang mari kita putar kisinya dan dapatkan hal yang sama: satu titik dari satu piksel akan menutupi banyak texel. Tetapi sebuah piksel dapat memiliki satu warna, dan jika terdapat banyak texel di dalamnya, maka kita memerlukan algoritma yang dapat digunakan untuk menentukan warnanya - ini disebut pemfilteran tekstur.


Ini adalah algoritma pemfilteran yang paling sederhana: didasarkan pada fakta bahwa untuk warna piksel kita mengambil warna texel yang paling dekat dengan pusat titik cahaya piksel. Keuntungan dari metode ini jelas - ini memberikan beban paling sedikit pada kartu video. Kekurangannya juga banyak - warna satu texel pusat bisa berbeda secara signifikan dengan warna puluhan bahkan ratusan texel lain yang termasuk dalam titik piksel. Selain itu, bentuk titik itu sendiri dapat berubah secara signifikan, namun pusatnya mungkin tetap berada di tempat yang sama, dan akibatnya warna piksel tidak akan berubah. Nah, kelemahan utamanya adalah masalah "blockiness": ketika ada beberapa texel per piksel (yaitu, objek di sebelah pemutar), maka kita mendapatkan bahwa dengan metode pemfilteran ini, sebagian besar gambar terisi. dengan satu warna, yang mengarah ke “ blok" dengan warna yang sama yang terlihat jelas di layar. Kualitas gambar akhirnya... sungguh buruk:


Maka tidak mengherankan jika penyaringan seperti itu tidak lagi digunakan saat ini.


Dengan berkembangnya kartu video, kekuatannya mulai meningkat, sehingga pengembang game melangkah lebih jauh: jika Anda mengambil satu texel untuk warna sebuah piksel, hasilnya buruk. Oke - mari kita ambil warna rata-rata dari 4 texel dan menyebutnya pemfilteran bilinear? Di satu sisi, semuanya akan menjadi lebih baik - hambatan akan hilang. Namun musuh nomor dua akan datang - keburaman gambar di dekat pemain: hal ini disebabkan oleh fakta bahwa interpolasi memerlukan lebih banyak texel daripada empat.

Tetapi masalah utama bukan ini: pemfilteran bilinear berfungsi dengan baik ketika objek sejajar dengan layar: maka Anda selalu dapat memilih 4 texel dan mendapatkan warna "rata-rata". Namun 99% teksturnya miring relatif terhadap pemutar, dan ternyata kami memperkirakan 4 paralelepiped persegi panjang(atau trapesium) sebagai 4 kotak, yang salah. Dan semakin miring teksturnya, semakin rendah akurasi warnanya dan semakin kuat keburamannya:


Oke, kata pengembang game - karena 4 texel saja tidak cukup, mari kita ambil dua kali empat, dan untuk mencocokkan warna lebih akurat kita akan menggunakan teknologi mip-texturing. Seperti yang sudah saya tulis di atas, semakin jauh tekstur dari pemutar, semakin banyak texel dalam satu piksel, dan semakin sulit kartu video memproses gambar. Tekstur MIP berarti menyimpan tekstur yang sama dalam resolusi berbeda: misalnya, jika ukuran tekstur asli adalah 256x256, maka salinannya disimpan dalam memori dalam 128x128, 64x64, dan seterusnya, hingga 1x1:


Dan sekarang, untuk pemfilteran, tidak hanya tekstur itu sendiri yang diambil, tetapi juga mipmap: tergantung pada apakah teksturnya lebih jauh atau lebih dekat dari pemain, mipmap tekstur yang lebih kecil atau lebih besar diambil, dan sudah ada 4 texel yang paling dekat dengannya. ke tengah piksel diambil, dan analisis bilinear dilakukan filtrasi. Selanjutnya, diambil 4 texel yang paling dekat dengan piksel tekstur aslinya, dan sekali lagi diperoleh warna "rata-rata". Setelah itu, warna "rata-rata" diambil dari warna rata-rata mipmap dan tekstur asli, dan ditetapkan ke piksel - beginilah cara kerja algoritma pemfilteran trilinear. Hasilnya, ini memuat kartu video lebih banyak daripada pemfilteran bilinear (mipmap juga perlu diproses), tetapi kualitas gambarnya lebih baik:


Seperti yang Anda lihat, pemfilteran trilinear benar-benar lebih baik daripada pemfilteran bilinear dan terlebih lagi pemfilteran titik, namun gambar masih menjadi buram pada jarak jauh. Dan gambaran kabur ini disebabkan oleh fakta bahwa kami tidak memperhitungkan fakta bahwa tekstur dapat dimiringkan relatif terhadap pemutar - dan inilah masalah yang dipecahkan oleh pemfilteran anisotropik. Secara singkat, prinsip pengoperasian pemfilteran anisotropik adalah sebagai berikut: tekstur MIP diambil, diatur melintasi arah tampilan, setelah itu nilai warnanya dirata-ratakan dengan warna sejumlah texel tertentu sepanjang arah tampilan. Jumlah texel bervariasi dari 16 (untuk pemfilteran x2) hingga 128 (untuk x16). Sederhananya, alih-alih filter persegi (seperti dalam pemfilteran bilinear), filter memanjang digunakan, yang memungkinkan Anda memilih lebih baik warna yang diinginkan untuk piksel layar. Karena mungkin terdapat satu juta atau lebih piksel di layar, dan setiap texel memiliki berat setidaknya 32 bit (warna 32-bit), pemfilteran anisotropik memerlukan bandwidth memori video yang sangat besar - puluhan gigabyte per detik. Kebutuhan memori yang besar tersebut berkurang karena kompresi tekstur dan caching, namun masih pada kartu video dengan memori DDR atau bus 64-bit, perbedaan antara pemfilteran anisotropik trilinear dan x16 dapat mencapai 10-15% fps, tetapi gambar setelah pemfilteran tersebut ternyata yang terbaik:

Tekstur adalah elemen yang paling penting dari aplikasi 3D saat ini, tanpanya banyak model 3D yang kehilangan daya tarik visualnya. Namun, proses penerapan tekstur pada permukaan bukannya tanpa artefak dan metode yang tepat untuk menekannya. Di dalam dunia permainan 3D Sesekali Anda menemukan istilah khusus seperti “pemetaan mip”, “pemfilteran trilinear”, dll., yang secara khusus merujuk pada metode ini.

Kasus khusus dari efek aliasing yang dibahas sebelumnya adalah efek aliasing pada permukaan bertekstur, yang sayangnya tidak dapat dihilangkan dengan metode multi-atau supersampling yang dijelaskan di atas.

Bayangkan hitam dan putih papan catur besar, ukurannya hampir tak terbatas. Katakanlah kita menggambar papan ini di layar dan melihatnya sedikit miring. Untuk area papan yang cukup jauh, ukuran sel pasti akan mulai mengecil hingga berukuran satu piksel atau kurang. Inilah yang disebut pengurangan tekstur optik (minifikasi). Sebuah "perjuangan" akan dimulai antara piksel tekstur untuk mendapatkan piksel layar, yang akan menyebabkan kedipan yang tidak menyenangkan, yang merupakan salah satu jenis efek aliasing. Meningkatkan resolusi layar (nyata atau efektif) hanya membantu sedikit, karena untuk objek yang cukup jauh detail teksturnya masih menjadi lebih kecil dibandingkan piksel.

Di sisi lain, bagian papan yang paling dekat dengan kita menempati area layar yang besar, dan Anda dapat melihat tekstur piksel yang sangat besar. Ini disebut pembesaran tekstur optik (magnification). Meskipun masalah ini tidak terlalu akut, namun masalah ini juga perlu ditangani untuk mengurangi dampak negatifnya.

Untuk mengatasi masalah tekstur, digunakan apa yang disebut pemfilteran tekstur. Jika Anda melihat proses menggambar objek tiga dimensi dengan tekstur yang ditumpangkan, Anda dapat melihat bahwa penghitungan warna piksel berjalan "terbalik" - pertama, piksel layar ditemukan di tempat titik tertentu dari objek tersebut berada. diproyeksikan, dan kemudian untuk titik ini semua piksel tekstur berada di dalamnya. Memilih piksel tekstur dan menggabungkannya (rata-rata) untuk mendapatkan warna piksel layar akhir disebut pemfilteran tekstur.

Selama proses pembuatan tekstur, setiap piksel layar diberi koordinat di dalam tekstur, dan koordinat ini tidak harus berupa bilangan bulat. Selain itu, sebuah piksel berhubungan dengan area tertentu dalam gambar tekstur, yang mungkin berisi beberapa piksel dari tekstur tersebut. Kami akan menyebut area ini sebagai gambar piksel dalam tekstur. Untuk bagian terdekat dari papan kami, piksel layar menjadi jauh lebih kecil daripada piksel tekstur dan, seolah-olah, terletak di dalamnya (gambar terdapat di dalam piksel tekstur). Sebaliknya, untuk jarak jauh, setiap piksel akan berkurang sejumlah besar titik tekstur (gambar berisi beberapa titik tekstur). Gambar piksel mungkin ada bentuk yang berbeda dan dalam kasus umum adalah segi empat sembarang.

Mari kita pertimbangkan berbagai metode memfilter tekstur dan variasinya.

Tetangga terdekat

Dalam metode paling sederhana ini, warna piksel dipilih menjadi warna piksel tekstur terdekat yang sesuai. Cara ini paling cepat, namun kualitasnya juga paling rendah. Sebenarnya, ini bukan metode pemfilteran khusus, tetapi hanya cara untuk memilih setidaknya beberapa piksel tekstur yang sesuai dengan piksel layar. Ini banyak digunakan sebelum munculnya akselerator perangkat keras, yang penggunaannya secara luas memungkinkan penggunaan metode yang lebih baik.

Penyaringan bilinear

Pemfilteran bilinear menemukan empat piksel tekstur yang paling dekat dengan titik saat ini di layar dan warna yang dihasilkan ditentukan sebagai hasil pencampuran warna piksel tersebut dalam proporsi tertentu.

Pemfilteran tetangga terdekat dan pemfilteran bilinear bekerja cukup baik ketika, pertama, tingkat reduksi teksturnya kecil, dan kedua, ketika kita melihat tekstur pada sudut yang tepat, yaitu. secara frontal. Apa hubungannya ini?

Jika kita mempertimbangkan, seperti dijelaskan di atas, "gambar" piksel layar dalam tekstur, maka jika terjadi pengurangan yang kuat, piksel tersebut akan menyertakan banyak piksel tekstur (hingga semua piksel!). Selain itu, jika kita melihat teksturnya dari sudut tertentu, gambar ini akan sangat memanjang. Dalam kedua kasus tersebut, metode yang dijelaskan tidak akan berfungsi dengan baik, karena filter tidak akan "menangkap" piksel tekstur yang sesuai.

Untuk mengatasi masalah ini, apa yang disebut pemetaan mip dan pemfilteran anisotropik digunakan.

Pemetaan mip

Dengan pengurangan optik yang signifikan, suatu titik pada layar dapat berhubungan dengan cukup banyak piksel tekstur. Artinya penerapan filter terbaik sekalipun akan memerlukan waktu yang cukup lama untuk mendapatkan rata-rata semua poin. Namun, masalahnya dapat diselesaikan dengan membuat dan menyimpan versi tekstur yang nilainya dirata-ratakan terlebih dahulu. Dan pada tahap rendering, cari versi tekstur asli yang diinginkan untuk piksel tersebut dan ambil nilainya.

Istilah mipmap berasal dari bahasa Latin multum in parvo - banyak dalam sedikit. Saat menggunakan teknologi ini, selain gambar tekstur, memori akselerator grafis menyimpan sekumpulan salinan yang diperkecil, masing-masing salinan baru berukuran tepat setengah dari salinan sebelumnya. Itu. untuk tekstur ukuran 256x256, gambar 128x128, 64x64, dll., hingga 1x1 juga disimpan.

Selanjutnya, level mipmap yang sesuai dipilih untuk setiap piksel (semakin besar ukuran “gambar” piksel dalam tekstur, semakin kecil mipmap yang diambil). Selanjutnya, nilai-nilai dalam mipmap dapat dirata-ratakan secara bilinear atau menggunakan metode tetangga terdekat (seperti dijelaskan di atas) dan pemfilteran juga terjadi antara level mipmap yang berdekatan. Jenis penyaringan ini disebut trilinear. Ini memberikan hasil yang sangat berkualitas dan banyak digunakan dalam praktik.


Gambar 9. tingkat peta mip

Namun, masalah dengan gambar piksel yang "memanjang" di tekstur tetap ada. Inilah tepatnya mengapa papan kami terlihat sangat kabur dari kejauhan.

Penyaringan anisotropik

Pemfilteran anisotropik adalah proses pemfilteran tekstur yang secara khusus memperhitungkan kasus gambar piksel memanjang dalam suatu tekstur. Faktanya, alih-alih filter persegi (seperti dalam pemfilteran bilinear), filter memanjang digunakan, yang memungkinkan Anda memilih warna yang diinginkan untuk piksel layar dengan lebih baik. Pemfilteran ini digunakan bersama dengan mipmapping dan memberikan hasil berkualitas sangat tinggi. Namun, ada juga kelemahannya: penerapan pemfilteran anisotropik cukup rumit dan ketika diaktifkan, kecepatan menggambar turun secara signifikan. Pemfilteran anisotropik didukung oleh GPU NVidia dan ATI generasi terbaru. Dan dengan tingkat yang berbeda anisotropi - semakin tinggi level ini, semakin banyak gambar piksel “memanjang” yang dapat diproses dengan benar dan semakin baik kualitasnya.

Perbandingan filter

Hasilnya adalah sebagai berikut: untuk menekan artefak aliasing tekstur, beberapa metode pemfilteran didukung di perangkat keras, berbeda dalam kualitas dan kecepatannya. Metode pemfilteran yang paling sederhana adalah metode tetangga terdekat (yang sebenarnya tidak melawan artefak, tetapi hanya mengisi piksel). Saat ini, pemfilteran bilinear bersama dengan pemetaan mip atau pemfilteran trilinear paling sering digunakan. DI DALAM Akhir-akhir ini GPU mulai mendukung mode pemfilteran kualitas tertinggi - pemfilteran anisotropik.

Pemetaan benjolan

Pemetaan benjolan adalah jenis efek khusus grafis yang dirancang untuk menciptakan kesan permukaan “kasar” atau bergelombang. Baru-baru ini, penggunaan pemetaan benjolan hampir menjadi standar untuk aplikasi game.

Ide utama di balik pemetaan benjolan adalah menggunakan tekstur untuk mengontrol bagaimana cahaya berinteraksi dengan permukaan suatu objek. Ini memungkinkan Anda menambahkan detail kecil tanpa menambah jumlah segitiga. Di alam, kita membedakan permukaan kecil yang tidak rata berdasarkan bayangan: benjolan apa pun akan berwarna terang di satu sisi dan gelap di sisi lain. Faktanya, mata mungkin tidak bisa mendeteksi perubahan bentuk permukaan. Efek ini digunakan dalam teknologi pemetaan benjolan. Satu atau lebih tekstur tambahan diterapkan pada permukaan objek dan digunakan untuk menghitung iluminasi titik-titik objek. Itu. permukaan benda tidak berubah sama sekali, hanya ilusi ketidakteraturan yang tercipta.

Ada beberapa metode pemetaan benjolan, namun sebelum kita membahasnya, kita perlu mengetahui cara mendefinisikan benjolan di permukaan. Seperti disebutkan di atas, tekstur tambahan digunakan untuk ini, dan jenisnya bisa berbeda:

Peta biasa. Dalam hal ini, setiap piksel dari tekstur tambahan menyimpan vektor yang tegak lurus terhadap permukaan (normal), dikodekan sebagai warna. Normals digunakan untuk menghitung iluminasi.

Peta perpindahan. Peta perpindahan adalah tekstur skala abu-abu di mana setiap piksel menyimpan perpindahan dari permukaan aslinya.

Tekstur ini disiapkan oleh desainer model 3D bersama dengan geometri dan tekstur dasar. Ada juga program yang memungkinkan Anda memperoleh peta normal atau peta perpindahan secara otomatis

Pemetaan benjolan yang telah dihitung sebelumnya

Tekstur, yang akan menyimpan informasi tentang permukaan suatu objek, dibuat terlebih dahulu, sebelum tahap rendering, dengan menggelapkan beberapa titik tekstur (dan juga permukaan itu sendiri) dari objek dan menyorot yang lain. Selanjutnya, saat menggambar, tekstur biasa digunakan.

Metode ini tidak memerlukan trik algoritmik apa pun saat menggambar, namun sayangnya, perubahan pencahayaan permukaan tidak terjadi ketika posisi sumber cahaya atau pergerakan objek berubah. Dan tanpa ini, simulasi permukaan tidak rata yang benar-benar berhasil tidak dapat dibuat. Metode serupa digunakan untuk bagian statis dari pemandangan, sering kali untuk arsitektur level, dll.

Pemetaan benjolan menggunakan embossing (Emboss benjolan pemetaan)

Teknologi ini digunakan pada prosesor grafis pertama (NVidia TNT, TNT2, GeForce). Peta perpindahan dibuat untuk objek tersebut. Menggambar terjadi dalam dua tahap. Pada tahap pertama, peta perpindahan ditambahkan piksel demi piksel. Dalam hal ini, salinan kedua digeser agak jauh ke arah sumber cahaya. Ini menghasilkan efek berikut: nilai perbedaan positif ditentukan oleh piksel yang menyala, nilai negatif ditentukan oleh piksel dalam bayangan. Informasi ini digunakan untuk mengubah warna piksel tekstur yang mendasarinya.

Pemetaan benjolan menggunakan embossing tidak memerlukan perangkat keras yang mendukung pixel shader, namun tidak berfungsi dengan baik untuk ketidakteraturan permukaan yang relatif besar. Selain itu, objek tidak selalu terlihat meyakinkan; hal ini sangat bergantung pada sudut pandang Anda terhadap permukaannya.

Pemetaan benjolan piksel

Pemetaan benjolan piksel saat ini merupakan puncak pengembangan teknologi tersebut. Dalam teknologi ini, segala sesuatunya dihitung sejujur ​​​​mungkin. Pixel shader diberikan peta normal sebagai masukan, dari mana nilai normal untuk setiap titik objek diambil. Nilai normal kemudian dibandingkan dengan arah sumber cahaya dan dihitung nilai warnanya.

Teknologi ini didukung pada peralatan mulai dari kartu video level GeForce2.

Jadi, kita telah melihat bagaimana kita dapat menggunakan kekhasan persepsi manusia terhadap dunia untuk meningkatkan kualitas gambar yang dibuat oleh game 3D. Selamat menjadi pemilik kartu video generasi terbaru NVidia GeForce, ATI Radeon(namun, dan bukan hanya yang terakhir) dapat secara mandiri bermain dengan beberapa efek yang dijelaskan, karena pengaturan untuk de-aliasing dan pemfilteran anisotropik tersedia dari opsi driver. Metode ini dan metode lainnya, yang berada di luar cakupan artikel ini, berhasil diterapkan oleh pengembang game di produk baru. Secara umum, kehidupan menjadi lebih baik. Sesuatu yang lain akan terjadi!

Kembali

×
Bergabunglah dengan komunitas “koon.ru”!
Berhubungan dengan:
Saya sudah berlangganan komunitas “koon.ru”