2011-04-01 72 views
1

嘿所有,我重新工作我的Android应用程序使用OpenGL而不是画布(因为它是不正常的慢),我想知道,因为我使用瓷砖表(地图纹理)会更快使用VBO或draw_texture与作物设置像这样:带裁剪或VBO的Android OpenGL ES draw_texture?

// Crop our texture 
((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, cropRect[cropIndex], 0); 
gl.glColor4f(1, 1, 1, 1); 

听了一会儿克里斯PRUETT之后我得知draw_texture是undoubtably最快的为个人的精灵,但如果我裁剪Atlas是这仍然是真的?

回答

2

会是更快地使用VBO的或draw_texture

Draw using atlas texture

注意,他使用了“瓷砖的世界”,这解释了为什么他使用这种技术。如果你不使用平铺世界,你应该使用draw_texture

对克里斯普鲁特听了一段时间后,我认为draw_texture无疑是个人精灵中最快的,但如果我裁剪一个地图集,这仍然是真的吗?

并不总是如此。如果你使用的是具有许多精灵的大图集纹理,glTexParameteriv()函数将会太昂贵。如果你只使用较少量的精灵,它可能会更快,这也取决于调用glTexParameteriv()函数的次数。

+0

好吧,给你一个想法我的图集是1024x1024,最多我有大约12个屏幕上的精灵(非静态)而他们不构成一个世界,“世界”是一个简单的背景图像。 非常感谢btw! – Smanger 2011-04-01 21:34:41

+0

@Alex:那么你可能使用'draw_texture'和'glTexParameteriv()'很好。 – Wroclai 2011-04-01 21:40:46

+0

谢谢!但是如果我想实现一下,一个粒子系统对vbo安装来说是最好的吗? – Smanger 2011-04-01 21:41:33