Unity-Shader- визуализации очереди, ZTEST, ZWrite

ZTEST (глубина тест) и ZWrite (глубина записи)

Перед вынесением примера очереди, хотя обратный порядок оказывается более, но отношения между блоком объекта по-прежнему верны, это г-буфером кредит, независимо от того, как мы предоставляем заказ, все еще в состоянии поддерживать правильные отношения прикуса , И мы призываем г-буфера через ZTEST и ZWrite достичь.

Первый взгляд на ZTEST, ZTEST а именно: глубина тест, так называемый тест, то есть, для текущего объекта на экране (точнее сказать, что фреймбуфера), соответствующий пикселю, сам объект глубины значения сравниваются с текущим значением глубины кэша пикселей Если он будет принят, это будет цвет цвета объекта буфера записывается в пикселе, в противном случае они не будут писать буфер цвета. Более состояние ZTEST предусмотрено.

ZTEST Меньше (глубина меньше, чем ток через буфер)
ZTEST Большой (глубина больше, чем ток через буфер)
ZTEST LEqual (глубина меньше, чем равный току через буфер)
ZTEST GEqual (глубина больше, чем равен току через буфер)
ZTEST Равное (глубина равен току через буфер)
ZTEST NotEqual (глубина не равен току через буфер)
ZTEST всегда (независимо через)
Следует отметить, что ZTEST Off эквивалентно ZTEST Всегда, полностью закрыт на глубину, равную испытанию.

Вот взгляд на ZWrite, ZWrite относительно просто, только два состояния, ZWrite On (открытая глубокая запись) и ZWrite Off (закрытая глубина написано). Когда мы переходим от глубины письма, объект визуализируются против объекта на экране (точнее, буфер кадра) на глубине каждого пиксела, записывается в буфер глубины, с другой стороны, если она ZWrite Выкла, объекты имени глубина не будет записана в буфер глубины. Однако, является ли объект записывается в глубину, в дополнение к ZWrite это состояние, оно является более важным является глубина необходимости через, что ZTEST через, если ZTEST не пройдет, то это не будет написано на глубину. Как состояние рендеринга по умолчанию ZWrite On и ZTEST LEqual, если текущий тест глубины не удается, позиция соответствующего пикселя, было более уместно , что передняя яма, даже если написано, что нет оригинала ближе к вершине , то нет необходимости писать глубину. Таким образом, выше делится на два случая ZTEST без и, в ZWrite открытия и закрытия два случая, а затем, в общей сложности четыре случая:
1. пройден тест глубины, глубина записи открыта; глубина буфера записи, цвет записи буфер;
2. тест пройдена глубина, глубина списания; не записывается в буфер глубины, буфер цвета записываются;
3. испытание на глубину не передается, глубина записи открытой, не записывается в буфер глубины, цвет не пишет буфер,
тест 4. глубины не передается, глубина списания, а не записывается в буфер глубины, буфер цвета не написано,
Here Вставка рисунка Описание
написать несколько примеров простых малого взгляд ZTEST, ZWrite эти и визуализация состояние очереди рендеринг результатов контроля.

Метод а: Пусть зеленый объект в передней части кубы не блокируется, один путь, чтобы закрыть переднюю глубину синего куба написано:

Here Вставка рисунка Описание
В силе сказанного выше экспериментальных результатов, мы знаем, что, в соответствии с порядком рендеринга спереди назад, в первую очередь делают синие объекты синих объекты, проверяя глубину, кэш записи цвета, но закрыли глубину запись, значение буфера синего углубленной еще часть Макс по умолчанию, что делает за зеленый куб, тест глубины еще будет успешным, записи цвета буфера и записать глубину, он не играл в тенистом синюю роль куб.

Второй метод: Другой способ пусть зеленый продавливают через тест глубины:

Here Вставка рисунка Описание
Другой пример использует рендеринг по умолчанию куб шейдера, зеленый воли ZTEST чтобы в любом случае, то есть в любом случае, глубина испытание прошло, зеленый цвет куб кэша записи, если нет другого покрытия, а затем окончательного выход зеленого цвета.

Так что, если красный также открыл ZTEST Always Что происходит?

Here Вставка рисунка Описание
После того, как красные кубы также используются ZTEST Всегда, красный зеленый частично закрыт для отображения в красном цвете. Если мы изменим мою визуализацию очереди, так что перед визуализацией зеленый красного, то результат будет другой вопрос:
Here Вставка рисунка Описание
замена очереди рендеринга, так что зеленый делают очереди +1, оказанный после по умолчанию очереди геометрии, в конце концов перекрывающихся части изменили обратно на зеленый. Видимый, когда ZTEST через, по одной записи цвет буфер перезаписываются, а это означает , что конечный результат является последним тонированным цветовым объектом.

Посмотрите еще раз на соответствующей части Большого, какую роль, на этот раз все остальные из нас, используя состояние рендеринга по умолчанию, зеленый куб шейдера в ZTEST к большему:

Этот эффект больше удовольствия, хотя мы обнаружили, что при сравнении глубины окклюзии передней части синего куба, синий зеленый конечных каверов, это желаемый результат, но и другие его части, куда идти? Простой анализ, делая заказ от передней к задней части, что синий был первый рендеринг, глубина по умолчанию Макс, глубина для удовлетворения условия LEqual синий куб, он записывается в буфер глубины, а затем стали наносить зеленый, перекрывая часть синяя глубина куб буфер записываются, в то время как зеленый больше, чем значение глубины, чтобы удовлетворить условие глубокого синего цвета, проходит тест глубины, перекрытой часть обновления зеленой цвет, красные кубики с перекрытой частью, и, наконец, делает красные кубики, ранее тест глубины части, передняя часть меньше, чем тест глубины не удается, перекрывающаяся часть не обновляется красной, зеленый части окончательного перекрытия. Зеленый куб не совпадает с остальной частью почему она исчезла? На самом деле, потому что зеленый рендеринг куба, в дополнении к визуализации места синей информации о глубине кубы, информационные глубин других частей Макс, синяя часть решения с большим, безусловно, не получится, то не было бы никакого обновления цвета.

На самом деле, есть интересный эффект может испытать ZTEST Greater быть достигнут, это игра, которая часто появляется, когда игрок закрыт другими объектами сцены, блокируя часть света будет показывать эффект Х-, в самом деле, при визуализации игрока к увеличению пропуск, Pass нормального рендеринга по умолчанию, более широкое использование Прохождения на глубине тестирования Большого, так что, когда игрок затемняется другими частями стопора будет отображаться, с эффектом визуализации инсульта, с другой стороны вы все еще можете использовать оригинальный Pass.
Опубликовано 62 оригинальные статьи · вона похвала 5 · Просмотров 3896

рекомендация

отblog.csdn.net/qq_42194657/article/details/104235289