Хорошо, в моем фрагментном шейдере GLSL я хочу иметь возможность вычислять расстояние фрагмента от определенной линии в пространстве.
Результатом этого является то, что я сначала пытаюсь использовать переменный набор vec2 в моем вершинном шейдере, чтобы отразить то, что заканчивается в gl_FragCoord
:
varying vec2 fake_frag_coord;
//in vertex shader:
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
fake_frag_coord=(gl_ModelViewProjectionMatrix * gl_Vertex).xy;
Теперь во фрагментном шейдере я ожидаю:
gl_FragCoord.xy==fake_frag_coord
Но это не так. Какую операцию выполняет конвейер с gl_Position
, чтобы превратить его в gl_FragCoord
, которую я не делаю с fake_frag_coord
?