跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 GLSL 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
GLSL
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''GLSL'''-'''OpenGL Shading Language'''嘛叫做'''GLslang''',是一个以 C 語言為基礎的懸階著色語言。伊是由 OpenGL ARB 所建立,提供開發者對繪圖管線閣較濟的直接控制,無需要使用結合編語言抑是硬體規格語言。 ==背景== 隨著近年來繪圖卡的進步, 已經佇渲染管線頂懸的頂點(vertex)佮片斷(fragment)層次中,加入更加有伸勼空間的新功能。 達到佇這个層次內底,使用這片斷和頂點著色器的可編程性。 上頭仔這个功能是用組合語言編寫色器來達到的。組合語言對開發者的使用是無直觀複雜的。OpenGL ARB 建立了 OpenGL 對色語言,為 GPU 的程式設計提供閣較直觀的方法,做維護開放標準的時陣,對帶動就有幫贊 OpenGL 的歷史。 上代先 OpenGL 一爿五是以擴充形式引入,後來 OpenGL ARB 佇咧 OpenGL 二鋪零核心中正式納入 GLSL。自一九九二年建立的 OpenGL 一孵空起來,OpenGL 二嬸空是頭一个 OpenGL 的大修改版。 使用 GLSL 有如下好處: * 具上無仝款台內底的相容性,包括講 Macintosh、Windows 和 Linux 等作業系統。 * 所有支援 OpenGL 對色語言的繪圖卡,攏會當用來編寫著色器。 * 允准廠商做特定的繪圖卡產生最佳化的代碼。 ==詳細資料== ===資料類型=== OpenGL 著色語言規格定義二十二个基本的資料類型,有一寡用法佮 C 相仝,其他的是繪圖處理器特有的。 * void–用於無倒轉值的函式 * bool–條件類型,其值會當是真抑是假 * int–帶負號整數 * float–浮點數 * vec 二–兩个浮點數組成的向量 * vec 三–三个浮點數組成的向量 * vec 四–四个浮點數組成的向量 * bvec 二–兩个布林組的向量 * bvec 三–三个布林組的向量 * bvec 四–四个布林組的向量 * ivec 二–兩个整數組成的向量 * ivec 三–三个整數組成的向量 * ivec 四–四个整數組成的向量 * mat 二–浮點數的二 X 二矩陣 * mat 三–三點數的 X 三矩陣 * mat 四–浮點數的四 X 四矩陣 * sampler 一 D–用來存取一維紋理的句柄(handle)(抑是:操作,作名詞解。) * sampler 二 D–用來存取二維紋理的句柄 * sampler 三 D–用來存取三維紋理的句柄 * samplerCube–用來存取立方影射花草的句柄 * sampler 一 Dshadow–用來存取一維深度紋理的句柄 * sampler 二 Dshadow–用來存取二維深度紋理的句柄 ===運算子=== OpenGL 對色語言提供類似 C 語言的運算子。予開發者編寫著色器的靈活性。GLSL 包括著矣 C 和 C + + 運算子,除了位元運算子佮指標以外。 ===函式佮控制結構=== 類似 C 語言,GLSL 支援迴圈佮分支,包括講 if、else、if / else、for、do-while、break、continue 等。 支援使用者定義函式,而且各種常用的函式也已經內建。這也就予繪圖卡製造商,會當佇硬體層次上最佳化遮的內建的函式。真濟函式和 C 語言相仝,如 exp ( ) 以及 abs ( ),其他繪圖編程特有的,如 smoothstep ( ) 以及 texture 二 D ( )。 ===編譯佮執行=== GLSL 對色器毋是獨立的應用程式;其實愛使用 OpenGL API 的應用程式。C、C + +、C #、Delphi 和 Java 攏支援 OpenGL API,而且支援 OpenGL 對色語言。 GLSL 色器本身只是簡單的字串集,遮的字串集會傳送到硬體廠商的驅動程式,並且對程式內部的 OpenGL API 進入點編譯。對色器會當對程式內底抑是讀入純文字檔來即時建立,但是必須用字串形式傳送到驅動程式。 用落去編譯、連結並傳送參數到 GLSL 程式的 API 集,已經佇咧三个 OpenGL 擴展中規定,而且得欲成做 OpenGL 二鋪零核心的一部份。這是 API 會當下擴展內底揣著: * ARB 上點著色器 * ARB 斷去色器 * ARB 著色器物件 ===GLSL 上點著色器的簡單範例=== ===GLSL 片斷著色器的簡單範例=== ===工具=== GLSL 著色器會當先建立和測試,這馬有以下 GLSL 開發工具: * RenderMonkey-這个軟體是由 ATI 製作的,提供界面用的來建立、編譯佮除錯 GLSL 著色器,和 DirectX 色器仝款。干焦會當佇 Windows 平台上執行。 * GLSLEditorSample-佇咧 Mac OS X 上,伊是目前唯一可用的程式,其實提供著色水的建立佮編譯,但是袂使除毋著。伊是 cocoa 應用程式,干焦會當佇 Mac OS X 上執行。 * Lumina-Lumina 是新的 GLSL 開發工具。其使用 QT 界面,會當迒平台。 ==參考文獻== * Rost , Randi J . _ OpenGL Shading Language _ . 一 st ed . Pearson Education , Inc , 兩千空四 . ISBN 空九三百二十一撨一知九千七百八十九九石五 * Kessenich , John , & Baldwin , David , & Rost , Randi . _ The OpenGL Shading Language _ . Version 一孵一空 . 五十九 . 三 Dlabs , Inc . Ltd . https : / / web . archive . org / web / 二十五空七百空四抹空四百一十七刣一千三百一十七 / http : / / developer . 三 dlabs . com / documents / index . htm ==外部連結== * GLSL 語言規格,版本一爿二空 * GLSL 參考表 * OpenGL 片斷著色器的規格 * OpenGL 上點著色器規格 * OpenGL 程式規格 * 官方 OpenGL 網站 * 來自 Lighthouse 三 D 的教學佮範例 * 來自 NeHe Productions 的教學佮範例 * GLSL 開發環境 * RenderMonkey 對色器開發環境 * Geist 三 D 繪圖 ia̋n-jín,內含 GLSL 編輯器 * Lumina 跨平台 GLSL IDE ==參見== * 對色語言 * HLSL,懸坎仔色語言 * Cg,nVIDIA 的著色語言 * 程式設計 * 計算機圖形學 * OpenGL * 著色器 [[分類: 待校正]]
返回到「
GLSL
」。