我正在阅读一本关于OpenGL编程的书,在 OpenGL简介部分,该书说OpenGL旨在能够在软件中实现如果没有可用的图形硬件。我的论点/问题是CPU还不是硬件吗? CPU可能不专用于图形的事实并不完全相关,它仍然能够执行这样的任务。
答案 0 :(得分:4)
作者的意思是,OpenGL(以及其他渲染API)所依赖的某些操作是以硬连线电路的形式在GPU上实现的。即使在可编程GPU上,某些功能也硬连线到芯片的硅结构中。例如,整个混合,深度测试和模板操作(这就是为什么在着色器中重新实现这些操作会导致性能下降几个数量级)。纹理提取和插值等内容也可以作为芯片上的专用硬件实现。
答案 1 :(得分:0)
我认为措辞有点过时了。它试图说的是OpenGL可以完全在CPU上运行的软件中实现,而不是需要专门的硬件。
当GPU由仅执行固定功能的硬件组成时更有意义。在这种情况下,“在软件中”自动暗示渲染逻辑是在CPU上运行的软件中实现的。
现在,在图形管道的大部分可编程的情况下,声明再也没有多大意义了。真正的区别在于渲染是在CPU还是GPU上运行。您可以说在两种情况下都是“在软件中”完成渲染,因为两种类型的处理器都运行程序员实现的代码。它们具有非常不同的性能特征,用于编程它们的技术(语言)是不同的。
除了这些技术性,恕我直言,无论如何,声明毫无意义。我无法想象任何 API严格要求专用硬件。无论您如何设计API,它始终可以在通用处理器上的软件中实现。从这个意义上讲,该声明没有任何意义。
答案 2 :(得分:-1)
通过这种逻辑,您手动绘制也可以在硬件中完成,比专用GPU慢几个数量级?
这就是术语的含义,无论GPU是否可用(或可用)。它不再是一个问题,减速将是如此巨大,没有人甚至不再困扰。您要么具有硬件要求,要么甚至无法运行。