簡體   English   中英

iOS上的快速紋理數據更新

[英]Fast Texture Data Update on iOS

我需要在每一幀更新一個紋理的紋理數據。 有什么辦法可以很快地做到這一點嗎? 對我來說,最好的選擇是與GL_APPLE_client_storage類似,但這在iOS上不受支持。 顯而易見的解決方案是每幀調用glTexImage2D,但這將復制數據,而且我將必須在內存中保留相同的紋理2次。

紋理緩存(在iOS 5.0中添加)提供了與iOS上的GL_APPLE_client_storage等效的功能。 最初創建時,它們似乎確實會觸發glTexImage2D() ,但我相信后續更新的行為與Mac的GL_APPLE_client_storage

它們在處理相機框架時提供了特別的性能提升,因為AV Foundation已針對這種情況進行了優化。 我將在相機的答案中詳細描述其工作原理。 對於原始數據,您可以創建自己的CVPixelBufferRef來用於此目的,然后寫入其內部內容以直接更新紋理。

您必須對此小心一點,因為在渲染場景時可能會覆蓋紋理數據,從而導致撕裂和其他瑕疵。

也許您應該使用glTexSubImage2D更新Texture。 這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM