有什麼辦法在OpenGL中加載和讀取10位圖像?它不必在GPU方面達到最佳效率。我只是想將我的CPU在將其轉換爲GPU之前將其轉換爲8位。單通道10位圖像
我注意到,唯一支持的10位紋理格式是RGB10,這不是我正在尋找的。
供應商特定的擴展沒有問題。
有什麼辦法在OpenGL中加載和讀取10位圖像?它不必在GPU方面達到最佳效率。我只是想將我的CPU在將其轉換爲GPU之前將其轉換爲8位。單通道10位圖像
我注意到,唯一支持的10位紋理格式是RGB10,這不是我正在尋找的。
供應商特定的擴展沒有問題。
我只是想卸載我的CPU轉換成8位之前洗牌到GPU。
那麼,這不會發生。 GPU 從來沒有進行格式轉換(除非可能混合,但這實際上是DMA的一部分)。 CPU不會格式化轉換,這就是爲什麼避免格式不匹配非常重要的原因。因此,即使OpenGL有方法來描述10位單通道數據,您仍然依賴CPU將其解碼爲GPU實際使用的格式(即:8位)。它只是你的代碼做轉換;它會是驅動程序代碼。無論哪種方式,它都在佔用CPU資源。
但是這與您的需求無關,因爲OpenGL無法上傳10位單通道數據。你甚至如何儲存它;像素不是字節對齊的。
一般而言,建議您儘可能離線進行這種轉換,並將數據存儲爲最有意義的格式。
我沒有足夠的經驗知道這是正確的/將工作,但不能使用16位紋理,然後只使用着色器中的10個最低有效位? –