- 作者:老汪软件技巧
- 发表时间:2024-09-07 04:02
- 浏览量:
与C语言一样,如果函数定义在其调用之后,那么必须在进行调用前先声明该函数的规范,规范声明预先告诉WebGL系统函数的参数、参数类型、返回值等信息,具体请参数如下代码
2 流程控制
着色器中的流程控制与C和JavaScript语言中的流程控制几乎无异,主要是通过if语句和for语句等控制流程
2.1 if语句
if语句有三种控制流程的语句模型,分别是 if 模型、 if…else… 模型 和 if…else if…else 模型
if 模型
if…else… 模型
if…else if…else模型
GLSL ES中没有switch语句,在程序中避免过多的使用if语句,否则会影响效率
2.2 for语句
大多数循环程序都是通过for语句实现的,GLSL ES 语言也一样,for 语句的格式如下
GLSL ES 语言的for循环的循环变量有一些特殊的限制,具体如下
来一个最简单的for循环示例,对5以内的整数求和
2.3 continue、break语句
通常情况下,我们会在for语句中使用continue语句来跳过本次循环,使用break语句终止循环
2.4 discard语句
与其他语言不一样的是,GLSL ES语言 提供了discard语句。discard语句只能在片元着色器中使用,表示放弃当前片元直接处理下一个片元,作用与continue类似。请参照以下代码