在图形芯片领域
,nVidia是一个后来者
,它的历史仅相当于ATi的一半
。1993年初,NVIDIA 由 Jen-Hsun Huang,,Chris Malachowsky和 Curtis Priem 三人共同创办,但是,nVidia又一度是图形处理芯片领域的最强者,nVIDIA出品的Linux驱动安装软件工具包将自动检查计算机的各种细节,并能自动安装好各种驱动程序
。这里介绍一下驱动安装、升级的简单过程。Linux系统自带的驱动程序只包括了nVIDIA 2D加速,如果需要获取更好的3D加速效果,需要安装nVIDIA专用驱动软件工具包。3D 硬件加速在需要绘制三度
空间对象的时候是非常宝贵的,例如
游戏、三维CAD、以及 3D 成像。本文应用环境是Red Had Enterprise Linux 4.0、nVIDIA显卡型号:华硕N6200/TD/128M(6200AGP)。
一、准备工作
在配置nVIDIA显卡 之前, 您需要了解所安装的系统的下列信息:显示器规格,显示卡的芯片类型,显示卡的显存容量, 显示器的规格被 X11 用来决定显示的分辨率和刷新率。这些规格通常可以从显示器所带的文档中, 以及制造商的网站找到。 需要知道两个数字范围:垂直刷新率和水平刷新率。 显示卡的芯片类型将决定 X11 使用什么模块来驱动图形硬件。 绝大多数的硬件都能被自动检测,但是了解它在自动检测出错的时候还是很有用处的。显示卡的显存大小决定了系统支持的分辨率和颜色深度。了解这些限制非常重要。因为安装驱动程序可能需要配合核心来编译,所以会使用到内核源代码,此外,也需要编译器 ( compiler ) 的帮助,因此,先确定您的 Linux 系统当中已经下列软件的存在 :kernel-source 、kernel 、gcc 、make。 打开一个终端,使用命令检查:
# rpm -qa | grep gcc;rpm -qa | grep make;rpm -qa | grep kernel
如果没有3D API在开发程序时,程序员必须要了解全部的显卡特性,才能编写出与显卡完全匹配的程序,发挥出全部的显卡性能。而有了3D API这个显卡与软件直接的接口,程序员只需要编写符合接口的程序代码,就可以充分发挥显卡的不必再去了解硬件的具体性能和参数,这样就大大简化了程序开发的效率。 同样,显示芯片厂商根据标准来设计自己的硬件产品,以达到在API调用硬件资源时最
优化,获得更好的性能。有了3D API,便可实现不同厂家的硬件、软件最大范围兼容。比如在最能体现3D API的
游戏方面,游戏设计人员设计时,不必去考虑具体某款显卡的特性,而只是按照3D API的接口标准来开发游戏,当游戏运行时则直接通过3D API来调用显卡的硬件资源。 目前个人电脑中主要应用的3D API有DirectX和OpenGL。DirectX目前已经成为游戏的主流,市售的绝大部分主流游戏均基于DirectX开发,例如《帝国时代3》、《孤岛惊魂》、《使命召唤2》、《Half Life2》等流行的优秀游戏。而OpenGL目前则主要应用于专业的图形工作站,在游戏方面历史上也曾经和DirectX分庭抗礼,产生了一大批的优秀游戏,例如《Quake3》、《Half Life》、《荣誉勋章》的前几部、《反恐精英》等,目前在DirectX的步步进逼之下,采用OpenGL的游戏已经越来越少,但也不乏经典大作,例如基于OpenGL的《DOOM3》以及采用DOOM3引擎的《Quake4》等,无论过去还是现在,OpenGL在游戏方面的主要代表都是著名的ID Software。
·OpenGL
继DirectX后,OpenGL可说是下一个最受欢迎的3D API。其实OpenGL比DirectX存在的时间更久,相对于DirectX只可以应用在微软的平台,OpenGL则可以应用在很多不同的操作系统上。目前,大多数Linux下的3D加速游戏采用的都是OpenGL,因此对于nVIDIA最新的驱动程序,只需做很小的改动就可以适于大多数的游戏。Linux下的3D API是基于OpenGL的。OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。
OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。 OpenGL是个与.硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。
OpenGL不是自由软件,它的版权、商标(OpenGL这个名字)都归SGI公司所有。但在Linux下有OpenGL的取代产品:Mesa。Mesa提供和OpenGL几乎完全一致的接口,对利用OpenGL API
编程的人来说,几乎感觉不到任何差异。Mesa是遵循GPL协议(部分遵循LGPL协议)的自由软件,而且,正是由于Mesa的自由性,它在对新硬件的支持度等方面都超过了OpenGL。Mesa可以从www.mesa3d.org取得。在Linux下开发OpenGL程序,最常用的工具是GLUT(The OpenGL Utility Toolkit)。它可以创建一个或多个OpenGL窗口,响应、处理用户的交互操作、简单的弹出式菜单以及一些内置的绘图和字体处理功能。GLUT和OpenGL一样,可以移植于多种平台。由于它良好的表现,现在它已经成为Mesa发布的标准套件之一。
·DRI,全称 Direct Rendering Infrastructure,是 X 窗口系统里允许应用程序以一种
安全有效的方式直接访问显示设备的框架。它包括对 X
服务器,某些X客户端库和内核的改动。DRI 的第一个主要应用是创建快速的 OpenGL 实现。DRI 是 XFree86 4.x 以及其后继者 X.org 的组成部分,也是 Mesa -个 OpenGL API 的开源实现-的组成部分。有一些3D加速驱动是按照 DRI 标准写成的,包括 ATI,Matrox,3DFX 和 Intel。 DRI 最初是由 Precision Insight, Inc. (PI) 公司在 Red Hat Inc. 和 SGI 的合作和部分资助下开发的。随着 PI 被 VA Linux 所收购,以及后来 VA Linux 退出 Linux 领域,DRI 现在由Tungsten Graphics Inc.公司继续维护。该公司由当初 PI 公司的一些 DRI 开发者所创建。Tungsten Graphics 是目前所有 DRI 开发的焦点,许多开源开发者通过 sourceforge 上的 DRI 项目继续为 DRI 贡献代码。