- 21, Oct 2024
- #1
Я пытаюсь создать MIP-карты, основанные на значениях буфера глубины. Чтобы создать следующий уровень MIP-карты, я пытаюсь прочитать по 4 пикселя верхнего уровня MIP-карты на пиксель. В отличие от обычной генерации MIP-карт. Я проверяю значения глубины и усредняю только те из 4 пикселей, которые находятся в диапазоне глубины. https://stackoverflow.com/questions/44349792/is-it-possible-to-render-to-textures-mipmap-level-1-while-sampling-from-level-0 Для этого мне нужно прочитать MIP-карту следующего большего размера, чем текущий, на котором я предполагаю рендерить.
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureID, mipmaplevelToRenderTo);
Я знаю, что чтение той же текстуры, что и рендеринг, не допускается. но я нашел этот пост в stackoverflow:
Здесь, в комментариях, один человек говорит о «спецификаторах диапазона MIP-карт текстур». Означает ли это, что мне не нужно использовать два кадровых буфера (один для чтения, другой для записи и для каждого уровня MIP-карты, переключающегося между этими обоими кадровыми буферами?) с двумя текстурами, чтобы сделать то, что я пытаюсь? Если так. Как указать, какое MIP-карту следует читать из шейдера?