我对webgl很陌生,我已经尝试在旧问题中找到问题的答案,但我还没找到。
我的问题是我在片段着色器中需要一个生成介于-1和1之间的随机数的函数。据我所知,我需要自己创建一个函数,因为HTML没有随机数生成器但Javascript确实如此。我在头脑中做了这个功能:
<script = "text/javascript">
function random() {
return Math.random()*2-1; //random number between -1 and 1
}
</script>
当我尝试在片段着色器中调用该函数时,我被告知没有找到重载函数。但我无法弄清楚我是如何宣布并调用该函数的。这就是我尝试在片段着色器中调用它的方法:
...
for (float i = 0.0 ; i < no_of_samples ; i ++){
ndc.x = 2.0*((gl_FragCoord.x+half_pixelsize*random())/width-0.5);
...
答案 0 :(得分:1)
调用这样的函数是不可能的。
GLSL由完全不同的编译器编译(可能由GPU驱动程序提供),并且完全不知道JavaScript环境。
您可能需要查看GLSL解决方案,例如:Random / noise functions for GLSL。