在圖形芯片領域,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
二、 Linux 下3D顯卡相關知識
·The XFree86 Project
XFree86是由X11R6發展出來的最初專門給Intel X86 結構PC機使用的X Window的系統。而後XFree86發展成為幾乎適用於所有類UNIX操作系統的X Window系統。XFree86是一個開放源代碼的基於X11的桌面基礎構架。Red Hat 9中使用的X Window系統就是 XFree86 4.3。XFree86從2004年發布的版本4.4起不再遵從GPL許可證發行,而是遵循新的XFree86 1.1 許可證。由於XFree86不再遵從GPL許可證發行,導致許多發行套件不再使用XFree86,轉而使用Xorg。XFree86官方網站是http://www.xfree86.org/
·The XOrg Foundation(X.org)
Xorg 是由 X.Org 基金會發行的開放源代碼 X Window 系統實現的 X 服務。Xorg 遵從GPL許可證發行。Xorg 基於 XFree86 4.4RC2 和 X11R6.6 的代碼。X.Org 基金會在 2004 年 4 月發布了 X11R6.7。在 2005 年 2 月發布了 X11R
·3D API
API是Application Programming Interface的縮寫,是應用程序接口的意思,而3D API則是指顯卡與應用程序直接的接口。3D API能讓編程人員所設計的3D軟件只要調用其API內的程序,從而讓API自動和硬件的驅動程序溝通,啟動3D芯片內強大的3D圖形處理功能,從而大幅度地提高了3D程序的設計效率。
如果沒有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 貢獻代碼。