uniform不能传递顶点数据中的解析,可以通过如下方式在顶点着色器中实现和attribute 同样的坐标效果
来源:2-8 使用 uniform 变量 - 绘制不同颜色的点

幕布斯1301647
2023-10-29
// 顶点着色器
const VERTEX_SHADER_SOURCE = `
precision mediump float;
uniform vec2 uPosition;
// 只传递顶点数据
// attribute vec4 aPosition;
void main(){
// 绘制点的坐标
// uniform 也能在顶点着色器中使用,但是不能传递顶点数据中的解析,只能用 uPosition.r 的形式,如下:
gl_Position = vec4(uPosition.r, uPosition.g, 0.0,1.0);
// gl_Position = aPosition; // vec4(0.0, 0.0, 0.0, 1.0)
// 点的大小
gl_PointSize = 10.0;
}
`
使用方法和片元着色器一样
const uPosition = gl.getUniformLocation(program, 'uPosition');
gl.uniform2f(uPosition, pX, pY)
写回答
1回答
-
yancy
2024-12-30
👍🏻👍🏻👍🏻👍🏻👍🏻👍🏻👍🏻👍🏻
00
相似问题