(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 界面かいめん以跨平台ひらだい

参考さんこう文献ぶんけん

[编辑]

外部がいぶ链接

[编辑]

まいり

[编辑]