RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 10.200.66.174
RemoteIPInternalProxy 192.168.3.1
这是我的代码的一部分。
我想绘制100000000个三角形,但是它变得非常慢。
我知道是因为我打过for (int i = 0; i < 100000000; ++i)
{
model = glm::translate(glm::mat4(1.0), glm::vec3(i * 2, i * 2 , i * 2));
glUniformMatrix4fv(modellocation, 1, GL_FALSE, &model[0][0]);
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, (void *)0);
}
了很多次。而且我也知道我需要一次绘制更多的三角形,以避免调用glDrawElements
太多的时间。
但是我不知道该怎么做,我是否需要更改已绑定的缓冲区,还是可以使用其他方法来做到这一点?
这是我的缓冲区
glDrawElements
还有我的索引缓冲区
float vertex[] = {
0.0f, 0.5f, 0.0f,
-0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
};
我这样绑定缓冲区
unsigned int indices[] = { 0, 1, 2 };
答案 0 :(得分:0)
您可以在一个顶点缓冲区中放置多个三角形,然后一次全部“绘制”。这是一个由许多三角形组成的球体的示例:https://github.com/aromanro/SolarSystem/blob/master/SolarSystem/Sphere.cpp您可以从GitHub上获取我的项目并查看它,这可能会有所帮助。
还有另一种方法可以大大加快实例化速度。它不在SolarSystem项目中使用,但在事件驱动分子动力学项目中使用。