У меня возникают проблемы с буфером глубины msaa, разрешающим текстуру глубины. Я создаю свой glTexImage2d как для моей цветовой текстуры, так и для моей текстуры глубины и привязываю их к фреймбуферу «разрешение» (не-msaa). Затем я создаю и привязываю другой фреймбуфер и создаю свои мультисэмплированные рендерингбуферы (как цвета, так и глубины). Я знаю, чтобы получить информацию о цветовой тексту из многозадачного рендеринга-буфера, я просто блистаю с буфером записи, являющимся моим буфером текстурной текстуры, и буфером чтения, являющимся моим msaa-framebuffer. Мой вопрос заключается в том, как разбить мой мультисэмперированный буфер глубины на мою глубинную текстуру.Как разрешить многозадачный буфер глубины текстуре глубины?
2
A
ответ
3
Вы сделали бы это так же, как и для цветового буфера, только вы должны использовать GL_DEPTH_BUFFER_BIT
и убедитесь, что используете режим GL_NEAREST
для режима фильтра. Если вы хотите линейную фильтрацию в буфере глубины/трафарета по какой-либо причине, вы можете сделать это в GLSL, если вы используете текстуру глубины (конечно, это все еще остается недопустимым для текстур MSAA), но это недействительно для этого, используя glBlitFramebuffer (...)
,
Вам не нужно делать какие-либо из glReadBuffer (...)
нонсенс, как вы делаете, когда вы хотите выбрать индивидуальный цвет буфера, glBlitFramebuffer (...)
скопирует буфер глубины от связанного GL_READ_FRAMEBUFFER
к связанным GL_DRAW_FRAMEBUFFER
.
Смежные вопросы
- 1. Как отключить буфер глубины?
- 2. Копирование глубины буфера визуализации в буфер глубины
- 3. OpenGL: Renderbuffer, буфер глубины
- 4. Проходящий буфер глубины
- 5. VTK: визуализировать буфер глубины
- 6. Логарифмический буфер глубины
- 7. Зачем нужен буфер глубины?
- 8. Визуализируйте буфер глубины
- 9. Буфер глубины цвета OpenGL
- 10. буфер глубины OpenGL ES
- 11. Как написать буфер глубины OpenGL
- 12. OpenGL - буфер глубины запроса окклюзии?
- 13. Неверный буфер глубины (для текстуры)?
- 14. DirectX 11.1 Отключить буфер глубины
- 15. буфер глубины OpenGL на Android
- 16. Получить буфер глубины от QGLPixelBuffer
- 17. Опорный буфер глубины и отбраковка
- 18. Буфер глубины JSFML не работает
- 19. OpenGL: glLoadMatrix и буфер глубины
- 20. JOGL 2.0, визуализировать буфер глубины для текстуры
- 21. Неверная операция OpenGL: буфер глубины визуализации глубины для буфера глубины по умолчанию
- 22. Как использовать буфер глубины для хранения индексов
- 23. Определение глубины в поиске глубины
- 24. Как быстро считывать буфер буфера и буфер глубины OpenGL?
- 25. Как получить доступ к текстуре глубины из других фреймов?
- 26. Буфер глубины с двумя разными проекционными матрицами
- 27. 32-битный буфер глубины в OpenTK GLControl
- 28. Буфер глубины и проблемы с альфа-памятью
- 29. Три js Shader Материал модифицирует буфер глубины
- 30. Прозрачная текстура в pointCloudMaterial и буфер глубины
Итак, если я blitting цветной буфер, например ... glDrawBuffer (GL_COLOR_ATTACHMENT0); glReadBuffer (GL_COLOR_ATTACHMENT0); glBlitFrameBuffer (0, 0, mWidth, mHeight, 0, 0, mWidth, mHeight, GL_COLOR_BUFFERBIT, GL_NEAREST); ... могу ли я просто добавить бит буфера глубины в BlitFrameBuffer, например ... glBlitFrameBuffer (0, 0, mWidth, mHeight, 0, 0, mWidth, mHeight, GL_COLOR_BUFFERBIT | GL_DEPTH_BUFFER_BIT, GL_NEAREST); ... и gl выяснит это? –
Это _should_ работать. Если ваши кадры для чтения и рисования имеют цветное прикрепление 0 и буфер глубины. Вещи могут быть волосатыми, если у вас есть буфер цвета и буфер глубины, которые имеют разные размеры (да, это возможно), или если буфер глубины - это упакованная глубина/трафарет (как это обычно бывает, если вы хотите перейти прямо в окно). –
Я должен добавить к этому, что текстуры глубины MSAA являются функцией Shader Model 4.1 (т. Е. Они не были *** обязательными *** до SM 4.1). Они не поддерживаются на многих аппаратных средствах старше, чем AMD Radeon HD 3xxx или GeForce 2xx. Теоретически это должно повлиять на вас только в том случае, если вы движетесь в противоположном направлении, пытаясь размыть текстуру глубины MSAA на единичную выборку renderbuffer/texture, но вы никогда не знаете. –