Обтравочный объект OpenGL ES 1 - PullRequest
0 голосов
/ 24 августа 2011

Я довольно неопытен с OpenGLES1, но я вынужден использовать его, основываясь на ограничениях того, над чем я сейчас работаю.

Эффект, который я пытаюсь создать, является своего рода "контейнером".Пример: Example

Так что я бы хотел, чтобы объекты "рамка" обрезали объект внутри рамки.Проблема в том, что рамка не является идеальным квадратом, поэтому я не могу просто изменить размер и настроить координаты текстуры.

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

Есть ли ресурс, на который вы, джентльмены, могли бы указать мне?Было бы очень признательно.

Приветствия, Xoorath.

1 Ответ

0 голосов
/ 25 августа 2011

Если это просто рендеринг объектов, которые вы хотите обрезать в непрямоугольной области, тогда создание трафаретного буфера согласно FAQ по OpenGL , вероятно, то, что вам нужно (см. Раздел 10.030).

В противном случае, если вы хотите обрезать объекты (изменяя их координаты), а не просто маскировать область при рендеринге, вам понадобится библиотека отсечения полигонов.

Что касается библиотек отсечения полигонов,Есть несколько вариантов, но они уменьшаются до одного - GPC - если вам нужна библиотека, которая будет компилироваться в C (а не в C ++).Однако лицензия GPC может быть проблематичной для вас, поскольку она не бесплатна для коммерческого использования.Если лицензия является проблемой, вы могли бы рассмотреть ряд других библиотек, если вы инкапсулировали их функциональные возможности в динамически связанную библиотеку.Эти другие библиотеки, написанные на C ++, включают - Clipper , Boost Polygon и Boost Geometry .

...