GLSL вершинный шейдер gl_Position значение

Я создаю игру, которая использует ортогональный вид (2D). Я пытаюсь понять ценность gl_Position в вершинном шейдере.

Из того, что я понимаю x а также y координаты переводятся в положение экрана в диапазоне от -1 до 1, но я довольно запутался с ролью z а также wЯ только знаю, что w значение должно быть установлено в 1.0

На данный момент я просто использую gl_Position.xyw = vec3(Position, 1.0);, где Position 2D вершина

Я использую OpenGL 3.2.

1 ответ

Решение

Помните, что openGL также должен работать для 3D, и проще показать детали 3D, чем создавать новый интерфейс только для 2D.

Компонент Z должен установить глубину вершины, точки за пределами -1,1 (после деления перспективы) не будут отрисованы, а для значений между -1,1 он будет проверен по буферу глубины, чтобы увидеть, является ли фрагмент за каким-то ранее нарисованным треугольником и не рисуйте его, если он должен быть скрыт.

Компонент w предназначен для разделения перспективы и позволяет графическому процессору интерполировать значения в правильной перспективе. В противном случае текстуры выглядят странно.

Другие вопросы по тегам