我的iOS應用程序在opengles視圖中繪製2D曲線。場景渲染非常昂貴(可能需要1-2秒),這意味着,AFAIK,我無法更改比例,重繪和重新渲染以適應比例尺的增量變化(由於捏和 - 放大)。我目前直接在渲染到屏幕上的緩衝區中繪製。OpenGL ES 2.0以多種分辨率縮放
我認爲我可以實現縮放的一種方法是渲染到給定分辨率的紋理,然後使用該紋理的一部分渲染四邊形(可能以不同的比例和平移)。我的猜測是,它會使我當前使用的內存翻倍(如果我當然保持紋理的分辨率與屏幕相同)。有人可以證實嗎?有沒有另外一種方法可以在不重繪的情況下進行縮放,而不會使圖形內存使用量加倍?
現在,如果我想保持一個像樣的質量,我將不得不以不同的分辨率重新渲染。我最初的想法是「手動」創建一個mipmap,例如2級(1個紋理,100-150%變焦,另一個150-200%變焦)。這一次,我會有1個緩衝區+ 2個紋理。我當然可以在平移時重新渲染,但我認爲用戶體驗不會很好。關於如何從用戶體驗和/或內存角度改進這些想法的任何想法?
在我的場景中,我將無法使用平鋪(此外,場景是動態的)。感謝您的回答,雖然 – user1727274
作爲一個方面說明,我有全功能的OpenGL代碼。在我的情況下使用UIView沒有任何意義。從輔助線程以精確的幀速率渲染也是不方便的。 – user1727274
如果您的渲染需要1-2秒,則無法重新繪製場景並獲得良好的用戶體驗。如果你有多個繪圖級別,你的內存將增加更多的x2(150%縮放將意味着225%的內存增加,導致325%)。消除內存消耗並保留所有數據的唯一方法是將其放入某個文件中。一旦你在一些本地磁盤上使用它,你仍然可以使用你的「功能齊全的OpenGL代碼」,這只是需要考慮的一點。長篇小說:我認爲沒有其他辦法可以解決您的情況,滿足您發佈但平鋪的所有要求。 –