Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

WebGLProgram это часть WebGL API и комбинация двух составляющих WebGLShader-ов, состоящих из вертикального и фрагментного шейдеров (оба написаны на GLSL). Затем они связываются в готовую к использованию программу.

var program = gl.createProgram();

// Прикрепление уже существующих шейдеров
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);

gl.linkProgram(program);

if ( !gl.getProgramParameter( program, gl.LINK_STATUS) ) {
  var info = gl.getProgramInfoLog(program);
  throw "Could not compile WebGL program. \n\n" + info;
}

Смотрите WebGLShader для информации о том, как создать vertexShader и fragmentShader в примере выше.

Примеры

Использование программы

Шаги для того, чтобы сделать какую-то работу с программой, включают сообщение GPU об использовании программы, связывание соответствующих данных и параметров конфигурации и наконец отрисовку чего-то на экране.

// Использование программы
gl.useProgram(program);

// Связывание существующих аттрибутов данных
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.enableVertexAttribArray(attributeLocation);
gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0);

// Отрисовка простого треугольника
gl.drawArrays(gl.TRIANGLES, 0, 3);

Удаление программы

Если существует ошибка связывания программы или вы хотите удалить существующую программу, тогда это так же просто, как запустить WebGLRenderingContext.deleteProgram(). Это освободит память от связанной программы.

gl.deleteProgram(program);

Спецификация

Specification Status Comment
WebGL 1.0
Определение 'WebGLProgram' в этой спецификации.
Рекомендация Initial definition.

Совместимость с браузерами

No compatibility data found. Please contribute data for "api/WebGLProgram" (depth: WebGLProgram) to the MDN compatibility data repository.

Смотри так же

Метки документа и участники

Внесли вклад в эту страницу: curdwithraisins
Обновлялась последний раз: curdwithraisins,