Можно ли работать с OpenGL в режиме одноцветного канала? - PullRequest
0 голосов
/ 23 марта 2020

Я пишу некоторые 2D-эффекты свертки, и для некоторых из них нужен только один канал цвета. Хотя я знаю, как создавать GL_RED текстуры, которые являются одноканальными, я не знаю, как заставить остальную часть конвейера рендеринга OpenGL работать в одноканальном режиме: например, glClearColor всегда указывает четыре цветовых компонента. На самом деле, я даже не знаю, допустимо ли привязывать одноканальную текстуру GL_RED к цветному вложению FBO.

В качестве опции резервного копирования я все еще могу работать в RGBA и использовать только один канал , Но это будет в четыре раза больше памяти графической c памяти, и мне это не нравится.

Я знаю, что есть режим индексированных цветов. Однако это сложно и устарело, поэтому я не хочу его использовать.

1 Ответ

0 голосов
/ 26 марта 2020

После некоторых экспериментов OpenGL работает правильно с не-RGBA каналами. Для GL_RED избыточные зеленый, синий и альфа-каналы в аргументах glClearColor, texture вектор возврата и встроенный gl_FragColor просто игнорируются / отбрасываются.

...