Полигональные градиенты с OpenGL - PullRequest
1 голос
/ 02 мая 2010

Мне интересно, как я мог бы создать градиент с несколькими остановками и направлением, если я делаю полигоны. Прямо сейчас я создаю градиенты, изменяя цвет вершин, но это ограничивает. Есть ли другой способ сделать это?

Спасибо

Ответы [ 3 ]

2 голосов
/ 02 мая 2010

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

Затем вы можете вращать исходный многоугольник, и у всего, что текстурировано с его изображением, будет также вращаться градиент, без фактического изменения геометрии.

1 голос
/ 04 мая 2010

Если вы используете шейдер, вы можете передавать свои позиции в мире вершин в ваш вершинный шейдер, и они будут интерполироваться в ваш фрагментный шейдер, поэтому для каждого фрагмента вы получите то, что он находится в мировом пространстве (из Конечно, вы можете использовать любое пространство). Тогда нужно просто выбрать любую передаточную функцию, чтобы изменить это значение на цвет. Вы можете создать любой сложный алгоритм, используя b-сплайны или что-то еще в вашем фрагментном шейдере.

1 голос
/ 02 мая 2010

Наиболее гибкий способ - это, вероятно, создать текстуру с желаемым градиентом, а затем применить ее к вашей геометрии.

...