Мне надо в шейдере читать из уровня N-1 и одновременно сохранять результат в уровень N (для каждой из двух текстур, но пока не суть). Я сделал FBO и во время аттача текстур указал последним параметром level=1 (а не 0, как обычно). В шейдере читаю через textureLod, но до него даже не доходит, проблема в том что при попытке рисовать в такой FBO происходит ошибка 1286 (invalid frame buffer). Не могу быстро нагуглить как это делается правильно. Кто-нибудь знает?
может вызвать glCheckFramebufferStatus чтоб понять в чем проблема?
Память под мипы выделена? Если нет, то при создании текстуры стоит вызвать glGenerateMipmap. Вместо textureLod можно ставить у текстуры параметр GL_TEXTURE_MAX_LEVEL равным N-1.
в opengl, я считаю, с отсутствующими resource view, очень криво реализуется рендер в мипмапы. поэтому вместо того, чтобы мучиться с этой вакханалией, для шейдера построения мипов просто рендерю с помощью compute shader'а, который сразу пишет несколько пикселей в полученное изображение через imageStore(), который может писать в любой мип.
Suslik
> с отсутствующими resource view
texture view давно уже добавили
Тема в архиве.