我读过OpenGL中的实例使绘制数千个对象的速度更快。但是,如果您使用实例而只绘制一个对象,它会慢得多吗?如果是这样的话,你需要多少个量级的物体才能得到改善?就几个?十块?几百人?
一些上下文(万一我有一个X-Y problem);如果我必须编写用于实例的代码,那么就更容易让它一直运行下去。
发布于 2014-09-16 03:50:25
对这类问题的回答往往有些重复:尝试不同的选项,并在您所关心的平台上对它们进行基准测试。没有办法给出一个肯定的答案,必然适用于每一个可能的平台。
尽管如此,我并不期望实例呈现会在完全支持它的硬件上增加很大的开销。实例渲染不是最近的特性。根据我所能找到的历史,它是DX10 (2006年发布)和OpenGL 3.1 (2009年发布)的一部分。因此,任何较近期的硬件(DX10级别及更高版本)似乎都很有可能有效地支持它。
在最近的硬件上,非实例呈现可能只是一个仅绘制单个实例的实例呈现的特例。可能会有更多的状态设置,但总的来说,它基本上没有额外的开销。
一般来说,在不完全支持功能的硬件上支持功能并不少见。在这种情况下,驱动程序有时不得不通过跳转来提供这个特性,通常效率较低,并且需要额外的CPU开销。这并不是不可能的情况下,在某个平台上的实例渲染,这使我们回到起点:基准!
https://stackoverflow.com/questions/25857628
复制相似问题