Can you summarize the following document?
        
  隨著近年來繪圖卡的進步, 已在渲染管線中的頂點(vertex)和片斷(fragment)層次中,加入更具彈性的新功能。 達到在這個層次中,使用片斷和頂點著色器的可程式設計性。  最初這個功能是以組合語言撰寫著色器來達到的。組合語言對開發者的使用是不直觀而複雜的。OpenGL ARB 建立了 OpenGL 著色語言,為 GPU 的程式設計提供更加直觀的方法,當維護開放標準的時候,就有助於帶動 OpenGL 的歷史。  最初 OpenGL 1.5 是以擴充形式引入,後來 OpenGL ARB 在 OpenGL 2.0 核心中正式納入 GLSL。自 1992 年建立的OpenGL 1.0 起,OpenGL 2.0 是第一個 OpenGL 的大修改版。  使用 GLSL 有如下好處:

  

  OpenGL 著色語言規格定義了 22 個基本資料型別,有些用法與 C 相同,其它的是繪圖處理器特有的。

  OpenGL 著色語言提供類似於 C語言的運運算元。給開發者編寫著色器的靈活性。GLSL 包含了 C和C++運運算元,除了位元運運算元和指標以外。

  類似於 C語言,GLSL 支援迴圈和分支,包括 if、else、if/else、for、do-while、break、continue 等。  支援使用者定義函式,且各種常用的函式也已內建。這也就讓繪圖卡製造商,能夠在硬體層次上最佳化這些內建的函式。許多函式與 C 語言相同,如 <nowiki>exp()</nowiki> 以及 <nowiki>abs()</nowiki>,其它繪圖程式設計特有的,如 <nowiki>smoothstep()</nowiki> 以及 <nowiki>texture2D()</nowiki>。

  GLSL 著色器不是獨立的應用程式;其需要使用 OpenGL API 的應用程式。C、C++、C#、Delphi 和 Java 皆支援 OpenGL API,且支援 OpenGL 著色語言。  GLSL 著色器本身只是簡單的字串集,這些字串集會傳送到硬體廠商的驅動程式,並從程式內部的 OpenGL API 進入點編譯。著色器可從程式內部或讀入純文字檔來即時建立,但必須以字串形式傳送到驅動程式。  用以編譯、連結並傳送引數到 GLSL 程式的 API 集,已在三個 OpenGL 擴充套件中規定,且即將成為 OpenGL 2.0 核心的一部分。這些 API 可在以下擴充套件中找到:

  GLSL 著色器可以事先建立和測試,現有以下 GLSL 開發工具:
GLSL - OpenGL Shading Language 也稱作 GLslang,是一個以C語言為基礎的高階著色語言。它是由 OpenGL ARB 所建立,提供開發者對繪圖管線更多的直接控制,而無需使用組合語言或硬體規格語言。