【发布时间】:2015-12-24 17:26:57
【问题描述】:
我现在处于困境中,我有一个粒子系统,它有大约 500 个没有旋转的粒子,每个粒子的大小可以大到 100 像素,我用 2 种不同的绘制方式进行了测试,首先是使用点精灵和第二个使用 4 个顶点和 6 个索引来制作四边形,我测试了两者,但我在我的机器上获得了几乎相同的性能。 我已经读过,对于某些 GPU 中的大点精灵实际上被转换为三角形,这很慢,所以最好从一开始就将它们绘制为三角形,但这不应该意味着你有更多的数据要推送到 GPU 吗?
用于每个点的浮点数:
- 点精灵:4(x,y,size,color)
- 三角形四边形:(16(x,y,color,textureCoords)*4)+6(indice)=22
所以问题是我是否应该在设置菜单中放置一个选项,用户可以在其中切换这两个选项,以防他的 gpu 更擅长直接绘制三角形或点精灵?
【问题讨论】:
-
所有粒子都是用一次draw call绘制的?如果不是,那将是尝试改变的第一件事。如果是,那么您的瓶颈可能是填充率或像素着色器(移动硬件通常是这种情况)。如果你想测试光栅化性能,你应该尝试设置一个非常小的视口(比如 1px)来绕过上述瓶颈。
标签: opengl opengl-es opengl-es-2.0