Я читаю дивовижний підручник з OpenGL . Це дійсно чудово, повірте мені. Тема, в якій я зараз перебуваю, - Z-буфер. Окрім пояснення того, про що йдеться, автор зазначає, що ми можемо виконувати спеціальні глибинні тести, такі як GL_LESS, GL_ALWAYS тощо. Він також пояснює, що власне значення значень глибини (яка є найвищою, а яка - ні) також може бути налаштовані. Я розумію поки що. І тоді автор говорить щось неймовірне:
Діапазон zNear може бути більшим, ніж діапазон zFar; якщо вона є, то значення віконного простору будуть перетворені в залежності від того, що є найбільш близьким або віддаленим від глядача.
Раніше говорилося, що значення Z-вікна-простору 0 є найближчим, а 1 - найдальшим. Однак, якщо наші значення Z-простору для кліпу були заперечені, глибина 1 була б найближчою до виду, а глибина 0 - найдальшою. Тим не менш, якщо ми перевернемо напрямок тесту на глибину (GL_LESS до GL_GREATER тощо), ми отримаємо точно такий же результат. Так що це справді просто умовність. Дійсно, перегортання знака Z і глибинний тест колись були життєво важливою оптимізацією продуктивності для багатьох ігор.
Якщо я правильно розумію, продуманий показник Z і глибинний тест - це не що інше, як зміна <
порівняння на >
порівняння. Отже, якщо я правильно розумію, і автор не бреше і не вигадує речі, то перехід <
до >
звичного є важливою оптимізацією для багатьох ігор.
Чи автор вигадує, чи я щось не розумію, чи справді це було колись <
повільніше ( життєво , як каже автор), ніж >
?
Дякуємо, що роз’яснили цю досить цікаву справу!
Відмова: Я повністю усвідомлюю, що складність алгоритму є основним джерелом для оптимізацій. Крім того, я підозрюю, що нині це однозначно не має ніякого значення, і я не прошу цього нічого оптимізувати. Мені просто надзвичайно, болісно, можливо, надзвичайно цікаво.