gpt4 book ai didi

c++ - 使用 Opengl 绘制超过 50k 球体时如何提高速度

转载 作者:搜寻专家 更新时间:2023-10-31 00:01:27 26 4
gpt4 key购买 nike

现在,我使用 glutSolidSphere 绘制多个球体,即 50k+ 球体速度极低。

有什么提高速度的方法或建议吗?

下面是我的代码...

void COpenGlWnd::OnPaint()
{
CPaintDC dc(this);
::wglMakeCurrent(m_hDC, m_hRC);
for(int k = 0; k < m_nCountZ; k++)
{
for(int j = 0; j < m_nCountY; j ++)
{
for(int i = 0; i < m_nCountX; i ++)
{
::glPushMatrix();
........
::glutSolidSphere(Size[i][j][k], 36, 36);
........
::glPopMatrix();
}
}
}
::SwapBuffers(m_hDC);
}

更多信息:球体将始终位于特定位置,但用户可以使用鼠标旋转并从不同 View 查看所有球体。

最佳答案

这里有一些建议:

  1. 创建一个包含球体的顶点缓冲对象 (VBO) 并渲染它而不是使用 glutSolidSphere。
  2. 研究实例化,即通过一次绘制调用绘制多个球体。

以下文章几乎完全符合您的要求:http://sol.gfxile.net/instancing.html

关于c++ - 使用 Opengl 绘制超过 50k 球体时如何提高速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com