GLSL конические линии - PullRequest
       22

GLSL конические линии

0 голосов
/ 28 февраля 2012

Я рисую множество примитивов GL_LINES, закрашивая их, используя вершинные и фрагментные шейдеры, написанные на GLSL. Я хотел бы, чтобы линии сужались на концах в альфа-значении. То есть в центре линии значение альфа должно быть равно 1, но на каждом конце оно должно сужаться до 0.

Мне интересно, есть ли хорошее решение, которое не предполагает разбивки линий на несколько вершин. То есть что-то сделано чисто с помощью шейдеров.

1 Ответ

0 голосов
/ 28 февраля 2012

Ну, просто передайте значение каждой вершине в линии.0 для начала, 1 для конца.Пусть интерполятор интерполирует между ними, а затем возьмите абсолютное расстояние этого значения от 0,5 до 1 минус альфа.Или в GLSL:

gl_FragCoord.a = 1 - (abs(value - 0.5) * 0.5);

Где value - значение, переданное из вершинного шейдера.Для этого вы не можете отрендерить GL_LINE_STRIP или GL_LINE_LOOP;должно быть GL_LINES.

...