Я читаю потрясающий учебник OpenGL . Это действительно здорово, поверь мне. Тема, которой я сейчас занимаюсь, это Z-буфер. Помимо объяснения, что это такое, автор упоминает, что мы можем выполнять пользовательские тесты глубины, такие как GL_LESS, GL_ALWAYS и т. Д. Он также объясняет, что фактическое значение значений глубины (которое является верхним, а что нет) также может быть настроены. Я так понимаю, до сих пор. И тогда автор говорит что-то невероятное:
Диапазон zNear может быть больше диапазона zFar; если это так, то значения пространства окна будут изменены на противоположные в терминах того, что является ближайшим или самым дальним от зрителя.
Ранее было сказано, что значение Z в пространстве окна 0 является ближайшим, а 1 - самым дальним. Однако, если бы наши значения Z пространства клипа были сведены на нет, глубина 1 была бы самой близкой к представлению, и глубина 0 была бы самой дальней. Тем не менее, если мы изменим направление проверки глубины (от GL_LESS до GL_GREATER и т. Д.), Мы получим точно такой же результат. Так что это действительно просто соглашение. Действительно, изменение знака Z и проверка глубины были когда-то жизненно важной оптимизацией производительности для многих игр.
Если я правильно понимаю, с точки зрения производительности переключение знака Z и проверка глубины - не что иное, как изменение <
сравнения к >
сравнению. Так что, если я правильно понимаю, и автор не лжет и не выдумывает, то переход <
на >
ранее использовался как жизненная оптимизация для многих игр.
Автор придумывает, я что-то неправильно понимаю, или это действительно тот случай, который когда-то <
был медленнее ( жизненно , как говорит автор), чем >
?
Спасибо за разъяснение этого довольно любопытного вопроса!
Отказ от ответственности: я полностью осознаю, что сложность алгоритма является основным источником для оптимизации. Кроме того, я подозреваю, что в настоящее время это определенно не будет иметь никакого значения, и я не прошу это оптимизировать что-либо. Мне просто чрезвычайно, больно, может быть, чрезмерно любопытно.