我開發顯示一個大的肥胖型(約1M頂點),靜態2D圖像的應用程序。由於內存限制問題,每次用戶滾動或縮放時,我一直在向維也納各組織提供新數據,給人的印象是整個圖像「存在」,即使它沒有。 有兩個問題的方法:1)雖然反應是「足夠好」,它會更好,如果我能做出滾動縮放更快,更連貫。 2)我一直堅持可以在一次繪製中完成的64k頂點限制,這可以嚴格限制一次可以顯示多少圖像。能夠看到更多的圖像,甚至是同時看到所有的圖像將是很好的。儘管目前的性能再次足夠好,因爲我們處於原型階段,並且已經設置了數據以應對侷限性,但要達到產品級別,我們必須擺脫這種限制。2D的OpenGL ES架構
最近我發現,通過使用「機器人:largeHeap」選項,我可以得到一個摩托羅拉XOOM,這意味着我可以存儲在維也納組織整個圖像256 MB的堆空間。在我的理想世界中,我只需將OpenGL引擎傳遞給VBOs,並告訴它相機已移動,或使用glScale/glTranslate進行縮放/滾動。
我的問題是:我是在正確的軌道上?我應該總是「畫出」所有塊,並讓OpenGl弄清楚哪些實際上會被看到,或者找出哪些塊是我自己可見的?使用類似gluLookAt和glScale/glTranslate之間的任何區別?
我不在乎寬高比失真(圖像是數學生成的,而不是照片),它比它高很多,在未來的頂點數量可能會變得更大,更大(例如60M)。謝謝你的時間。
「看到這一切在同一時間」我希望在手機上呈現60M頂點@ 30fps的是不是一個強大的需求,順便說一句。您必須通過限制最小變焦倍數以及提供良好的降級(詳細程度)來減少60M。 – Calvin1602 2011-05-19 15:17:14
@ Calvin1602不,這不是要求,謝天謝地。 :-) – 2011-05-19 16:07:46
希望很明顯,第二個圖像有一個錯字。右側的塊應該被標記爲「塊n」。 – 2011-05-19 16:08:20