Glsl error when trying to increment a variable inside a for loop The Next CEO of Stack OverflowPassing a variable to an OpenGL GLSL shaderglUniformMatrix4fv fails with an error code of GL_INVALID_OPERATIONGLSL errors accessing float array with variable as indexHow to write value to specified coordinate in vertex shader with gl_position?Creating a triangle with OpenGL & GLSLAssigning a struct to a local variable in GLSLAbout the glsl for loopGLSL gl_VertexID is not incrementingGLSL/WebGL for loop error when not using increment operatorHow to initialize an array inside a struct GLSL

How to count occurrences of text in a file?

How do I solve this limit?

Science fiction (dystopian) short story set after WWIII

Only print output after finding pattern

Go Pregnant or Go Home

How to Reset Passwords on Multiple Websites Easily?

What do "high sea" and "carry" mean in this sentence?

Where to find order of arguments for default functions

How to be diplomatic in refusing to write code that breaches the privacy of our users

Is it safe to use c_str() on a temporary string?

Robert Sheckley short story about vacation spots being overwhelmed

Are there languages with no euphemisms?

Opposite of a diet

How can I open an app using Terminal?

Rotate a column

What is the difference between "behavior" and "behaviour"?

Why do remote companies require working in the US?

Visit to the USA with ESTA approved before trip to Iran

Would this house-rule that treats advantage as a +1 to the roll instead (and disadvantage as -1) and allows them to stack be balanced?

Does the Brexit deal have to be agreed by both Houses?

How do spells that require an ability check vs. the caster's spell save DC work?

How can I get through very long and very dry, but also very useful technical documents when learning a new tool?

Unreliable Magic - Is it worth it?

Describing a person. What needs to be mentioned?



Glsl error when trying to increment a variable inside a for loop



The Next CEO of Stack OverflowPassing a variable to an OpenGL GLSL shaderglUniformMatrix4fv fails with an error code of GL_INVALID_OPERATIONGLSL errors accessing float array with variable as indexHow to write value to specified coordinate in vertex shader with gl_position?Creating a triangle with OpenGL & GLSLAssigning a struct to a local variable in GLSLAbout the glsl for loopGLSL gl_VertexID is not incrementingGLSL/WebGL for loop error when not using increment operatorHow to initialize an array inside a struct GLSL










0















Context : I pass a uniform array of float to my fragment shader, then initialize a float with a value from this array, and finally try to increment this float in for loop, with this code :






var regl = createREGL()

var drawTriangle = regl(
vert: `
precision mediump float;
attribute vec2 position;

void main ()
gl_Position = vec4(position, 0, 1);

`,

frag: `
precision mediump float;
uniform float refPoints[3];
varying vec3 fcolor;

void main ()
float a_value = refPoints[1];
for(int i=0;i<3;++i)
a_value += 1.; // <-- this line is causing the error

gl_FragColor = vec4(1, 1, 1, 1);

`,
attributes:
position: [
[1, 0],
[0, 1],
[-1, -1]
],
,
uniforms :
refPoints : [0., 1., 0., 2.]
,
count: 3
)

regl.frame(function ()
regl.clear(
color: [0, 0, 0, 1],
depth: 1
)
drawTriangle()
)

<script src="https://npmcdn.com/regl/dist/regl.js"></script>





I am having a weird error :



Error: (regl) bad data or missing for uniform "refPoints[0]". invalid type, expected number in command unknown


I don't understand why this increment in this particular loop is causing so much trouble. Do you have any ideas ?










share|improve this question




























    0















    Context : I pass a uniform array of float to my fragment shader, then initialize a float with a value from this array, and finally try to increment this float in for loop, with this code :






    var regl = createREGL()

    var drawTriangle = regl(
    vert: `
    precision mediump float;
    attribute vec2 position;

    void main ()
    gl_Position = vec4(position, 0, 1);

    `,

    frag: `
    precision mediump float;
    uniform float refPoints[3];
    varying vec3 fcolor;

    void main ()
    float a_value = refPoints[1];
    for(int i=0;i<3;++i)
    a_value += 1.; // <-- this line is causing the error

    gl_FragColor = vec4(1, 1, 1, 1);

    `,
    attributes:
    position: [
    [1, 0],
    [0, 1],
    [-1, -1]
    ],
    ,
    uniforms :
    refPoints : [0., 1., 0., 2.]
    ,
    count: 3
    )

    regl.frame(function ()
    regl.clear(
    color: [0, 0, 0, 1],
    depth: 1
    )
    drawTriangle()
    )

    <script src="https://npmcdn.com/regl/dist/regl.js"></script>





    I am having a weird error :



    Error: (regl) bad data or missing for uniform "refPoints[0]". invalid type, expected number in command unknown


    I don't understand why this increment in this particular loop is causing so much trouble. Do you have any ideas ?










    share|improve this question


























      0












      0








      0








      Context : I pass a uniform array of float to my fragment shader, then initialize a float with a value from this array, and finally try to increment this float in for loop, with this code :






      var regl = createREGL()

      var drawTriangle = regl(
      vert: `
      precision mediump float;
      attribute vec2 position;

      void main ()
      gl_Position = vec4(position, 0, 1);

      `,

      frag: `
      precision mediump float;
      uniform float refPoints[3];
      varying vec3 fcolor;

      void main ()
      float a_value = refPoints[1];
      for(int i=0;i<3;++i)
      a_value += 1.; // <-- this line is causing the error

      gl_FragColor = vec4(1, 1, 1, 1);

      `,
      attributes:
      position: [
      [1, 0],
      [0, 1],
      [-1, -1]
      ],
      ,
      uniforms :
      refPoints : [0., 1., 0., 2.]
      ,
      count: 3
      )

      regl.frame(function ()
      regl.clear(
      color: [0, 0, 0, 1],
      depth: 1
      )
      drawTriangle()
      )

      <script src="https://npmcdn.com/regl/dist/regl.js"></script>





      I am having a weird error :



      Error: (regl) bad data or missing for uniform "refPoints[0]". invalid type, expected number in command unknown


      I don't understand why this increment in this particular loop is causing so much trouble. Do you have any ideas ?










      share|improve this question
















      Context : I pass a uniform array of float to my fragment shader, then initialize a float with a value from this array, and finally try to increment this float in for loop, with this code :






      var regl = createREGL()

      var drawTriangle = regl(
      vert: `
      precision mediump float;
      attribute vec2 position;

      void main ()
      gl_Position = vec4(position, 0, 1);

      `,

      frag: `
      precision mediump float;
      uniform float refPoints[3];
      varying vec3 fcolor;

      void main ()
      float a_value = refPoints[1];
      for(int i=0;i<3;++i)
      a_value += 1.; // <-- this line is causing the error

      gl_FragColor = vec4(1, 1, 1, 1);

      `,
      attributes:
      position: [
      [1, 0],
      [0, 1],
      [-1, -1]
      ],
      ,
      uniforms :
      refPoints : [0., 1., 0., 2.]
      ,
      count: 3
      )

      regl.frame(function ()
      regl.clear(
      color: [0, 0, 0, 1],
      depth: 1
      )
      drawTriangle()
      )

      <script src="https://npmcdn.com/regl/dist/regl.js"></script>





      I am having a weird error :



      Error: (regl) bad data or missing for uniform "refPoints[0]". invalid type, expected number in command unknown


      I don't understand why this increment in this particular loop is causing so much trouble. Do you have any ideas ?






      var regl = createREGL()

      var drawTriangle = regl(
      vert: `
      precision mediump float;
      attribute vec2 position;

      void main ()
      gl_Position = vec4(position, 0, 1);

      `,

      frag: `
      precision mediump float;
      uniform float refPoints[3];
      varying vec3 fcolor;

      void main ()
      float a_value = refPoints[1];
      for(int i=0;i<3;++i)
      a_value += 1.; // <-- this line is causing the error

      gl_FragColor = vec4(1, 1, 1, 1);

      `,
      attributes:
      position: [
      [1, 0],
      [0, 1],
      [-1, -1]
      ],
      ,
      uniforms :
      refPoints : [0., 1., 0., 2.]
      ,
      count: 3
      )

      regl.frame(function ()
      regl.clear(
      color: [0, 0, 0, 1],
      depth: 1
      )
      drawTriangle()
      )

      <script src="https://npmcdn.com/regl/dist/regl.js"></script>





      var regl = createREGL()

      var drawTriangle = regl(
      vert: `
      precision mediump float;
      attribute vec2 position;

      void main ()
      gl_Position = vec4(position, 0, 1);

      `,

      frag: `
      precision mediump float;
      uniform float refPoints[3];
      varying vec3 fcolor;

      void main ()
      float a_value = refPoints[1];
      for(int i=0;i<3;++i)
      a_value += 1.; // <-- this line is causing the error

      gl_FragColor = vec4(1, 1, 1, 1);

      `,
      attributes:
      position: [
      [1, 0],
      [0, 1],
      [-1, -1]
      ],
      ,
      uniforms :
      refPoints : [0., 1., 0., 2.]
      ,
      count: 3
      )

      regl.frame(function ()
      regl.clear(
      color: [0, 0, 0, 1],
      depth: 1
      )
      drawTriangle()
      )

      <script src="https://npmcdn.com/regl/dist/regl.js"></script>






      glsl regl






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 7 at 14:14









      Rabbid76

      42.3k123353




      42.3k123353










      asked Mar 7 at 14:04









      RenRen

      103




      103






















          1 Answer
          1






          active

          oldest

          votes


















          0














          AFAICT it's a bug in regl? It works if you use



           uniforms: 
          "refPoints[0]": 0.,
          "refPoints[1]": 1.,
          "refPoints[2]": 0.,






          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>








          share|improve this answer























          • Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

            – Ren
            Mar 7 at 15:45











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55045687%2fglsl-error-when-trying-to-increment-a-variable-inside-a-for-loop%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          AFAICT it's a bug in regl? It works if you use



           uniforms: 
          "refPoints[0]": 0.,
          "refPoints[1]": 1.,
          "refPoints[2]": 0.,






          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>








          share|improve this answer























          • Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

            – Ren
            Mar 7 at 15:45















          0














          AFAICT it's a bug in regl? It works if you use



           uniforms: 
          "refPoints[0]": 0.,
          "refPoints[1]": 1.,
          "refPoints[2]": 0.,






          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>








          share|improve this answer























          • Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

            – Ren
            Mar 7 at 15:45













          0












          0








          0







          AFAICT it's a bug in regl? It works if you use



           uniforms: 
          "refPoints[0]": 0.,
          "refPoints[1]": 1.,
          "refPoints[2]": 0.,






          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>








          share|improve this answer













          AFAICT it's a bug in regl? It works if you use



           uniforms: 
          "refPoints[0]": 0.,
          "refPoints[1]": 1.,
          "refPoints[2]": 0.,






          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>








          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>





          var regl = createREGL()

          var drawTriangle = regl(
          vert: `
          precision mediump float;
          attribute vec2 position;

          void main ()
          gl_Position = vec4(position, 0, 1);

          `,

          frag: `
          precision mediump float;
          uniform float refPoints[3];
          varying vec3 fcolor;

          void main ()
          float a_value = refPoints[1];
          for(int i=0;i<3;++i)
          a_value += 1.; // <-- this line is causing the error

          gl_FragColor = vec4(1, 1, 1, 1);

          `,
          attributes:
          position: [
          [1, 0],
          [0, 1],
          [-1, -1]
          ],
          ,
          uniforms :
          "refPoints[0]" : 0.,
          "refPoints[1]" : 1.,
          "refPoints[2]" : 0.,
          ,
          count: 3
          )

          regl.frame(function ()
          regl.clear(
          color: [0, 0, 0, 1],
          depth: 1
          )
          drawTriangle()
          )

          <script src="https://npmcdn.com/regl/dist/regl.js"></script>






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 7 at 14:17









          gmangman

          49k17114207




          49k17114207












          • Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

            – Ren
            Mar 7 at 15:45

















          • Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

            – Ren
            Mar 7 at 15:45
















          Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

          – Ren
          Mar 7 at 15:45





          Thanks ! I'm now switching to Three.js, as it looks way more alive than regl.

          – Ren
          Mar 7 at 15:45



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55045687%2fglsl-error-when-trying-to-increment-a-variable-inside-a-for-loop%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          1928 у кіно

          Захаров Федір Захарович

          Ель Греко