2016-10-22 33 views
0

我對webgl很新,我試過在舊問題中找到問題的答案,但是我一直未能找到任何答案。從片段着色器調用JavaScript函數(HTML)

我的問題是,我在我的片段着色器需要一個函數,生成一個-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

注意'Math.random()* 2-1'應該包含-1而不是+1 – Oriol

回答

1

調用函數一樣那是不可能的。

GLSL由一個完全不同的編譯器編譯(可能由GPU驅動程序提供),它完全不瞭解JavaScript環境。

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