opengl - OpenGL 离屏渲染
问题描述
我试图将 2D 场景渲染到屏幕外的 FrameBuffer 对象中,并使用 glFrameBufferTexture2D 函数将帧用作纹理来纹理立方体。
2D 场景在一个上下文中渲染,纹理在同一线程的另一个上下文中使用。
问题是当我对立方体进行纹理处理时,alpha 通道似乎不正确。我使用apitrace检查纹理,纹理具有正确的alpha值,着色器只是out_color = texture(in_texture, uv_coords)
如果我将屏幕外帧缓冲区颜色附件粘贴到任何东西,无论是它本身还是帧缓冲区 0(输出窗口),问题就解决了。
我想知道为什么会发生这种情况以及如何在不需要对帧缓冲区进行 blit 的情况下解决它。
解决方案
发现我对静态 2D 场景使用了单缓冲,并且需要 glFlush 来刷新管道。
推荐阅读
- mysql - MySQL 每小时一行 00:01:00 和 23:59:00 一天的间隔
- typescript - MaybeSubject:有条件地对内部 observable 应用 shareReplay()
- c# - HttpClient 如何在一个地方捕获每个响应
- python-3.x - 在 Networkx 中创建饼图作为节点
- database - 错误:您必须在使用 AngularFireDatabase 之前导入“firebase/database”
- c# - 整个应用程序的连接字符串的单一声明-ASP.net
- android - Titanium HTTPClient - TSL 连接有时会在 Android 上“丢失”(不在 iOS 上)
- java - 如何在 android 工具栏中使用搜索栏创建嵌套列表视图?
- r - flexdashboard 中的 Kable 函数
- node.js - AWS S3 nodejs - 如何通过他的前缀获取对象