OpenGLES顶点着色器澄清

时间:2018-01-24 17:04:24

标签: ios opengl-es opengl-es-2.0 vertex-shader

我有一个顶点着色器,如下所示:

attribute vec4 position;
varying vec3 colorFactor;

void main()
{
  colorFactor = vec3(1.0, 0.0, 0.0);
  gl_Position = vec4(-1.0 + (position.x * 0.0078125), 0.0, 0.0, 1.0);
  gl_PointSize = 1.0;

}

并在代码中提交顶点并绘制如下:

  glBlendEquation(GL_FUNC_ADD);
  glBlendFunc(GL_ONE, GL_ONE);
  glEnable(GL_BLEND);
  glVertexAttribPointer(positionAttribute, 4, GL_UNSIGNED_BYTE, 0, 15*4, vertexSamplingCoordinates);
  glDrawArrays(GL_POINTS, 0, inputTextureSize.width * inputTextureSize.height / 16);

变量vertexSamplingCoordinates指向像素缓冲区的基地址。

我的问题是每个顶点,位置的值是什么,它是如何计算的?我知道gl_Position的每个组成部分都在-1和-1之间。 1但在顶点着色器的每次迭代中,位置的值是什么?

编辑:这里也是片段着色器:

   const lowp float scalingFactor = 1.0 / 256.0;
   varying lowp vec3 colorFactor;

   void main()
   {
     gl_FragColor = vec4(colorFactor * scalingFactor , 1.0);
   }

0 个答案:

没有答案