我有一些PVRTC 4bpp圖像數據需要垂直翻轉而不需要解壓縮。我寫的代碼大部分都在工作,但翻蓋目前引入了小的文物,我不確定原因。垂直翻轉PVRTC壓縮圖像數據
PVRTC翻轉代碼首先將8字節4x4壓縮塊移動到它們的翻轉位置,如PowerVR SDK中PVRTDecompress.cpp的TwiddleUV()函數計算的那樣。這部分看起來是正確的。其次,代碼遍歷所有8字節壓縮塊,反轉包含存儲在2bpp中的4x4調製數據的第二個4字節的順序。塊的前4個字節包含保持不變的顏色數據。
這似乎是非常接近正確的,但它在翻轉的圖像中留下了很小的文物,這些文物在原始文件中並不存在,並且大部分體現爲小灰線。如果翻轉代碼運行兩次,則文物將消失,圖像與原始圖像保持不變。
任何具有PVRTC經驗的人都可以解釋還需要做什麼來翻轉壓縮的圖像數據嗎?我認爲這個問題可能與調製數據的翻轉有關,但是我現在對PVRTC文檔的討論並沒有在這個階段得出答案。
出於好奇,你爲什麼不反轉你的紋理座標?爲什麼你需要反轉紋理數據本身? –
@BradLarson:我也想知道,但認爲必須有一個很好的理由。 –
@BradLarson:您當然可以反轉紋理座標,或在壓縮圖像之前翻轉圖像,我有興趣做一些「手動」處理以用於某些離線紋理處理步驟。 –