我开发显示一个大的肥胖型(约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