Для закадрового рендеринга текстуры я прикрепляю к вложению GL_COLOR_ATTACHMENT0 текстуру, определяемую
glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, ширина, высота, 0, GL_RGBA, GL_FLOAT, NULL);
Затем я рендерился в FBO, используя фрагментный шейдер, который выводит vec4, так что обычно все должно быть в порядке. Чтобы проверить правильность отображения текстуры, я использую функцию
glTexSubImage2D ()
для добавления серых пикселей в середине текстуры. Текстура отображается правильно (я прекрасно вижу эти пиксели в нужном месте), но остальная часть текстуры представляет собой только шумные артефакты (когда она не черная).
Это связано с тем, что я использую GL_FLOAT для текстуры GL_RGBA? Если да, как я могу, в GLSL, преобразовать uvec4 в vec4? Вывод моего основного шейдера - vec4, и я не знаю, как преобразовать вывод uvec4 текстуры usampler2D в мой окончательный vec4.
Спасибо за любой ответ, который вы можете предоставить:)
РЕДАКТИРОВАТЬ: я нашел решение: я не очистил GL_COLOR_BUFFER_BIT между моими 2 рендерами.