<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=GLSL</id>
	<title>GLSL - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=GLSL"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=GLSL&amp;action=history"/>
	<updated>2026-04-11T07:47:13Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=GLSL&amp;diff=402372&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=GLSL&amp;diff=402372&amp;oldid=prev"/>
		<updated>2025-08-22T10:29:16Z</updated>

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