在我涉足的OpenGL ES 2.0的过去一天,同时试图应用两种投影纹理 - 一个精灵动画和一个视频文件纹理 - 到空中包厢,我一开始只是我的冲击双手像键盘一样在键盘上,奇迹般地开始工作。翻转的OpenGL ES纹理获得通过CVOpenGLESTexture
然而,从视频文件中创建的纹理翻转倒置。换句话说,(0,0)的纹理坐标似乎映射到(0,1),反之亦然。
从CVImageBufferRef,CVOpenGLESTextureCacheCreateTextureFromImage()创建视频文件纹理的函数包含一个参数“CFDictionaryRef textureAttributes”。
CVOpenGLESTextureCache.h有益解释道:“含有CFDictionaryRef属性被用于创建CVOpenGLESTexture对象可以为空。”。
我马上想到GLKTextureLoader,它允许您在选择字典传球,用一个可用选项被用来翻转过来,质感。
所以,我有点糊涂了两点:
将在CFDictionaryRef传递的属性让我很容易地改变有关纹理的事情,比如旋转?或者它在某种程度上意味着在着色器意义上的“属性”? (我认为这不太可能意味着着色器的意义,但我也认为它称之为属性而不是选项是奇怪的。)
是否有列表的某个键/值对它做有用的事情?
我想看看这个发现了一些其他的方式来左右翻转,因为如果有可能在这里做它,它似乎像以前一样,将是最直接的方式,如果程序确实平行GLKTextureLoader的选项。
关于属性,我从来没有使用它们作为NULL以外的任何东西。如果您看到标题顶部附近,则会看到'// textureAttributes - 保留供将来使用'。不记得他们是否为iOS 6.0添加了任何内容。 – 2012-07-21 01:04:59