我已经读过OpenGL中的实例化可以更快地绘制数千个对象。但是,如果你使用实例化而只绘制一个对象,它会慢得多吗?如果是这样,实例化需要什么样的对象才能成为一种改进?一些?十?数百Ω
某些背景(如果我有X-Y problem);如果我不得不为实例化编写代码,那么一直保持开放会更容易。
答案 0 :(得分:1)
对这些类型的问题的回答往往有些重复:尝试不同的选项,并在您关心的平台上对它们进行基准测试。实际上没有办法给出一个必然适用于每个可能平台的确定答案。
话虽这么说,我不希望实例化渲染会在完全支持它的硬件上增加大量开销。实例渲染不是最近的功能。根据我能找到的历史,它是DX10(2006年发布)和OpenGL 3.1(2009年发布)的一部分。因此,任何适度近期的硬件(DX10级别及更高级别)似乎都可以有效地支持它。
在最近的硬件上,非实例化渲染可能只是实例渲染的一种特殊情况,其中只绘制了一个实例。可能会有更多的状态设置,但总体而言,基本上没有额外的开销。
通常,硬件上支持的功能并不常见,但并不完全支持该功能。在这些情况下,驱动程序有时必须通过箍来提供该功能,通常效率较低且额外的CPU开销较大。这可能是某些平台上的渲染情况,这让我们回到起点:基准!