MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

WebGLProgram

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

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.

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

Возможность Chrome Edge Firefox Internet Explorer Opera Safari Servo
Базовая поддержка9124.011125.1Нет поддержки
Available in workersНет поддержкиНет поддержкиНет поддержки1Нет поддержкиНет поддержкиНет поддержкиНет поддержки
Возможность Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Базовая поддержка(Да)25Нет поддержки(Да)11128.1
Available in workersНет поддержкиНет поддержкиНет поддержкиНет поддержкиНет поддержкиНет поддержкиНет поддержки

1. This feature is experimentally implemented since Firefox 44; to activate it, in about:config, set gfx.offscreencanvas.enabled to true

Смотри так же

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

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