其他
Shader 入门:GLSL ES(简介和基本语法)
前言
简介
基本语法
;
结束—▼—
//
开头的一行文字/*
和*/
包裹多行文字我是第一行注释
我是第二行注释
*/
—▼—
a-z
或 A-Z
、数字 0-9
和下划线 _
,另外需注意以下几点:gl_
开头// 声明并赋值
float money;
// 声明不赋值
bool isMe;
// 先声明
isMe = true;
// 后赋值
,
分隔:// 都不赋值
int a, b = 110;
// 同时赋值
—▼—
const
关键字来声明常量,常量一但创建就不能更改:// 声明常量必须赋值
AGE = 20;
// error! 常量不可以更改
—▼—
void
;void
(一般都不填)。void main() {
// ...
}
// 接收两个 int 类型参数并返回 int 类型的值的 sum 函数
int sum(int a, int b) {
return a + b;
}
// 首次声明
void foo();
// 允许重复声明
void foo() { ... }
// 定义
void foo(float value) { ... }
void foo(float value1, int value2) { ... }
—▼—
{}
包裹的区域即为一个作用域:int a = 0;
{
int b = 0;
}
}
{
int a = a + 1; // 第二个 a 属于父域,不冲突
int b = a; // 访问当前作用域的 a
}
int c = b; // Error! 当前作用域内不存在 b
int d = a; // 当前作用域的参数 a
}
float age; // Error! 冲突
void age(); // Error! 冲突
int a; // Error! 不可以重复声明
相关资料
https://www.khronos.org/registry/OpenGL/index_es.php
https://www.khronos.org/files/opengles3-quick-reference-card.pdf
https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf
https://www.khronos.org/registry/OpenGL-Refpages/es3.0/
扫描二维码
获取更多精彩
菜鸟小栈