(Translated by https://www.hiragana.jp/)
GLSL - 维基百科,自由的百科全书 とべ转到内容ないよう

GLSL

维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
GLSL基本きほんかまち

GLSL - OpenGL Shading Language 也稱さく GLslangいちCげんため基礎きそてき高階たかしなちょしょくげん。它是ゆかり OpenGL ARB ところ建立こんりゅう提供ていきょう開發かいはつしゃたい繪圖えずかんせんさらてき直接ちょくせつひかえせい,而無需使用しよう汇编语言あるかたからだ規格きかくげん

背景はいけい[编辑]

ずいちょちか年來ねんらい繪圖えず卡的進步しんぽそこ頂點ちょうてん(vertex)かずかただん(fragment)てき渲染かんせんちゅう加入かにゅうさらおおさら彈性だんせいてきしんこうのう。 這個そうてきへんほどせいゆかりかただん頂點ちょうてんちょしょく實現じつげん

最初さいしょ這個こうのう以匯へんげんせんうつしちょしょくらいたちいた直觀ちょっかん複雜ふくざつ。OpenGL ARB 建立こんりゅうりょう OpenGL ちょしょくげんため GPU てきほどしき設計せっけい提供ていきょうさら直觀ちょっかんてき方法ほうほう同時どうじ維護りょう OpenGL 一向いっこうてき開放かいほう標準ひょうじゅん

最初さいしょ作為さくい OpenGL 1.4 てき插件,後來こうらいゆかり OpenGL ARBえいOpenGL Architecture Review Board ざい2004 OpenGL 2.0 かく心中しんちゅうの正式せいしき納入のうにゅう 1992 ねん OpenGL 1.0 發布はっぷおこりだいいち OpenGL てきだい改版かいはん

使用しよう GLSL ゆう如下こうしょ

  • 具有ぐゆうまたが平台ひらだいまとしょうようせい包括ほうかつ MacintoshWindows Linux とう作業さぎょう系統けいとう
  • へんうつしてきちょしょく以在所有しょゆう支援しえん OpenGL ちょしょくげんてき繪圖えず卡上使用しよう
  • 允許いんきょしょうしょうため特定とくていてき繪圖えず卡架構設計せっけいさいけいてきだい碼。

詳細しょうさい資料しりょう[编辑]

資料しりょう類型るいけい[编辑]

OpenGL ちょしょくげん規格きかく定義ていぎりょう 22 基本きほん資料しりょう類型るいけいゆう些用ほうあずか C あいどう,其它てき繪圖えず處理しょり特有とくゆうてき

  • void – よう於沒ゆうかえしかい值的はこしき
  • bool – 條件じょうけん類型るいけい,其值以是しんあるかり
  • int – たい負號ふごう整數せいすう
  • float – 浮點すう
  • vec2 – 2 浮點すう組成そせいてきむこうりょう
  • vec3 – 3 浮點すう組成そせいてきむこうりょう
  • vec4 – 4 浮點すう組成そせいてきむこうりょう
  • bvec2 – 2 ぬのりん組成そせいてきむこうりょう
  • bvec3 – 3 ぬのりん組成そせいてきむこうりょう
  • bvec4 – 4 ぬのりん組成そせいてきむこうりょう
  • ivec2 – 2 整數せいすう組成そせいてきむこうりょう
  • ivec3 – 3 整數せいすう組成そせいてきむこうりょう
  • ivec4 – 4 整數せいすう組成そせいてきむこうりょう
  • mat2 – 浮點すうてき 2X2 のりじん
  • mat3 – 浮點すうてき 3X3 のりじん
  • mat4 – 浮點すうてき 4X4 のりじん
  • sampler1D – ようらいそんいち維紋てき句柄くがら(handle)(ある操作そうささく名詞めいしかい。)
  • sampler2D – ようらいそん維紋てき句柄くがら
  • sampler3D – ようらいそんさん維紋てき句柄くがら
  • samplerCube – ようらいそん取立とりたてかたうつもんてき句柄くがら
  • sampler1Dshadow – ようらいそん一維深度紋理的句柄
  • sampler2Dshadow – ようらいそん二維深度紋理的句柄

運算うんざん[编辑]

OpenGL ちょしょくげん提供ていきょう類似るいじCげんてき運算うんざんきゅう開發かいはつしゃへんうつしちょしょくてきれい活性かっせい。GLSL 包含ほうがんりょう CC++運算うんざんじょりょうもと運算うんざん指標しひょう以外いがい

はこしきひかえせい結構けっこう[编辑]

類似るいじCげん,GLSL 支援しえん迴圈ぶんささえ包括ほうかつ if、else、if/else、for、do-while、break、continue とう

支援しえん使用しようしゃ定義ていぎはこしき,且各種かくしゅ常用じょうようてきはこしき也已內建。這也就讓繪圖えず製造せいぞうしょうのう夠在かたからだそうじょうさいけい這些內建てきはこしき許多きょたはこしきあずか C げんしょうどう,如 exp() 以及 abs(),其它繪圖えずへんほど特有とくゆうてき,如 smoothstep() 以及 texture2D()。

へんやく執行しっこう[编辑]

GLSL ちょしょく獨立どくりつてき應用おうようほどしき;其需よう使用しよう OpenGL API てき應用おうようほどしき。C、C++、C#、Delphi Java みな支援しえん OpenGL API,且支援しえん OpenGL ちょしょくげん

GLSL ちょしょく本身ほんみただ簡單かんたんてきくししゅう,這些くし集會しゅうかい傳送でんそういたかたからだしょうしょうてき驅動くどうほどしきなみしたがえほどしき內部てき OpenGL API 進入しんにゅうてんへんやくちょしょくしたがえほどしき內部ある讀入じゅん文字もじ檔來即時そくじ建立こんりゅうただし必須ひっす以字くし形式けいしき傳送でんそういた驅動くどうほどしき

よう以編やく連結れんけつなみ傳送でんそうさんすういた GLSL ほどしきてき API しゅうやめざいさん OpenGL 擴展ちゅう規定きてい,且即はたなりため OpenGL 2.0页面そん档备份そん互联网档あん核心かくしんてきいち部分ぶぶん。這些 API ざい以下いか擴展ちゅう找到:

GLSL 頂點ちょうてんちょしょくてき簡單かんたんはんれい[编辑]

void main(void)
{
    gl_Position = ftransform();
}

GLSL かただんちょしょくてき簡單かんたんはんれい[编辑]

void main(void)
{
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}

工具こうぐ[编辑]

GLSL ちょしょく以事さき建立こんりゅうはかこころみ現有げんゆう以下いか GLSL 開發かいはつ工具こうぐ

  • RenderMonkey页面そん档备份そん互联网档あん) - 這個軟體よし ATI 製作せいさくてき提供ていきょう界面かいめんよう建立こんりゅうへんやくじょ錯 GLSL ちょしょくかず DirectX ちょしょくいちよう。僅能ざい Windows 平台ひらだいじょう執行しっこう
  • GLSLEditorSample - ざい Mac OS X うえ,它是目前もくぜん唯一ゆいいつ可用かようてきほどしき,其提供ていきょうちょしょくてき建立こんりゅうへんやくただし不能ふのうじょ錯。它是 cocoa 應用おうようほどしき,僅能ざい Mac OS X うえ執行しっこう
  • Lumina页面そん档备份そん互联网档あん) - Lumina しんてき GLSL 開發かいはつ工具こうぐ。其使用しよう QT 界面かいめん以跨平台ひらだい

參考さんこう文獻ぶんけん[编辑]

外部がいぶ連結れんけつ[编辑]

まいり[编辑]