diff options
author | Chris Mills <cmills@mozilla.com> | 2021-03-15 20:44:30 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-15 20:44:30 +0000 |
commit | 571c6f125b0fcf580fb42fd0cdb25c152724d738 (patch) | |
tree | 9019116dd590d1eebe782fde7d695bedae844dd3 /files/ru/web/api/webgl_api/webgl_best_practices/index.html | |
parent | 1bbb4d9683edd28fc947b17804e5b882184ecfcb (diff) | |
parent | 55ddd4454665a3c66e3d5b186bc79048468d36e7 (diff) | |
download | translated-content-571c6f125b0fcf580fb42fd0cdb25c152724d738.tar.gz translated-content-571c6f125b0fcf580fb42fd0cdb25c152724d738.tar.bz2 translated-content-571c6f125b0fcf580fb42fd0cdb25c152724d738.zip |
Merge pull request #174 from mdn/lex111/ru-typos
Fix typos in Russian translation
Diffstat (limited to 'files/ru/web/api/webgl_api/webgl_best_practices/index.html')
-rw-r--r-- | files/ru/web/api/webgl_api/webgl_best_practices/index.html | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/files/ru/web/api/webgl_api/webgl_best_practices/index.html b/files/ru/web/api/webgl_api/webgl_best_practices/index.html index 90b595c096..64dee04e13 100644 --- a/files/ru/web/api/webgl_api/webgl_best_practices/index.html +++ b/files/ru/web/api/webgl_api/webgl_best_practices/index.html @@ -41,6 +41,6 @@ translation_of: Web/API/WebGL_API/WebGL_best_practices <li>Однако сегодня даже мобильные устройства обладают мощными графическими процессорами которые способны быстро обрабатывать относительно сложные шейдерные программы. Более того, шейдеры компилируются в машинные коды, которые могут быть оптимизированы под конкретный процессор. Может оказаться, что дорогой вызов функции может быть скомпилирован в несколько (или даже в одну) процессорную инструкцию. Частично это справедливо для функций {{Glossary("GLSL")}}, выполняющих операции над векторами, таких как <code>normalize()</code>, <code>dot()</code> и <code>mix()</code>. Лучшим советом будет использовать встроенные функции, нежели пытаться реализовать, например, собственную версию скалярного произведения или линейной интерполяции, которые будут скомпилированы в набор сложных и неоптимальных инструкций процессора.</li> </ul> </li> - <li>Выносите как можно больше операций в вершинный шейдер. Из-за того, что в процессе отрисовки фрагментные шейдеры выполняются гораздо чаще, чем вершинные, любые вычисления, которые можно выполнить с вершинами и интерполировать между пикселями, будут работать быстрее (интерполяция будет "бесплатна", т.к. это этап конвеера WebGL). Например, простая анимация текстурированной поверхности может быть реализована с помощью преобразований текстурных координат (простейший вариант - прибавлять значение uniform-вектора к attribute-вектору текстурных координат). Если результат будет визуально приемлем, то такой вариант будет работать быстрее, чем реализация во фрагментном шейдере.</li> + <li>Выносите как можно больше операций в вершинный шейдер. Из-за того, что в процессе отрисовки фрагментные шейдеры выполняются гораздо чаще, чем вершинные, любые вычисления, которые можно выполнить с вершинами и интерполировать между пикселями, будут работать быстрее (интерполяция будет "бесплатна", т.к. это этап конвейера WebGL). Например, простая анимация текстурированной поверхности может быть реализована с помощью преобразований текстурных координат (простейший вариант - прибавлять значение uniform-вектора к attribute-вектору текстурных координат). Если результат будет визуально приемлем, то такой вариант будет работать быстрее, чем реализация во фрагментном шейдере.</li> <li>Всегда задействуйте атрибут вершин c нулевым индексом. Отрисовка с неактивным вершинным атрибутом с индексом 0 вынуждает браузер выполнять сложную эмуляцию настольного OpenGL (например, как на Mac OSX). Вызывайте функцию <code>bindAttribLocation()</code> чтобы вершинный атрибут использовал нулевой индекс и активируйте сам атрибут с помощью функции<code> enableVertexAttribArray().</code></li> </ul> |