【问题标题】:Drawing a circle: what to prefer for performance in OpenGL - Lines or a flat triangles?画一个圆:在 OpenGL 中更喜欢什么性能 - 线还是平面三角形?
【发布时间】:2015-07-28 23:23:23
【问题描述】:

我知道绘制圆的两种方法:包含 GL_LINES 的圆或包含平面三角形 (GL_TRIANGLES) 的圆。在第二种情况下,我们需要存储更多的顶点并在每一帧显示它。但是三角形更适合用于影响 GPU 的性能。

那么当你需要在屏幕上画很多圈时,用什么比较好呢?直线还是平面三角形?

【问题讨论】:

  • 为什么不同时实现并测量 FPS?
  • 根据圆的大小,每个圆仅绘制一个四边形(两个三角形)并使用片段着色器(使用纹理或程序)制作圆可能会更快。
  • 在片段着色器中按程序进行几乎可以肯定是最快的方法。这样几何图形就可以像单个矩形一样简单,并且只处理视口可见的像素。
  • 具有简单纹理的实例化四边形可能会更快;)不要忘记premature optimization
  • @JavaRunner 你画了一个覆盖整个圆的四边形。在片段着色器中,您计算​​像素到圆心的距离。如果它与圆的半径大致相同,请给它上色! (你可以使用smoothstep函数让它看起来也很漂亮和平滑)。

标签: c++ opengl


【解决方案1】:

可能是在三角形的帮助下绘制线条。您可以通过将填充模式切换为线框来检查它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2010-09-06
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多