Как я могу получить текстуру OpenGl формы многоугольника из изображения? - PullRequest
1 голос
/ 24 октября 2009

У меня есть изображение и выпуклый многоугольник, определяемый массивом координат x, y.

Как бы я мог получить представление Texture2D части изображения, охватываемой многоугольником?

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

Если бы результирующая текстура была также обрезана по ширине и высоте многоугольника, я бы сделал сальто назад.

Любые указатели / фрагменты будут оценены. Спасибо!

1 Ответ

2 голосов
/ 26 октября 2009

Интересно, что ваш вопрос помечен как cocos2d, так и opengl, но я дам здесь OpenGL-ориентированный ответ. Вместо того, чтобы создавать новый объект текстуры для достижения желаемого эффекта, я думаю, вы захотите использовать буфер трафарета. Процедура будет выглядеть так:

  1. При создании вашего FBO прикрепите к нему буфер трафарета.
  2. Очистить буфер трафарета.
  3. Отключить запись в буферы цвета и глубины; включите запись в трафарет.
  4. Визуализируйте многоугольник и не беспокойтесь о текстурировании.
  5. Повторное включение записи в буферы цвета и глубины; включите проверку трафарета.
  6. Визуализация текстурированного квадрата, который соответствует ограничительной рамке вашего многоугольника.

iPhone 3GS и симулятор iPhone поддерживают 8-битный трафаретный буфер. Для старых айфонов вы могли бы сделать подобный трюк с альфа-компонентом кадрового буфера, а не с трафаретным буфером ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...