Я создаю свой массив 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 рассуждение
AH ок. Я изменил свой массив this.kernel на this.kernel = new Float32Array (this.kernel); Длина составляет ровно 48 длин. Просто, чтобы быть ясным, я имел в виду, что ядро в моем шейдере есть vec3 По-прежнему получить ошибку не достаточно аргументов. – Pris0n
Я обновил ответ. Надеюсь, это поможет вам :) – Mortennobel
Спасибо. Я много экспериментировал, но, похоже, я забыл эту вариацию. – Pris0n