我知道之前已经问过这个问题(我做了搜索),但我保证这个问题不同。
我正在为Mac OS X Mountain Lion制作应用程序,但我需要添加一点绽放效果。我需要将整个场景渲染到与屏幕大小相同的纹理,减小纹理的大小,将其传递到像素缓冲区,然后将其用作四边形的纹理。
我再次问这个,因为一些常用的技术似乎没有起作用。我无法在片段着色器中使用#version
,layout
或out
,因为它们无法编译。如果我正常使用gl_FragColor
,我会在我的应用程序后面的屏幕上随机显示,而不是我想要呈现的场景。文档没有说明这些事情。
所以,基本上,如何使用OpenGL的Mac实现正确渲染纹理?你需要使用扩展来做到这一点吗?
我使用here
中的代码答案 0 :(得分:1)
最好使用FBOs渲染纹理,这样可以直接渲染到纹理中。如果您的硬件/驱动程序不支持OpenGL 3+,则必须通过ARB_framebuffer_object核心扩展或EXT_framebuffer_object扩展名使用FBO功能。
如果FBO根本不受支持,你将不得不求助于一个简单的glCopyTexSubImage2D
(虽然只涉及GPU-GPU,但它涉及一个副本)或使用更灵活但更复杂(并且已弃用) )PBuffers。
这个tutorial on FBOs提供了一个简单的示例,用于渲染纹理并使用此纹理进行渲染。由于这个问题缺乏关于你的方法遇到的特定问题的具体信息,那些通常的渲染到纹理资源的通用googlable指针现在就足够了。