如何使用javascript代码从webgl着色器获取统一值
我正在使用javascript和webgl制作应用程序。我想用javascript代码从着色器中获得统一的值 这是我的顶点着色器如何使用javascript代码从webgl着色器获取统一值,javascript,webgl,shader,vertex-shader,uniform,Javascript,Webgl,Shader,Vertex Shader,Uniform,我正在使用javascript和webgl制作应用程序。我想用javascript代码从着色器中获得统一的值 这是我的顶点着色器 var VertexShaderCode= "precision mediump float;"+ "attribute vec3 vertexPos;" + "uniform mat4 modelViewMatrix;" + "uniform mat4 projectionMatrix;" + "
var VertexShaderCode= "precision mediump float;"+
"attribute vec3 vertexPos;" +
"uniform mat4 modelViewMatrix;" +
"uniform mat4 projectionMatrix;" +
"uniform float pointSize;"+
"void main(void) {" +
"gl_Position= projectionMatrix*modelViewMatrix*vec4(vertexPos, 1.0);" +
"gl_PointSize=pointSize;"+
"}"
我想通过使用javascript获得pointSize值,然后在javascript代码中使用该值
有什么想法吗?我该怎么办?既然您正在设置制服,您应该已经知道了值。但是如果出于某种原因您想查找它,那么您只需调用
gl.getUniform(程序,位置)
例如:
const gl=document.createElement('canvas').getContext('webgl');
常数vs=`
均匀浮球;
void main(){
gl_位置=vec4(0,0,0,1);
gl_PointSize=foo;
}
`;
常数fs=`
精密中泵浮子;
void main(){
gl_FragColor=vec4(0);
}
`;
//编译着色器,链接程序
const program=twgl.createProgram(gl[vs,fs]);
const-foullocation=gl.getUniformLocation(程序“foo”);
//集福
gl.useProgram(程序);
德国劳埃德船级社uniform1f(第123.4条);
//得到福
console.log('foo:',gl.getUniform(程序,位置))代码>
作为旁注,您还可以使用反勾号创建多行字符串文字,以提高可读性。有关浏览器支持的详细信息,请参见