-1

我知道以前有人问过这个问题(我确实搜索过),但我向你保证这个是不同的。

我正在为 Mac OS X Mountain Lion 制作应用程序,但我需要添加一点点绽放效果。我需要将整个场景渲染为屏幕大小的纹理,减小纹理的大小,将其传递给像素缓冲区,然后将其用作四边形的纹理。

我再次问这个问题是因为一些常用的技术似乎不起作用。我不能在片段着色器中使用#versionlayoutout,因为它们无法编译。如果我只是gl_FragColor正常使用,我会在我的应用程序后面得到随机的屏幕片段,而不是我试图渲染的场景。该文档没有说明这些事情。

那么,基本上,如何使用 OpenGL 的 Mac 实现正确渲染到纹理?您是否需要使用扩展来执行此操作?

我使用这里的代码

4

1 回答 1

1

渲染到纹理最好使用FBO来完成,它可以让您直接渲染到纹理中。如果您的硬件/驱动程序不支持 OpenGL 3+,则必须通过ARB_framebuffer_object核心扩展或EXT_framebuffer_object扩展来使用 FBO 功能。

如果根本不支持 FBO,您将不得不求助于简单的glCopyTexSubImage2D(尽管涉及副本,即使只是 GPU-GPU)或使用更灵活但相当复杂(且已弃用)的 PBuffers

这个关于 FBO 的教程提供了一个简单的示例,用于渲染到纹理并在之后使用此纹理进行渲染。由于该问题缺少有关您在方法中遇到的特定问题的具体信息,因此现在那些指向通常的渲染到纹理资源的相当通用的谷歌指针就足够了。

于 2013-02-12T16:23:29.383 回答