Baseline Widely available *
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);
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4