2014-09-16 6 views
0

J'essaie de générer des couleurs aléatoires dans mon fragment shader, mais je suis en train de courir dans les erreurs du compilateur. Voici mon code:Math.random() identificateur non déclaré

<!--here is where the color is set--> 
    <script id="fragment-shader" type="x-shader/x-fragment"> 

    precision mediump float; 

    void 
    main() 
    { 
     float red = Math.random(); 
     float green = 0.5; 
     float blue = 0.7; 
     gl_FragColor = vec4(red, green, blue, 1.0); 
    } 
    </script><!--here is where the color is set--> 

Voici l'erreur que je reçois:

Fragment shader failed to compile. The error log is:<pre>ERROR: 0:8: 'Math' : undeclared identifier 
    ERROR: 0:8: '' : methods are not supported 
    ERROR: 0:8: 'random' : no matching overloaded function found 
    </pre> 

Je suis nouveau à HMTL, WebGL et Javascript et je ne suis pas sûr de ce qui brise et pourquoi. Pourquoi suis-je incapable d'utiliser Math.random?

+0

Dupliquer: http://stackoverflow.com/questions/10803176/three-js-webgl-glsl-utilizing-random-math – asimes

Répondre

1

Math est un objet JavaScript, les shaders sont écrits en GLSL.

Pour générer des nombres aléatoires dans GLSL, voir le commentaire de @asimes.

Questions connexes