如果我理解正确,图形卡被编程为显示2D和3D图形,并且这些卡具有本机功能,但由于这些功能已经过时且难以使用,我们不使用驱动程序,这使得程序员的生活更轻松。
现在,我的问题是,如果有一些本机图形卡功能教程,如果它们是通用的,它可以在每个图形卡上工作,或者像ASM语言那样不同。如果有教程,我可以使用C语言或C ++,或者我需要知识吗?
答案 0 :(得分:6)
GPU的编程方式(至少是高级功能)通常是通过MMIO(如在,虚拟存储器中的地址对应于GPU中的寄存器而不是实际的DRAM),或者更常见的是通过命令缓冲区(例如,一块内存用于存储GPU的命令,GPU按顺序读取。
现在,这些命令和寄存器非常依赖于硬件(即使在单个硬件供应商中):请参阅示例ATI R600寄存器。它们根本不是“通用的”。
这些类型的接口是驱动程序开发人员用来实现典型程序使用的DirectX和OpenGL API的。
该级别编程的“教程”的最佳来源可能是linux中的开源驱动程序。
答案 1 :(得分:3)
有一个很好的理由,现在有更多标准化的方式与计算机中的图形子系统进行对话。除非你有一个特定的平台,否则我建议你坚持使用标准的API。通过OpenGL或DirectX。
答案 2 :(得分:1)
如果我理解正确,则显卡已编程显示 2D和3D图形和这些卡具有原生功能,但是因为 这些功能已经过时且难以使用,我们不使用驱动程序 使程序员的生活更轻松。
在某种意义上说,虽然没有过时,但它完全是关于抽象的。
网上有几个教程,例如OpenGL 是nehe.gamedev.net DirectX也有很多教程 使用您最喜欢的搜索引擎虽然OpenGL具有很大的优势 便携式。
通常,您可以使用C或C ++,如果您不需要知道任何ASM 没有一些极端的要求。