gpt4 book ai didi

google-chrome - 将数组传递给着色器

转载 作者:行者123 更新时间:2023-12-04 04:54:12 24 4
gpt4 key购买 nike

我创建了我的数组 this.kernel:它有 48 个元素,我想将它传递给我的片段着色器。

当我打电话

 gl.uniform3fv(gl.getUniformLocation(this.program, "kernel"), 16, this.kernel);

内核在我的着色器中定义:
uniform vec3 kernel[16]; 

由于参数不足,我收到错误消息。
我已经查找了规范等,但没有发现我的问题-.-
void glUniform3fv(  GLint  location, GLsizei  count, const GLfloat * value);

感谢您的帮助

€:我将 this.kernel 转换为 float32array 但我仍然有这个错误。

€2:Chrome 中的错误:没有足够的参数

在 Firefox 中:NS_ERROR_XPC_BAD_CONVERT_JS:无法转换 JavaScript 参数

最佳答案

您的 this.kernel需要是一个长度为 48 (=3*16) 的 Float32Array。您不能使用 vec3 数组。

WebGL 中也不使用计数。函数是(来自 WebGL Specification )

void uniform3fv(WebGLUniformLocation? location, Float32Array v);

用法示例:
gl.uniform3fv(gl.getUniformLocation(shaderProgram, "colors"), new Float32Array([0,1,2,3,4,5]));

在此处查看完整示例:
http://jsfiddle.net/mortennobel/URvtx/

关于google-chrome - 将数组传递给着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com