01 WebGL 着色器编程语言GLSL ES概述

来源:互联网 发布:原来你是这样的网络语 编辑:程序博客网 时间:2024/05/21 06:40

GLSL ES编程语言是在OpenGL着色器语言(GLSL)的基础上,删除和简化了一部分功能后形成的。GLSL ES的目标平台是消费电子产品或嵌入式设备,如智能手机或游戏主机等,因此简化GLSL ES能够允许硬件厂商对这些设备的硬件进行简化,由此带来的好处是降低了硬件的功耗,以及更重要的,减少了性能开销。

GLSL ES的语法与C语言的较为类似(虽然也存在不小的差异)。所以,如果你熟悉C语言,就会发现GLSL ES很容易理解。此外,着色器语言也开始被用来完成一些通用的任务,如图像处理和数据运算(所谓的GPGPU),这意味着GLSL ES有着广泛的应用前景,花点时间来学习它是完全值得。

基础:

就像很多其他语言一样,使用GLSL ES编写着色器程序时,应该注意以下两点:

~程序时大小写敏感的(marina和Marina不同)

~每一个语句都应该以一个英文分号(;)结束。

执行次序:

对JavaScript而言,一旦脚本加载完成,就从第1行逐行执行(解释)了。但是着色器程序和C语言更接近,它从main()函数开始执行的。着色器程序必须有且仅有一个main()函数,而且该函数不能接受任何参数。

main()函数前的void关键字表示这个函数不返回任何值。在JavaScript中,不管一个函数会不会返回值,你都是直接用function关键字来定义它。而在GLSL ES中,如果一个函数有返回值,就必须在定义函数时明确地指定返回值的类型,如果函数没有返回值,也需要用void来明确表示这个函数没有返回值。


注释:

在着色器程序中,你可以添加注释,而且注释格式和JavaScript中的注释格式是相同的。所以,GLSL ES支持一下两种注释。

~单行注释://后直到换行处的所有字符为注释

attribute a_Position; //声明一个attribute变量

~多行注释:/*和*/之间的所有字符为注释。

attibute a_Position;/*前面声明了一个变量这里也是被注释区域*/


阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7岁儿童发烧38度怎么办 儿童发烧到38度怎么办 4岁儿童发烧38度怎么办 9岁儿童发烧38度怎么办 5儿童发烧38度怎么办 咳嗽了20多天怎么办 嘴角烂了怎么办涂什么药 感冒发烧到39度怎么办 6岁宝宝发烧头痛怎么办 生完孩子耻骨疼怎么办 顺产底下外阴红肿伤口流脓怎么办 产后便秘怎么办什么方法最有效 一周岁宝宝拉肚怎么办 三岁宝宝拉水怎么办 喝了过期的青汁怎么办 吃了黑心的苹果怎么办 新生儿两天没拉大便怎么办 贝亲奶瓶不漏怎么办 满月婴儿吃多了怎么办 婴儿吃撑了哭闹怎么办 新生儿吃撑了怎么办啊 新生儿吃了奶粉不吃奶怎么办 新生儿不吃奶也不吃奶粉怎么办 奶瓶吸奶费力不顺畅怎么办 宝宝吃奶粉太勤怎么办 香蕉和地瓜一起吃了怎么办 贝亲奶瓶泡沫多怎么办 四个多月的宝宝拉肚子怎么办 宝宝四个月了拉肚子怎么办 四个月宝宝火大怎么办 刚出生的宝宝便秘怎么办 小宝宝破腹产吸了几口羊水怎么办 换奶粉不拉屎了怎么办 婴儿吃奶粉不拉屎怎么办 1岁半突然不喝奶怎么办 6个月宝宝不吃奶粉怎么办 7个月宝宝不吃奶粉怎么办 5个月宝宝不吃奶粉怎么办 一岁两个月宝宝不长肉怎么办 7个月宝宝肚子疼怎么办 奶喝一半凉了怎么办