从片段着色器调用 javascript 函数 (HTML)

Calling a javascript function from a fragment shader (HTML)

我是 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);  

 ...

调用这样的函数是不可能的。

GLSL 由完全不同的编译器编译(可能由 GPU 驱动程序提供)并且它完全不知道 JavaScript 环境。

您可能想查看 GLSL 解决方案,例如:Random / noise functions for GLSL