Убедитесь, что полноэкранный Quad отстает от всего остального? - PullRequest
0 голосов
/ 17 декабря 2018

После долгих проб и ошибок я наконец могу отрендерить свой основной полноэкранный квад.Тем не менее, он последовательно обращается перед всем остальным.Я пытался изменить значение глубины (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 будет обрезано.Вызов рендеринга для этого четырехугольника происходит раньше, чем что-либо еще на экране.


Как мне убедиться, что этот квад всегда всегда отображается за всем остальным?

...