Demonstrasi Z-fighting dengan berbagai warna dan tekstur di atas sebuah latar belakang abu-abu.

Z-fighting, juga disebut stitching atau planefighting, adalah fenomena dalam perenderan 3D yang terjadi ketika dua atau lebih primitif memiliki jarak yang sangat mirip dengan kamera. Hal ini akan menyebabkan keduanya memiliki nilai yang hampir mirip atau identik dalam z-buffer yang melacak kedalaman. Ini berarti bahwa ketika piksel tertentu sedang dirender, tidak jelas mana dari dua primitif yang digambar dalam piksel itu karena z-buffer tidak dapat membedakan dengan tepat mana yang lebih jauh dari yang lain.[1]

Hal ini sering terjadi pada poligon koplanar, dimana dua sisi menempati ruang yang pada dasarnya sama, tanpa adanya satupun yang berada di depan. Akibatnya, piksel yang terpengaruh dirender dengan fragmen dari satu poligon atau lainnya secara sembarangan dengan cara yang ditentukan berdasarkan presisi dari z-buffer. Hal ini juga dapat bervariasi saat pemandangan atau posisi kamera diubah, menyebabkan satu poligon "memenangkan" uji Z, lalu diikuti yang lain dan seterusnya. Efek keseluruhannya adalah rasterisasi dua poligon yang berkedip-kedip yang "berebut" mewarnai piksel layar.

Masalah ini disebabkan oleh presisi sub-piksel yang terbatas, kesalahan dalam pembulatan floating point dan fixed point. Semakin tinggi tingkat presisi z-buffer yang digunakan, maka semakin kecil kemungkinan z-fighting akan terjadi. Namun untuk poligon koplanar, hal ini tidak dapat dihindari kecuali adanya tindakan korektif.

Pencegahan atau mitigasi

sunting
Efek yang terlihat di dua poligon koplanar

Z-fighting dapat dihindari melalui penggunaan kedalaman buffer resolusi lebih tinggi dengan z-buffering dalam beberapa skenario, atau hanya memindahkan suatu poligon lebih jauh.[2] Z-fighting yang tidak dapat diselesaikan dengan cara tersebut sering kali menggunakan metode buffer stensil atau dengan menerapkan offset z-buffer ruang pasca-transformasi ke satu poligon yang tidak memengaruhi bentuk yang diproyeksikan di layar tetapi memengaruhi nilai z-buffer untuk menghilangkan tumpang tindih selama interpolasi dan perbandingan piksel.

Teknik lain yang digunakan adalah beralih ke buffer Z logaritmik dengan membalikkan nilai Z, dan teknik ini digunakan dalam permainan Grand Theft Auto V. Karena cara penyandiannya, angka poin mengambang memiliki presisi yang jauh lebih tinggi saat mendekati 0. Di sini, pembalikan Z dengan buffer Z logaritmik dapat menghasilkan presisi yang lebih tinggi saat menyimpan kedalaman objek yang sangat jauh, sehingga dapat mengurangi Z-fighting secara signifikan.[3]

Referensi

sunting
  1. ^ "LearnOpenGL - Depth testing". learnopengl.com. Diakses tanggal 2021-07-01.
  2. ^ "Depth Buffer Precision - OpenGL Wiki". www.khronos.org. Diakses tanggal 2021-06-30.
  3. ^ Courrèges, Adrian (2 November 2015). "GTA V - Graphics Study". AdrianCourreges.com. Diakses tanggal 20 June 2018.

📚 Artikel Terkait di Wikipedia

Durian merah

Dryland as an Area of Agro-Tourism and Kalimantan's Local Fruit Producing for Buffer New National Capital Region*)". Gontor Agrotech Science Journal. 9 (2).

PlayStation 2

1024-bit, baca/tulis 512-bit) Konfigurasi piksel: RGB:alpha, 24:8, 15:1; Buffer Z 16-, 24-, atau 32-bit Kedalaman warna tampilan: 32-bit (RGBA: masing-masing

Kartu grafis

data lain serta gambar layar, seperti Z-buffer, yang mengelola koordinat kedalaman dalam grafik 3D, tekstur, buffer vertex, dan program shader yang dikompilasi

Tembolok (komputer)

latensi. Manfaat ini ada bahkan jika data yang di-buffer ditulis ke buffer sekali dan dibaca dari buffer sekali. Sebuah tembolok juga meningkatkan kinerja

Coomassie briliant blue

absorbansi maksimumnya bila tidak berikatan dengan protein pada larutan buffer sitrat dengan pH 3 adalah pada panjang gelombang 555 nm. (Inggris) Roe S

Glosarium kimia

Larutan penyangga (Buffer). Larutan (a) asam atau basa lemah dan (b) garamnya; kedua komponen tersebut harus ada. Larutan buffer memiliki kemampuan untuk

Daftar istilah fotografi

(en:Bromide) (en:Brownie camera) Kamera Brownie (en:BS) (en:Bubble level) (en:Buffer) Buffer (en:Bulb) (en:Bug) (en:Build quality) (en:Bulb) (en:Bulk film) (en:Bundled

Z shell

Peningkatan penanganan variabel/larik Memperbarui perintah multi-baris dalam buffer tunggal Koreksi ejaan Berbagai mode kompatibilitas, contoh: Zsh dapat berpura-pura