在不同的系统中(Windows,linux)对opengl的支持据说是不同的,Windows下最终要调用opengl32.dll,linux下的估计支持的好一些,可是安装了(集成或者是独立的显卡的)显卡驱动的话,Windows下也会由opengl32.dll转为调用指定显卡的驱动文件。
然后就是不同的显卡,以及显卡驱动对opengl的支持。似乎显卡和显卡驱动对opengl的支持属于两个级别的。
这就是这些天我根据一些资料得到的结论,有点乱且不清晰,各位可否帮我整理一下结构、联系,或者提供点资料让我了解下?
谢谢了!

解决方案 »

  1.   

    操作系统要控制硬件本身的工作,完全是通过驱动程序来实现的;
    所以不管你用OpenGL还是D3D,抑或其它什么,都属于上层封装,最终都是调用了硬件驱动;
    当然除非你够NB,自己写驱动,去控制硬件,但那就如同机器语言差不多,完全不通用,换个不同型号的硬件就要重新开发...
    显卡和显卡驱动对opengl的支持:显卡的支持,是取决于有没有实现这个功能的硬件,显卡驱动的支持,是驱动是否提供了这个通用接口(这个接口可以去查询硬件相关寄存器,获取显卡是否支持的消息)。个人理解,有误勿怪。
      

  2.   

    首先,程序最终是要靠硬件执行的。
    opengl就是提供了一套函数库,这些函数库的执行代码必将使用硬件来执行,或许是用cpu,或许使用显卡。很明显,显卡加速对很多图像计算做了优化,opengl会尽量采用显卡来执行图形计算类的代码。但是各种显卡支持的图像计算的能力不同,怎么确定哪些显卡能支持哪些图像计算呢?显卡驱动会做这些工作。所以,你就不用担心那么多了,只管调用opengl,显卡能计算的,显卡计算;显卡不能计算的,cpu计算。
    以上是我的个人理解,仅供参考。
      

  3.   

    opengl,dx只是工业标准,说白了就是头文件中的函数申明,具体内容由显卡厂商实现,即所谓的显卡驱动程序!