Can you summarize the following document?
        
  1988年5月,Pixar公佈了第三版RenderMan規範,將「著色器」的使用推廣到了我們目前所知的各大應用領域。  隨著圖形處理器的進步,OpenGL和Direct3D等主要的圖形軟體庫都開始支援著色器。第一批支援著色器的 GPU 僅支援畫素著色器,但隨著開發者逐漸認識到著色器的強大,很快便出現了頂點著色器。2000年,第一款支援可程式設計畫素著色器的顯示卡 Nvidia GeForce 3(NV20)問世。Direct3D 10 和 OpenGL 3.2 則引入了幾何著色器。  目前,圖形硬體正在朝發展。

  常用的著色器有三種。比較老的顯示卡傾向於使用不同的處理單元處理不同型別的著色器,但新出的顯示卡通常都支援,可以執行任意型別的著色器、更好地發揮顯示卡的處理能力。

  二維著色器處理的是數字影象,也叫紋理,著色器可以修改它們的畫素。二維著色器也可以參與三維圖形的渲染。目前只有「畫素著色器」一種二維著色器。

  畫素著色器(英語:pixel shader)也叫片段著色器(英語:fragment shader),用於計算「片段」的顏色和其它屬性,此處的「片段」通常是指單獨的畫素。最簡單的畫素著色器只有輸出顏色值;複雜的畫素著色器可以有多個輸入輸出。畫素著色器既可以永遠輸出同一個顏色,也可以考慮光照、做凹凸貼圖、生成陰影和高光,還可以實現半透明等效果。畫素著色器還可以修改片段的深度,也可以為多個渲染目標輸出多個顏色。  三維圖形學中,單獨一個畫素著色器並不能實現非常複雜的效果,因為它只能處理單獨的畫素,沒有場景中其它幾何體的資訊。不過,畫素著色器有螢幕座標資訊,如果將螢幕上的內容作為紋理傳入,它就可以對當前畫素附近的畫素進行取樣。利用這種方法,可以實現大量二維後期特效,例如模糊和邊緣檢測。  畫素著色器還可以處理管線中間過程中的任何二維影象,包括精靈和紋理。因此,如果需要在柵格化後進行後期處理,畫素著色器是唯一選擇。

  三維著色器處理的是三維模型或者其它幾何體,可以訪問用來繪製模型的顏色和紋理。頂點著色器是最早的三維著色器;幾何著色器可以在著色器中生成新的頂點;細分曲面著色器(英語:tessellation shader)則可以向一組頂點中新增細節。  由於這些型別的著色器終究會用在GPU的流水線中,下面簡述它們是如何被安排在流水線中的。

  對於圖形流水線的一般描述,參見繪圖管線。

  著色器被用來同時處理大量的資料,比如螢幕上的一整塊畫素群,或者一個模型結構的所有頂點。平行計算適用於這樣的情況,而且當今的GPU也設計有多核結構來極大的提高處理效率。

  OpenGL從版本1.5開始整合了一種類C語言的著色語言,稱為OpenGL著色語言(GLSL)。同時NVidia也開發了Cg,其語法與GLSL類同。  在Direct3D裡,著色器使用高階著色器語言(HLSL)。它的資料型別和允許的演算法複雜程度因不同的版本而異。下表簡述了Direct3D的不同版本:

  XNA中實現Shader很簡單。對XNA程式來說,Shader是一個小程式,只要把shader檔案(.fx)匯入到Contents 即可,會自動生成素材。再透過XNA Effect class 來載入和編譯shader。HLSL可以在XNA或是DirectX使用。  舊版: 新版(4.0):
計算機圖形學領域中,著色器(英語:shader)是一種計算機程式,原本用於進行影象的濃淡處理(計算影象中的光照、亮度、顏色等),但近來,它也被用於完成很多不同領域的工作,比如處理CG特效、進行與濃淡處理無關的、甚至用於一些與計算機圖形學無關的其它領域。