我有一塊GLvoid* data
,其中包含整個圖像,該圖像在整個程序中定期更新。我用glTexImage2D
用這個數據初始化GPU上的紋理。我應該向glTexSubImage2D提供完整或部分圖像嗎?
我想用glTexSubImage2D
根據需要更新部分紋理。 documentation for glTexSubImage2D描述了GLvoid* pixels
參數:
指定一個指向內存中圖像數據的指針。
這期待什麼「圖像數據」?我可以提供整個GLvoid* data
,還是期待一個緩衝區,只有包含正在複製的數據?
如果期望部分數據,是否有替代方法來提供整個緩衝區?
反過來說:'glTexSubImage2D'不用於更新GPU內存中的紋理的一部分,它用於將圖像數據緩衝區的一部分上傳到GPU內存。 – Steeve
glPixelStore的GL_PACK_ROW_LENGTH會解決問題嗎? (以及GL_PACK_SKIP_PIXELS和GL_PACK_SKIP_ROWS)。自己沒有挖得太深,因此是一個評論,而不是一個答案。 – Columbo