小编Sta*_*fan的帖子

调整几何吞吐量的OpenGL性能

这可能已经被一遍又一遍地问过,但我找不到任何有用的东西,所以在这里再说一次......

在我的应用程序中,我需要渲染一个相当大的网格(几百万个三角形或更多),并且我遇到了一些问题,从中获得了不错的帧速率.CPU几乎是空闲的,所以我绝对是GPU限制的.更改分辨率不会影响性能,因此它不会受碎片或栅格限制.

网格是动态的(但本地是静态的)所以我无法将整个内容存储在视频卡中并通过一次调用来呈现它.由于应用程序特定的原因,数据存储为八叶树,叶片中有体素,这意味着我基本上可以免费获得视锥体剔除.顶点数据由坐标,法线和颜色组成 - 不使用纹理或着色器.

我的第一种方法是使用一个大的STREAM_DRAWVBO 从内存中渲染所有东西,结果证明它太慢了.我最初的想法是,我可能会使总线过载(每帧推动约150 MiB),所以我实现了一个缓存方案,该方案存储最近用于在显卡上的静态VBO中渲染对象的几何体,每个VBO存储几个100 KiB到几个MiB值的数据(每个VBO存储更多会产生更多的缓存抖动,所以这里有一个权衡).下面的图片是数据的示例,其中所有颜色为红色的都是从缓存的VBO中提取的.

渲染数据示例http://gimaker.users.sourceforge.net/0010.png

如下面的数字所示,使用缓存时,我没有看到性能的惊人增长.对于大约1百万个三角形的完全静态网格,我得到以下帧速率:

  • 没有缓存:1.95赫兹
  • 使用顶点数组进行缓存:2.0 Hz(> 75%的网格被缓存)
  • 使用STATIC_DRAWVBO进行缓存:2.4 Hz

所以我的问题是如何加快速度呢?即:

  • 什么是推荐的顶点格式以获得不错的性能?我用位置和法线为交错的存储GL_FLOATGL_UNSIGNED_BYTE用于颜色,与一个填充字节以获得4字节对齐(28个字节/顶点总数).
  • 是否为我的所有框使用相同的缓冲区可能会有所帮助(所有框都是轴对齐的,因此我可以分配一个普通缓冲区,其大小与最大缓存条目一样,并将它们全部用于它们).
  • 我怎么知道管道的哪个部分是瓶颈?我没有一个壮观的视频卡(英特尔GM965与开源Linux驱动程序),所以我可能达到极限.我可以从典型的硬件(2-3岁的集成显卡,现代集成显卡,现代独立显卡)中获得多少吞吐量?
  • 关于如何解决这个问题的任何其他提示,陷阱等.

我对建议LOD(我已经测试过这个),特定于供应商的提示或使用1.5以上的OpenGL功能的答案不感兴趣.

opengl performance

14
推荐指数
1
解决办法
2677
查看次数

适用于Linux的开源OpenGL分析器

这个标题很好地总结了我的问题:是否有适用于Linux的开源 OpenGL剖析器?

我唯一能找到的就是gDEBugger,但它只有7天的试用版,并且是非常封闭的来源.我会免费使用(如在自由中)软件开发,因此付费不是一种选择,尽管我可能会考虑接受免费(如在啤酒中)但关闭应用程序的答案.如果它适用于开源驱动程序(我的主计算机具有集成的英特尔显卡),则可获得奖励积分.

linux opengl performance

10
推荐指数
2
解决办法
4135
查看次数

在emacs中输入时自动替换某些文本字符串

有一点小细微差别一直困扰着我,也就是我经常打字#inclued而不是#include.如果不是很明显,我会编写很多C和C++.这个错字已经破坏了无数的构建和消耗时间,本来可以更好地喝咖啡或冲浪stackoverflow.当然,emacs可以提供帮助,并在我打字时纠正我的错误(cc-mode当然).但是怎么样?

谷歌搜索和搜索stackoverflow没有提供任何答案.

emacs

5
推荐指数
1
解决办法
877
查看次数

实现轮廓绘图的方法

我需要实现一个等高线绘图算法(而不是只使用一个).输入是(连续)函数f:R ^ 2 - > R(该函数在整个域上定义,而不仅仅针对某些输入).输出应为矢量形式,即一组样条或线段.

我正在寻找有关如何实现这一点的建议,最好是以(科学)论文的形式.

我发现了对80年代开发的算法的一些参考("水平追踪算法").过去30年来这个领域有没有发展?用于解决此问题的标准方法是什么?

该算法将用于实时可视化,因此它需要快速,同时仍能产生不错的结果.

(小型,独立且经过良好测试的C/C++实现也将受到欢迎.)

math graphics vector-graphics

3
推荐指数
1
解决办法
2800
查看次数

标签 统计

opengl ×2

performance ×2

emacs ×1

graphics ×1

linux ×1

math ×1

vector-graphics ×1