Смешайте (сгладьте) края для текстурированного многоугольника в OpenGL ES 2.0 - PullRequest
2 голосов
/ 30 января 2012

Если у вас есть сложная форма (многоугольник) с текстурой, сопоставленной с ней с GL_REPEAT в OpenGL ES 2.0, и всеми точками, которые образуют края многоугольника, можно ли сделать что-то, что сделает краясмешать с фоном?

Я имею в виду что-то, что сделает края более гладкими, поэтому текстурированная форма не будет выглядеть неровной по краям и углам.

1 Ответ

2 голосов
/ 30 января 2012

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

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

Это всего лишь общие идеи, предполагающие, что вы знаете, как работают шейдеры и как использовать альфа-смешение. Не стесняйтесь задавать более конкретный вопрос, если этого ответа недостаточно.

...