2012-05-16 4 views
1

Привет всем Я новичок в OpenGL ES 2.0. Я запутался в gl_position, и переменная переменная будет выводиться из вершинного шейдера. переменная переменная будет передана в фрагментарный шейдер, а что касается gl_position. Влияние gl_position влияет на переменную переменную в шейдере фрагментов. gl_position = vec4 (-1); что это значит. PLease действительно помогает мне понять эти вещи намного лучше.Разница между gl_position и переменной переменной?

ответ

3

gl_Position - специальная переменная. Он используется для расчета того, какой фрагмент будет фрагментировать шейдер, вычислять/затенять (он вычисляет свое положение). Все остальные изменения непосредственно интерполируются по примитиву.

gl_Position недоступен в флеш-шейдере. Но имеется переменная gl_FragCoord, которая рассчитывается из gl_Position, поэтому значения x/y ее изменяются от 0 до 1 (с одной стороны экрана на другую), z - глубина от 0 (около плоскости) до 1 (дальняя). И w - это что-то вроде 1/gl_Position.w (не стесняйтесь смотреть, что это точно в спецификации OpenGL | ES2).

+2

Ну, он не вычисляет положение фрагмента. Он просто вычисляет положение пространства клипа в вершине. Это, в свою очередь, интерполировано по примитиву, как и любое другое изменение (хотя оно также используется для отсечения). Таким образом, это можно рассматривать как специальную встроенную переменную. И, кстати, 'gl_FragCoord.xy' не находится в [0,1], а в координатах окна (пикселей). –

+0

@ChristianRau благодарит много за повтор ya, он вычисляет позицию места в пространстве вершины, означает, что после этого пространства вывод не будет отображаться, это смысл ?. SO разное означает, что мы находим значение для вершины, для которого цвет будет применен в фрагмент-шейдере, - это значение ?. gl_position = vec4 (-1), в чем смысл этого.? Пожалуйста, помогите мне. – Megharaj

+0

@Megharaj. Место клипа - это пространство, в котором выполняется обрезка объема представления. Объем просмотра в свою очередь - куб [-1,1] в пространстве клипов. Меняющаяся переменная, которая выводится вершинным шейдером и интерполируется по примитиву для получения значений фрагментов, таких как цвет, или положение вершин, интерполяция которых приводит к отображению отдельных пикселей (или, скорее, фрагментов). –

Смежные вопросы