无法在glsl中使用'%'

Art*_*Toh 7 opengl glsl modulo

在今天编写着色器程序时,遇到了我必须%用来查找余数的情况.GLSL给了我一个错误,说它在当前版本中不可用.

我试过几个问题.GLSL不支持递归函数和while循环,如果我想创建一个可以给我结果的函数,则需要它(a % b).

所以,我现在卡住了.有人可以帮我弄这个吗?

编辑.我试图使用本网站的一些着色器代码作为参考代码来模拟CRT屏幕.我想修改某些行和列的像素颜色,所以我需要使用模运算符.

起初,我认为模数函数是使用%运算符完成的.它不起作用,所以我尝试使用递归函数/ while循环作为模数函数的变通方法,它也不起作用.

Nic*_*las 20

GLSL不支持递归函数和while循环,如果我想创建一个可以给我(a%b)结果的函数,则需要它.

首先,计算不需要递归和循环a mod b.这很容易做到a - (b * floor(a/b)).

这正是内置mod函数的作用.如果您的GLSL版本不支持%运算符,那么您可能无法获得实数整数.所以只需mod在值上使用该函数即可.