После долгих проб и ошибок я наконец могу отрендерить свой основной полноэкранный квад.Тем не менее, он последовательно обращается перед всем остальным.Я пытался изменить значение глубины (Z
ось) с точностью до десятой доли от 0
до 1
.Я не могу найти другую документацию по этой конкретной проблеме.
Квадрат создан в моем GeometryShader
;В качестве примера я включил первую точку, но понимаю, что точки создаются и добавляются по часовой стрелке с левой стороны.И общее количество вершин равно 6 для двух треугольников.
// The Z is 1.0 so that I am not multiplying by zero.
float4 ratio = float4(normalize(ViewportHeight, ViewportWidth, 1.0f), 0.0f);
PixelShaderIN bottomLeft = (PixelShaderIN)0;
bottomLeft.Position = float4(-1.0f, -1.0f, 0.0f, 0.0f) * ratio;
// The full list of x, y positions:
// bottomLeft = -1, -1
// upperLeft = -1, 1
// upperRight = 1, 1
// bottomRight = 1, -1
// Once all four points of the quad are created:
output.Append(bottomLeft);
output.Append(upperLeft);
output.Append(upperRight);
output.RestartStrip();
output.Append(bottomLeft);
output.Append(upperRight);
output.Append(bottomRight);
output.RestartStrip();
Насколько я понимаю, с включенным отбраковкой и глубиной, любое значение Z
ниже 0.0f
будет обрезано.Вызов рендеринга для этого четырехугольника происходит раньше, чем что-либо еще на экране.
Как мне убедиться, что этот квад всегда всегда отображается за всем остальным?