Saya membaca tutorial OpenGL yang luar biasa . Ini sangat bagus, percayalah. Topik saya saat ini adalah Z-buffer. Selain menjelaskan tentang apa semua ini, penulis menyebutkan bahwa kami dapat melakukan pengujian kedalaman khusus, seperti GL_LESS, GL_ALWAYS, dll. Ia juga menjelaskan bahwa makna sebenarnya dari nilai kedalaman (yang atas dan yang tidak) juga dapat menjadi disesuaikan. Saya mengerti sejauh ini. Dan kemudian penulis mengatakan sesuatu yang luar biasa:
Rentang zNear bisa lebih besar dari rentang zFar; jika ya, maka nilai ruang jendela akan dibalik, dalam hal apa yang merupakan terdekat atau terjauh dari pemirsa.
Sebelumnya, dikatakan bahwa nilai Z ruang-jendela 0 adalah yang terdekat dan 1 adalah yang terjauh. Namun, jika nilai Z ruang klip kami dinegasikan, kedalaman 1 akan paling dekat dengan tampilan dan kedalaman 0 akan menjadi yang terjauh. Namun, jika kita membalikkan arah uji kedalaman (GL_LESS ke GL_GREATER, dll), kita mendapatkan hasil yang sama persis. Jadi itu benar-benar hanya sebuah konvensi. Memang, membalik tanda Z dan uji kedalaman pernah menjadi optimasi kinerja yang vital untuk banyak game.
Jika saya mengerti benar, kinerja-bijaksana, membalik tanda Z dan tes kedalaman tidak lain hanyalah mengubah <
perbandingan ke >
perbandingan. Jadi, jika saya mengerti benar dan penulis tidak berbohong atau membuat sesuatu, kemudian mengubah <
untuk >
digunakan menjadi optimasi penting untuk banyak permainan.
Apakah penulis membuat segalanya, aku salah paham sesuatu, atau itu memang terjadi bahwa setelah <
lebih lambat ( vital , sebagai penulis mengatakan) dari >
?
Terima kasih telah menjelaskan masalah yang cukup aneh ini!
Penafian: Saya sepenuhnya menyadari bahwa kompleksitas algoritma adalah sumber utama untuk optimasi. Selain itu, saya menduga bahwa saat ini pasti tidak akan membuat perbedaan dan saya tidak meminta ini untuk mengoptimalkan apa pun. Saya hanya sangat, sangat menyakitkan, mungkin sangat ingin tahu.