如何将图像处理应用到OpenGL?

发布于 2024-08-21 08:59:09 字数 169 浏览 5 评论 0原文

抱歉,如果问题太笼统,但我的意思是这样的;在 OpenGL 中,在执行缓冲区交换以使缓冲区在屏幕上可见之前,应该调用一些函数来执行一些图像处理。我的意思是,比如模糊屏幕、扭曲屏幕的一部分等,或者执行一些有趣的“修饰”,比如绽放等。

如果我想做的话,我应该寻找哪些关键字和 OpenGL 函数集我上面说了什么?

Sorry if the question is too general, but what I mean is this; in OpenGL, before you perform a buffer swapping to make the buffer visible on the screen, there should be some function calls to perform some image processing. I mean, like blur the screen, twisting a portion of the screen, etc. or performing some interesting "touch up" like bloom, etc.

What are the keywords and sets of functions of OpenGL I should be looking for if I want to do what I have said above?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖上得阳光 2024-08-28 08:59:09

由于通常无法在同一操作中读/写帧缓冲区(除了简单的混合),因此您需要使用 FBO:s (FrameBufferObject) 渲染纹理,然后对这些进行各种处理,然后执行最终传递到真实的帧缓冲区。

这是你需要理解的主要部分。鉴于此,您可以在纸上绘制“渲染树”草图,即场景的哪些部分去哪里以及您的效果是什么,它们的输入和输出数据。

从那时起,您只需使用执行效果的特定片段着色器渲染一个或多个覆盖整个屏幕的大四边形,使用纹理作为输入,使用一个或多个帧缓冲区对象作为输出。

Since you can't, in general, read/write to the framebuffer in the same operation (other than simple blending), you need to render to textures using FBO:s (FrameBufferObject), then do various processing on those, then do the final pass onto the real framebuffer.

That's the main part you need to understand. Given that, you can sketch your "render tree" on paper, i.e. which parts of the scene goes where and what your effects are, their input and output data.

From there on, you just render one or more big quads covering the entire screen with specific fragment shader that perform your effect, using textures as input and one or more framebuffer objects as output.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文