我是OpenGL ES 1.1(用于IOS)纹理的新手,我遇到了制作运动模糊效果的问题。在谷歌搜索期间,我发现我应该在不同的时刻将我的场景渲染到几个纹理,然后在屏幕上使用不同的alpha值绘制所有这些纹理。但问题是我不知道如何实现这一切!所以,我的问题是:
我已经提出了一些想法,但我不确定它们是否正确。 提前谢谢!
答案 0 :(得分:2)
当然,第一个建议是,在尝试进行高级操作之前先了解基础知识。除此之外:
是的确,要绘制全屏纹理,您只需绘制纹理屏幕大小的四边形。在这种情况下,正交投影将是一个好主意,使四边形的屏幕对齐和适当的尺寸更容易。为了首先获取纹理(通过渲染它们),FBOs可能会有所帮助,但我不确定ES 1设备是否支持它们,否则好的glCopyTexSubImage2D
会做也是,虽然需要复制操作。
好吧,你只需要绘制多个纹理四边形(见1)。您可以配置texture environment以使用四边形的基色(glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)
)缩放纹理的颜色,并为您的四边形提供(1, 1, 1, alpha)
的颜色(当然应禁用光照)。此外,您必须启用alpha blending(glEnable(GL_BLEND)
)并使用适当的混合功能(glBlendFunc(GL_SRC_ALPHA, GL_ONE)
应该执行此操作)。
但是,如果所有这些术语都没有告诉你任何事情,那么在深入研究更高级的效果之前,你应该先使用一个好的学习资源来学习基础知识。