我的 webgl 程序渲染一个白色方块,但是每当我尝试将变化变量传递给片段着色器时,它就会消失,即使片段着色器所做的只是:'gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
这不会呈现任何内容
<script id="shader-vs" type="x-shader/x-vertex">
attribute vec3 vertexPos;
attribute vec4 aColor;
varying vec4 color;
void main(void)
{
gl_Position = vec4(vertexPos, 1.0);
color = aColor;
}
</script>
<script id="shader-fs" type="x-shader/x-fragment">
precision mediump float;
varying vec4 color;
void main(void)
{
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
</script>
这将呈现一个白色正方形
<script id="shader-vs" type="x-shader/x-vertex">
attribute vec3 vertexPos;
attribute vec4 aColor;
varying vec4 color;
void main(void)
{
gl_Position = vec4(vertexPos, 1.0);
//color = aColor;
}
</script>
<script id="shader-fs" type="x-shader/x-fragment">
precision mediump float;
varying vec4 color;
void main(void)
{
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
</script>
在查看我的代码后,我注意到我只将 aColor 发送到 1 个顶点中的 5 个,通过使我的颜色数组 4 * 5 而不是 4 * 1 来解决它