Я пытаюсь написать шейдер на основе трассировки лучей, в котором для каждого пикселя квадрата я вычисляю начало и направление луча из камеры и проверяю пересечение с моей сценой (в настоящее время сферой).
Если происходит пересечение, я хочу установить значение буфера глубины на глубину пересечения, а не оставить его в качестве глубины четырехугольника, поэтому я пишу в DEPTH.Я знаю, что это означает, что раннее z-отсечение для моего пиксельного шейдера будет отключено, так как невозможно определить, будет ли мой пиксель передним или задним, пока он не завершится для этого пикселя.
Однако одинСвойство моего шейдера заключается в том, что глубина всегда будет глубже, чем та, которая использовалась бы для раннего z-выбраковки, и поэтому все еще допустимо выполнять раннее z-отбраковку, поскольку то, что находится перед квадратором, гарантированно будетперед тем, что пересекает луч.Я смутно помню, что был какой-то способ сообщить конвейеру рендеринга, что, хотя глубина изменялась, она всегда будет изменяться на более глубокую, и это оставляло бы подходящие оптимизации, которые в противном случае были бы отключены.Я не смог найти, что это было, хотя, несмотря на большое количество Google, кто-нибудь знает, что это такое?Если этого на самом деле не существует, и я неправильно помню, есть ли способ принудительно включить раннее z-отсечение, даже в таких случаях, как мой?