【发布时间】:2012-07-21 08:39:18
【问题描述】:
在我涉足 OpenGL ES 2.0 的最后一天,在尝试将两个投影纹理(一个精灵动画和一个视频文件纹理)应用到天空盒时,我开始只是像存根一样敲击键盘,奇迹般地,这一切都开始起作用了。
但是,从视频文件创建的纹理是颠倒的。换句话说,(0,0) 的纹理坐标似乎映射到 (0,1),反之亦然。
从 CVImageBufferRef 创建视频文件纹理的函数 CVOpenGLESTextureCacheCreateTextureFromImage() 包含一个参数“CFDictionaryRef textureAttributes”。
CVOpenGLESTextureCache.h 有助于解释:“CFDictionaryRef 包含用于创建 CVOpenGLESTexture 对象的属性。可能为 NULL。”
我立即想到了 GLKTextureLoader,它允许您传入一个选项字典,其中一个可用选项用于翻转纹理。
所以,我对两点有点困惑:
传入属性的 CFDictionaryRef 是否可以让我轻松地更改有关纹理的内容,例如旋转?或者它在某种程度上意味着着色器意义上的“属性”? (我不认为它很可能意味着着色器感觉,但我也认为它称它们为属性而不是选项很奇怪。)
是否有一个键/值对列表可以告诉它做有用的事情?
我想先研究一下,然后再找到其他方法来翻转它,因为如果可以在这里做的话,这似乎是最直接的方法,如果该过程确实与 GLKTextureLoader 的选项平行。
【问题讨论】:
标签: ios opengl-es-2.0