我正在对创建的矩形表面进行视频纹理处理。我需要创建另外两个不同大小的矩形,然后复制在第一个表面上运行的纹理视频的一部分(例如:视频的中间部分)并在创建的新表面上播放它。这可能使用OpenGL ES吗?通过我的原生视频表面渲染器,我可以执行此功能,并可以将其映射到OGLES应用程序。我只是想知道是否可以直接从OGL应用程序本身做,通过从视频纹理表面之一复制选定的矩形?
答案 0 :(得分:0)
如果您的纹理是全动态视频,则不应复制纹理数据,因为这样会太慢而且跟不上视频帧速率。你应该避免使用glTexImage2D(),而是使用EGL Image Extensions,详见我的第三篇文章:
http://montgomery1.com/opengl/
但不管怎样,一旦你在纹理中有了图像并且纹理与glBindTexture()绑定,那么你绘制的任何数量的矩形都将使用相同的当前绑定纹理进行纹理化,而无需更多复制。这些矩形实际上是由三角形而不是“表面”构成的几何形状。帧缓冲是表面。每个矩形的纹理坐标可以不同,这允许您为每个矩形唯一地裁剪和/或缩放纹理贴图。