一旦编写了程序,优化代码和数据文件所需的时间通常与最初编写代码所用的时间一样长。在试图提高OpenGL性能时尤其如此。许多因素都会影响性能,从纹理文件的大小和格式到场景中的几何体数量,在光栅化过程中使用的渲染选项...
一旦编写了程序,优化代码和数据文件所需的时间通常与最初编写代码所用的时间一样长。在试图提高OpenGL性能时尤其如此。许多因素都会影响性能,从纹理文件的大小和格式到场景中的几何体数量,在光栅化过程中使用的渲染选项。如果代码是用来检测和避免图形卡不支持的特殊功能,则添加代码可以使程序运行得更快。良好的编程实践和对常见OpenGL性能瓶颈的了解可以大大提高速度以及OpenGL应用程序的质量。OpenGL是一种编程接口,允许软件应用程序快速高效地创建三维(3D)场景。在应用程序本身的数据结构中可以获得OpenGL®性能的巨大改进。OpenGL®场景和动画通常需要大量的数据树,数据结构和数组。在满足应用程序需求的同时,采用尽可能少的时间的容器结构和搜索算法可以加快数据的处理速度并将其移动到图形处理单元(GPU)进行显示。了解OpenGL®如何要求数据格式化也有帮助,因为某些编译时优化可能会根据所使用的语言进行。纹理文件是OpenGL性能可以提高的一个共同领域。这些图像文件的像素尺寸应该只有2的幂次方,即使硬件不需要它。它们也应该在图像编辑器中优化为尽可能小。通常,动画或移动的对象不需要像保持静止的对象那样详细的纹理在不牺牲太多质量的情况下尽可能使用最小的纹理可以大大提高帧速率。一个常见的陷阱,特别是对于新程序员或艺术家来说,就是使用过多的几何图形。有很多技巧可以帮助减少模型中的多边形数目的同时又不牺牲细节。经常犯的一个错误是使用模型的几何体来表示可以更有效地显示在纹理图像中的细节。大多数模型实际上非常简单,复杂的功能实际上是通过凹凸贴图、法线和纹理映射来实现的。简化了,优化模型将通过减少每个顶点上需要执行的计算数量来提高OpenGL的性能,当涉及到硬件时,对最小公分母进行编程是有益的。一些高端图形卡实现了令人难以置信的令人兴奋的OpenGL®功能,但大多数其他图形卡都不支持这些功能。通过使用很少的扩展和仅依赖于基本任务的硬件加速,OpenGL®的性能可以在各个方面得到提高几乎所有的系统,防止了某些图形卡无法达到可接受的帧速率的情况。在试图提高OpenGL®性能时,分析软件也非常重要。分析器将测量每行代码、每个功能的执行时间,以及程序中的每个操作。这是识别瓶颈位置的一种非常有效的方法。如果某个函数比其他函数花费的时间更长,则可以将其作为优化的目标。这有时会导致对某些代码段的大量重写,但最终它可以创建一个运行平稳的程序尽可能的
-
发表于 2020-08-06 16:37
- 阅读 ( 702 )
- 分类:电脑网络