打开 gl 计算着色器和帧缓冲区
Posted
技术标签:
【中文标题】打开 gl 计算着色器和帧缓冲区【英文标题】:Open gl compute shader and framebuffer 【发布时间】:2016-05-29 17:57:42 【问题描述】:我想在不调用顶点/片段着色器的情况下修改我使用计算着色器看到的屏幕。计算着色器将使用数据,我想知道如何从计算着色器中调用这些数据。 那我该怎么做呢?
【问题讨论】:
仅供参考:如果您正在学习 OpenGL,计算着色器可能不是开始的地方。 我不是为了学习opengl而学习opengl,我只是想学习opengl的特定部分以解决我的问题 【参考方案1】:计算着色器只能访问图像或缓冲区。 default framebuffer 两者都不是;它是一个特殊的物体,你不能将它的图像附加到任何东西上。
但是,您可以创建纹理,通过计算着色器为use as an image 绑定它,然后对其进行任何您希望的计算。然后,您可以(当然是在the appropriate glMemoryBarrier
call 之后)将该图像渲染到默认帧缓冲区。
【讨论】:
好的,所以我们不能使用计算着色器访问默认帧缓冲区,希望能清楚一些,谢谢。您说过计算着色器可以访问缓冲区,因此只需提供函数名称或提示,如何为计算着色器创建缓冲区,如何使用客户端数据加载缓冲区,如何在计算着色器中 RW 数据,最后您如何为客户端检索数据。 @AndreMiville:这是一连串的问题,与你原来的问题无关。这是一个问答网站,不是论坛。因此,如果您想获得这些问题的答案,则必须将它们作为单独的问题提出。 我不能,我每周只能回答一个问题。我受到限制是因为我抱怨我无法投票给有用的答案(这样做需要 15 个声誉点(这个系统做 s* u* c* k))。但我想我能够回答自己这些问题。以上是关于打开 gl 计算着色器和帧缓冲区的主要内容,如果未能解决你的问题,请参考以下文章