Z-fighting

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

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
- ^ "LearnOpenGL - Depth testing". learnopengl.com. Diakses tanggal 2021-07-01.
- ^ "Depth Buffer Precision - OpenGL Wiki". www.khronos.org. Diakses tanggal 2021-06-30.
- ^ Courrèges, Adrian (2 November 2015). "GTA V - Graphics Study". AdrianCourreges.com. Diakses tanggal 20 June 2018.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.