Как нарисовать скругленный прямоугольник с альфа-смешиванием в режиме OpenGL немедленный

Я нашел некоторый код, который позволит мне рисовать скругленный прямоугольник в непосредственном режиме OpenGL ( здесь).

То, что я хотел бы сделать, это уменьшить альфу, дальше от центра прямоугольника - как было бы найти в окне или диалоге Windows/Mac, например, где рисуется тень.

Может кто-нибудь указать мне пример, как это сделать?

1 ответ

Решение

Это относительно легко сделать с геометрией.

Создайте вершины для двух скругленных прямоугольников: внутреннего и внешнего. Присвойте альфа 1 внутреннему прямоугольнику, а альфа 0 внешнему прямоугольнику. Триангулируйте как внутренний прямоугольник, так и пространство между двумя прямоугольниками. Если вы специально не спросите иначе, альфа будет плавно интерполироваться между внутренним и внешним прямоугольниками.

Что-то вроде этого:

геометрия для прямоугольников со скругленными углами

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

Другие вопросы по тегам