如果我理解正确的话,图形卡被编程为显示2D和3D图形,这些卡具有本地功能,但因为这些功能过时了,很难使用,我们没有使用驱动程序,这使得程序员的生活更容易。
现在,我的问题是,如果有一些本机显卡函数教程,如果这些教程是通用的,那么它在每一块显卡上都有效,或者像ASM语言那样在不同的显卡上有所不同。如果有教程,我可以使用C语言或C++吗,或者我需要具备asm知识?
发布于 2011-12-02 21:41:36
对GPU进行编程(至少是高级功能)的方式通常是通过MMIO (如,虚拟内存中的地址对应于GPU中的寄存器,而不是实际的DRAM),或更经常地,通过命令缓冲区(如,一块内存用于存储GPU的命令,GPU按顺序读取)。
现在,这些命令和寄存器非常依赖于硬件(甚至在单个硬件供应商中也是如此):例如,请参阅ATI R600寄存器。它们根本不是“通用的”。
这些类型的接口是驱动程序开发人员用来实现典型程序使用的DirectX和OpenGL API的接口。
对于这一级别的编程,最好的“教程”来源可能是linux中的开源驱动程序。
发布于 2011-12-02 21:35:24
现在有更多标准化的方式与计算机中的图形子系统对话,这是一个很好的原因。除非你已经有了一个特定的平台,否则我建议你坚持使用标准的应用程序接口,即通过OpenGL或DirectX。
发布于 2011-12-02 21:34:36
如果我理解正确的话,图形卡被编程为显示2D和3D图形,这些显卡具有原生功能,但由于这些功能过时且难以使用,我们不使用驱动程序,这使得程序员的工作更容易。
在某种意义上,是的,虽然没有过时,但它都是关于抽象的。
网上有几个教程,例如OpenGL there is nehe.gamedev.net DirectX也有一些教程,尽管OpenGL具有可移植性的巨大优势,但只要使用你最喜欢的搜索引擎即可。
通常,您可以使用C或C++,如果您没有某些极端需求,则不需要了解任何ASM。
https://stackoverflow.com/questions/8356863
复制相似问题