循环语句
openGL es2.0 支持类似下面的循环语句:
for(int i = 0; i < 3; i++)
{
sum += i;
}
有几点需要特别注意:
只能有一个循环控制变量,并且该变量只能通过下面方式变化:(i++, i--, i+=constant, i-=constant)循环结束判断语句必须是循环控制变量和一个常量的比较不能在循环体内改变循环控制变量
下面语句是错误的:
float myArr[4];
for(int i = 0; i < 3; i++)
{
sum += myArr[i]; // NOT ALLOWED IN OPENGL ES, CANNOT DO
// INDEXING WITH NONCONSTANT EXPRESSION
}
...
uniform int loopIter;
// NOT ALLOWED IN OPENGL ES, loopIter ITERATION COUNT IS NONCONSTANT
for(int i = 0; i < loopIter; i++)
{
sum += i;
}