繁体   English   中英

Webgl 顶点位置内置于 VertexShader

[英]Webgl vertex position Built in VertexShader

我只用矩阵来画正方形! 在每次渲染中只更新矩阵。 如何从我的代码中删除顶点位置

像这样锁定https://webgl2fundamentals.org/webgl/lessons/webgl-drawing-without-data.html

#version 300 es
in vec4 a_position;
in vec2 a_texcoord;
uniform mat4 u_matrix;
out vec2 v_texcoord;
void main() 
    ngl_Position = u_matrix * a_position;
    v_texcoord = a_texcoord;
}

并删除这个

gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
0, 0, 0,
0, 1, 0,
1, 0, 0,
0, 1, 0,
1, 1, 0,
1, 0, 0]), gl.STATIC_DRAW);

抱歉使用谷歌翻译

这是您的方形顶点着色器。 您不需要使用矩阵。

#version 300 es

void main() {
  float xs[6] = float[](0.0, 0.0, 1.0, 0.0, 1.0, 1.0);
  float ys[6] = float[](0.0, 1.0, 0.0, 1.0, 1.0, 0.0);
  float x = xs[gl_VertexID];
  float y = ys[gl_VertexID];
  gl_Position = vec4(x, y, 0, 1);
}

并渲染你只需这样做。 你不需要做任何 bufferData 或任何制服。

gl.drawArrays(gl.TRIANGLES, 0, 6);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM