POINT_SPRITES或TRIANGLES应该用于大四边形

时间:2015-09-27 09:48:55

标签: opengl opengl-es opengl-es-2.0

我现在正处于泡菜状态,我有一个粒子系统,大约有500个粒子没有旋转,每个粒子的大小可以大到100个像素,我用2种不同的方法绘制它们,首先是使用点精灵和第二个使用4个顶点和6个索引来制作四边形,我测试了两个,但我在我的机器上获得了几乎相同的性能。 我已经读过,对于某些GPU中的大点精灵实际上是转换为三角形并且这很慢,所以最好从一开始就将它们绘制为三角形但不应该这意味着你有更多的数据要推送到GPU ?

用于每个点的浮点数:

  • 点精灵: 4 (x,y,大小,颜色)
  • 三角形四边形:(16(x,y,颜色,纹理)* 4)+6(指数)= 22

所以问题是我是否应该在设置菜单中添加一个选项,用户可以在这两个选项之间进行切换,以防他的gpu更好地直接绘制三角形或点精灵?

1 个答案:

答案 0 :(得分:2)

从理论上讲,精灵应该更快但有一些缺点。

你的粒子可能很大,并且点精灵被剪切在它们的中心坐标处。

最好的选择是使用实例化渲染,但它在OpenGL ES 2中不可用。

关于点精灵和粒子系统有一个很好的答案 - https://stackoverflow.com/a/17400234/1351828