什么是 Direct3D?它是一个API,不是吗?是Windows实现的还是显卡实现的?
是的,Direct3D 是一个 API。它(大部分)由 Windows 本身实现。然而,Windows会将相当一部分实际工作分流给显卡的驱动程序,并最终分流给gfx卡本身,因此也可以说gfx卡“实现”了D3D。
如果显卡实现了 Direct3D API,为什么其他操作系统不能使用该显卡的 Direct3D 资源?
他们可以,而且确实这么做了,但只有相对较小(但通常是关键部分)的 D3D 功能是由卡的硬件直接实现的,因此需要在软件方面做更多的工作来实现 D3D。
如果Direct3D是由Windows实现的,它必须使用显卡资源,例如OpenGL或OpenCL。
不,那是一个误会。OpenGL 和 OpenCL 也是 API,并且仅部分由 gfx 硬件实现(就像 D3D 一样)。gfx 硬件通常有一个(专有的)“本机”API,这是 gfx 驱动程序(适用于 D3D 和 OpenGL)使用的。
如果 Direct3D 调用不是直接到显卡,则会由于中间调用而变慢。
不一定有任何“中间调用” - D3D 驱动程序使用卡本机 API,如上所述。
归档时间: |
|
查看次数: |
698 次 |
最近记录: |