我正在使用LibGDX,我需要一些常规优化问题的答案:
答案 0 :(得分:2)
答案 1 :(得分:1)
没有。顶点处理将是相同的,但视口外的片段将被剪切,从而减少片段处理。
这只是问题1的极端情况。现在没有片段处理,但仍然是所有顶点处理。根据顶点处理的便宜/昂贵程度,这可能会变化很大。它当然不仅仅是绘画。另一方面,如果在应用程序中添加大量逻辑以避免绘制精灵,则可能会增加比通过不渲染而节省的开销。
加载纹理后,渲染本身应该非常相似。但是当然加载纹理会更加昂贵。这不仅适用于加载纹理数据的OpenGL调用,还适用于在渲染之前将其映射到GPU地址空间的开销,以及其他相关的内存管理开销。
也许。但可能并不多。 GPU使用针对本地访问进行了优化的内存布局,而不太依赖访问模式的方向。
以10x10渲染肯定要便宜得多,因为碎片和相应的采样操作要少得多。但它仍然比使用10x10纹理渲染要昂贵得多,因为访问的本地化程度要低得多,因此会有更多的缓存未命中。为了避免这种情况,请使用mipmapping,如果渲染较大的纹理缩小,这将为您提供较小纹理的大部分性能。
答案 2 :(得分:0)
谈论性能时,影响取决于瓶颈是什么。绘制一个精灵使用一些CPU和一小部分GPU,无论它在屏幕上有多少(如果有的话)。通常,精灵的实际像素越多,它将使用的GPU就越多。
就CPU而言,没有区别,但对于GPU来说,绘制更少的精灵像素更好。
关闭屏幕精灵会产生CPU影响并且对GPU造成很小的影响。如果你有很多屏幕外的精灵,你可能需要避免绘制它们,但你应该分组而不是逐一检查它们,否则你可能会花费更多的CPU来检查它们而不是将它们抽出来屏幕。
绘制大纹理的小区域与绘制小纹理具有相同的性能。但第一个选项允许您将许多不同的图像批量处理为一个绘图调用,这是一个大的保护程序。
有些,因为你会在每一帧上重新计算它的顶点。
将其缩小意味着您绘制的像素更少,因此速度更快。