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

时间:2016-10-22 19:16:32

标签: javascript html webgl

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

 ...

1 个答案:

答案 0 :(得分:1)

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

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

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