在我涉足的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