Spec-Zone.ru › Web APIs

WebGL: 2D и 3D графика для веб

Примечание: Эта функция доступна в Потоках Web Workers.

WebGL (Web Graphics Library) — это JavaScript API для рендеринга высокопроизводительной интерактивной 3D и 2D графики в любом совместимом веб-браузере без использования плагинов. WebGL достигает этого, представив API, который тесно соответствует OpenGL ES 2.0, который может использоваться в HTML <canvas> элементах. Это соответствие позволяет API использовать ускорение графики аппаратного обеспечения, предоставляемое устройством пользователя.

Поддержка WebGL присутствует во всех современных браузерах (см. таблицы совместимости ниже в разделе совместимость); однако устройство пользователя также должно иметь аппаратное обеспечение, поддерживающее эти функции.

API WebGL 2 вводит поддержку большей части набора функций OpenGL ES 3.0; он предоставляется через интерфейс WebGL2RenderingContext.

Элемент <canvas> также используется API Canvas API для выполнения 2D графики на веб-страницах.

Справочник

Стандартные интерфейсы

  • WebGLRenderingContext
  • WebGL2RenderingContext
  • WebGLActiveInfo
  • WebGLBuffer
  • WebGLContextEvent
  • WebGLFramebuffer
  • WebGLProgram
  • WebGLQuery
  • WebGLRenderbuffer
  • WebGLSampler
  • WebGLShader
  • WebGLShaderPrecisionFormat
  • WebGLSync
  • WebGLTexture
  • WebGLTransformFeedback
  • WebGLUniformLocation
  • WebGLVertexArrayObject

Расширения

  • ANGLE_instanced_arrays
  • EXT_blend_minmax
  • EXT_color_buffer_float
  • EXT_color_buffer_half_float
  • EXT_disjoint_timer_query
  • EXT_float_blend Экспериментальное
  • EXT_frag_depth
  • EXT_shader_texture_lod
  • EXT_sRGB
  • EXT_texture_compression_bptc
  • EXT_texture_compression_rgtc
  • EXT_texture_filter_anisotropic
  • EXT_texture_norm16
  • KHR_parallel_shader_compile
  • OES_draw_buffers_indexed
  • OES_element_index_uint
  • OES_fbo_render_mipmap
  • OES_standard_derivatives
  • OES_texture_float
  • OES_texture_float_linear
  • OES_texture_half_float
  • OES_texture_half_float_linear
  • OES_vertex_array_object
  • OVR_multiview2
  • WEBGL_color_buffer_float
  • WEBGL_compressed_texture_astc
  • WEBGL_compressed_texture_etc
  • WEBGL_compressed_texture_etc1
  • WEBGL_compressed_texture_pvrtc
  • WEBGL_compressed_texture_s3tc
  • WEBGL_compressed_texture_s3tc_srgb
  • WEBGL_debug_renderer_info
  • WEBGL_debug_shaders
  • WEBGL_depth_texture
  • WEBGL_draw_buffers
  • WEBGL_lose_context
  • WEBGL_multi_draw

События

  • webglcontextlost
  • webglcontextrestored
  • webglcontextcreationerror

Константы и типы

  • Константы WebGL
  • Типы WebGL

WebGL 2

WebGL 2 — это крупное обновление WebGL, которое предоставляется через интерфейс WebGL2RenderingContext. Оно основано на OpenGL ES 3.0, и новые функции включают:

  • 3D текстуры,
  • Объекты сэмплеров,
  • Объекты буферов униформ,
  • Объекты синхронизации,
  • Объекты запросов,
  • Объекты отслеживания преобразований,
  • Повышенные расширения, которые теперь являются частью ядра WebGL 2: Объекты массивов вершин, инстанцирование, несколько целей рендеринга, глубина фрагмента.

См. также блог-пост "WebGL 2 появился в Firefox" и webglsamples.org/WebGL2Samples для нескольких демонстраций.

Руководства и учебные пособия

Ниже вы найдете множество руководств, помогающих освоить понятия WebGL, и учебных пособий, предлагающих пошаговые уроки и примеры.

Руководства

Данные в WebGL

Руководство по переменным, буферам и другим типам данных, используемых при написании кода WebGL.

Рекомендации по разработке в WebGL

Советы и рекомендации, которые помогут повысить качество, производительность и надежность вашего контента WebGL.

Использование расширений

Руководство по использованию расширений WebGL.

Учебные пособия

Учебное пособие по WebGL

Руководство для начинающих по основным концепциям WebGL. Хороший способ начать, если у вас нет предыдущего опыта работы с WebGL.

Примеры

Пример простой 2D анимации WebGL

Этот пример демонстрирует простую анимацию фигуры одного цвета. Рассмотренные темы: адаптация к различиям в соотношении сторон, функция для построения программ шейдеров из наборов нескольких шейдеров и основы рисования в WebGL.

WebGL на примерах

Ряд живых примеров с короткими объяснениями, демонстрирующими концепции и возможности WebGL. Примеры отсортированы по темам и уровню сложности, охватывая контекст рендеринга WebGL, программирование шейдеров, текстуры, геометрию, взаимодействие пользователя и многое другое.

Расширенные учебные пособия

WebGL модель-вид-проекция

Подробное объяснение трех основных матриц, обычно используемых для представления 3D объекта: матриц модели, вида и проекции.

Матричная математика для веб

Полезное руководство о том, как работают 3D-трансформационные матрицы и как ими можно пользоваться в веб-приложениях — как для расчетов WebGL, так и для CSS-трансформаций.

Ресурсы

  • Сайт WebGL Khronos Основной веб-сайт WebGL в группе Khronos.
  • Основы WebGL Базовое руководство с основами WebGL.
  • Raw WebGL: Введение в WebGL Доклад Ника Дезольнье, в котором представлена основа WebGL.
  • WebGL Академия HTML/JavaScript редактор с учебными материалами для изучения основ программирования webgl.
  • Статистика WebGL Сайт со статистикой о возможностях WebGL в браузерах на разных платформах.

Библиотеки

  • three.js — это кроссплатформенная, полнофункциональная 3D WebGL библиотека.
  • Babylon.js — мощный, простой и открытый движок для игр и 3D-рендеринга, упакованный в удобный JavaScript фреймворк.
  • Pixi.js — быстрый, кроссплатформенный 2D WebGL рендерер.
  • Phaser — быстрый, бесплатный и увлекательный кроссплатформенный фреймворк для создания браузерных игр на Canvas и WebGL.
  • PlayCanvas — кроссплатформенный игровой движок.
  • glMatrix — JavaScript библиотека матриц и векторов для высокопроизводительных WebGL приложений.
  • twgl — библиотека для сокращения объёма кода WebGL.
  • RedGL — кроссплатформенная 3D WebGL библиотека.
  • vtk.js — JavaScript библиотека для научной визуализации в браузере.
  • webgl-lint поможет найти ошибки в вашем WebGL коде и предоставит полезную информацию.

Технические спецификации

Спецификация
Спецификация WebGL 1.0
# 5.14
Спецификация WebGL 2.0
# 3.7

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

Настольный Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
WebGL_API 56 79 51 43 15 58 51 43 15 7.0 58
activeTexture 56 79 51 43 15 58 51 43 15 7.0 58
attachShader 56 79 51 43 15 58 51 43 15 7.0 58
beginQuery 56 79 51 43 15 58 51 43 15 7.0 58
beginTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
bindAttribLocation 56 79 51 43 15 58 51 43 15 7.0 58
bindBuffer 56 79 51 43 15 58 51 43 15 7.0 58
bindBufferBase 56 79 51 43 15 58 51 43 15 7.0 58
bindBufferRange 56 79 51 43 15 58 51 43 15 7.0 58
bindFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
bindRenderbuffer 56 79 51 43 15 58 51 43 15 7.0 58
bindSampler 56 79 51 43 15 58 51 43 15 7.0 58
bindTexture 56 79 51 43 15 58 51 43 15 7.0 58
bindTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
bindVertexArray 56 79 51 43 15 58 51 43 15 7.0 58
blendColor 56 79 51 43 15 58 51 43 15 7.0 58
blendEquation 56 79 51 43 15 58 51 43 15 7.0 58
blendEquationSeparate 56 79 51 43 15 58 51 43 15 7.0 58
blendFunc 56 79 51 43 15 58 51 43 15 7.0 58
blendFuncSeparate 56 79 51 43 15 58 51 43 15 7.0 58
blitFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
bufferData 56 79 51 43 15 58 51 43 15 7.0 58
bufferSubData 56 79 51 43 15 58 51 43 15 7.0 58
canvas 56 79 51 43 15 58 51 43 15 7.0 58
checkFramebufferStatus 56 79 51 43 15 58 51 43 15 7.0 58
clear 56 79 51 43 15 58 51 43 15 7.0 58
clearBufferfi 56 79 51 43 15 58 51 43 15 7.0 58
clearBufferfv 56 79 51 43 15 58 51 43 15 7.0 58
clearBufferiv 56 79 51 43 15 58 51 43 15 7.0 58
clearBufferuiv 56 79 51 43 15 58 51 43 15 7.0 58
clearColor 56 79 51 43 15 58 51 43 15 7.0 58
clearDepth 56 79 51 43 15 58 51 43 15 7.0 58
clearStencil 56 79 51 43 15 58 51 43 15 7.0 58
clientWaitSync 56 79 51 43 15 58 51 43 15 7.0 58
colorMask 56 79 51 43 15 58 51 43 15 7.0 58
compileShader 56 79 51 43 15 58 51 43 15 7.0 58
compressedTexImage2D 56 79 51 43 15 58 51 43 15 7.0 58
compressedTexImage3D 56 79 51 43 15 58 51 43 15 7.0 58
compressedTexSubImage2D 56 79 51 43 15 58 51 43 15 7.0 58
compressedTexSubImage3D 56 79 51 43 15 58 51 43 15 7.0 58
copyBufferSubData 56 79 51 43 15 58 51 43 15 7.0 58
copyTexImage2D 56 79 51 43 15 58 51 43 15 7.0 58
copyTexSubImage2D 56 79 51 43 15 58 51 43 15 7.0 58
copyTexSubImage3D 56 79 51 43 15 58 51 43 15 7.0 58
createBuffer 56 79 51 43 15 58 51 43 15 7.0 58
createFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
createProgram 56 79 51 43 15 58 51 43 15 7.0 58
createQuery 56 79 51 43 15 58 51 43 15 7.0 58
createRenderbuffer 56 79 51 43 15 58 51 43 15 7.0 58
createSampler 56 79 51 43 15 58 51 43 15 7.0 58
createShader 56 79 51 43 15 58 51 43 15 7.0 58
createTexture 56 79 51 43 15 58 51 43 15 7.0 58
createTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
createVertexArray 56 79 51 43 15 58 51 43 15 7.0 58
cullFace 56 79 51 43 15 58 51 43 15 7.0 58
deleteBuffer 56 79 51 43 15 58 51 43 15 7.0 58
deleteFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
deleteProgram 56 79 51 43 15 58 51 43 15 7.0 58
deleteQuery 56 79 51 43 15 58 51 43 15 7.0 58
deleteRenderbuffer 56 79 51 43 15 58 51 43 15 7.0 58
deleteSampler 56 79 51 43 15 58 51 43 15 7.0 58
deleteShader 56 79 51 43 15 58 51 43 15 7.0 58
deleteSync 56 79 51 43 15 58 51 43 15 7.0 58
deleteTexture 56 79 51 43 15 58 51 43 15 7.0 58
deleteTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
deleteVertexArray 56 79 51 43 15 58 51 43 15 7.0 58
depthFunc 56 79 51 43 15 58 51 43 15 7.0 58
depthMask 56 79 51 43 15 58 51 43 15 7.0 58
depthRange 56 79 51 43 15 58 51 43 15 7.0 58
detachShader 56 79 51 43 15 58 51 43 15 7.0 58
disable 56 79 51 43 15 58 51 43 15 7.0 58
disableVertexAttribArray 56 79 51 43 15 58 51 43 15 7.0 58
drawArrays 56 79 51 43 15 58 51 43 15 7.0 58
drawArraysInstanced 56 79 51 43 15 58 51 43 15 7.0 58
drawBuffers 56 79 51 43 15 58 51 43 15 7.0 58
drawElements 56 79 51 43 15 58 51 43 15 7.0 58
drawElementsInstanced 56 79 51 43 15 58 51 43 15 7.0 58
drawRangeElements 56 79 51 43 15 58 51 43 15 7.0 58
END_OF_DOCUMENT_MARKER
drawingBufferColorSpace 104 104 132
127–130Случайное преждевременное появление без функциональности.
90 16.4 104 132
127–130Случайное преждевременное появление без функциональности.
71 16.4 20.0 104
drawingBufferFormat 122 122 Нет 108 Нет 122 Нет 81 Нет 26.0 122
drawingBufferHeight 56 79 51 43 15 58 51 43 15 7.0 58
drawingBufferStorage 122 122 Нет 108 Нет 122 Нет 81 Нет 26.0 122
drawingBufferWidth 56 79 51 43 15 58 51 43 15 7.0 58
enable 56 79 51 43 15 58 51 43 15 7.0 58
enableVertexAttribArray 56 79 51 43 15 58 51 43 15 7.0 58
endQuery 56 79 51 43 15 58 51 43 15 7.0 58
endTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
fenceSync 56 79 51 43 15 58 51 43 15 7.0 58
finish 56 79 51 43 15 58 51 43 15 7.0 58
flush 56 79 51 43 15 58 51 43 15 7.0 58
framebufferRenderbuffer 56 79 51 43 15 58 51 43 15 7.0 58
framebufferTexture2D 56 79 51 43 15 58 51 43 15 7.0 58
framebufferTextureLayer 56 79 51 43 15 58 51 43 15 7.0 58
frontFace 56 79 51 43 15 58 51 43 15 7.0 58
generateMipmap 56 79 51 43 15 58 51 43 15 7.0 58
getActiveAttrib 56 79 51 43 15 58 51 43 15 7.0 58
getActiveUniform 56 79 51 43 15 58 51 43 15 7.0 58
getActiveUniformBlockName 56 79 51 43 15 58 51 43 15 7.0 58
getActiveUniformBlockParameter 56 79 51 43 15 58 51 43 15 7.0 58
getActiveUniforms 56 79 51 43 15 58 51 43 15 7.0 58
getAttachedShaders 56 79 51 43 15 58 51 43 15 7.0 58
getAttribLocation 56 79 51 43 15 58 51 43 15 7.0 58
getBufferParameter 56 79 51 43 15 58 51 43 15 7.0 58
getBufferSubData 56 79 51 43 15 58 51 43 15 7.0 58
getContextAttributes 56 79 51 43 15 58 51 43 15 7.0 58
getError 56 79 51 43 15 58 51 43 15 7.0 58
getExtension 56 79 51 43 15 58 51 43 15 7.0 58
getFragDataLocation 56 79 51 43 15 58 51 43 15 7.0 58
getFramebufferAttachmentParameter 56 79 51 43 15 58 51 43 15 7.0 58
getIndexedParameter 56 79 51 43 15 58 51 43 15 7.0 58
getInternalformatParameter 56 79 51 43 15 58 51 43 15 7.0 58
getParameter 56 79 51 43 15 58 51 43 15 7.0 58
getProgramInfoLog 56 79 51 43 15 58 51 43 15 7.0 58
getProgramParameter 56 79 51 43 15 58 51 43 15 7.0 58
getQuery 56 79 51 43 15 58 51 43 15 7.0 58
getQueryParameter 56 79 51 43 15 58 51 43 15 7.0 58
getRenderbufferParameter 56 79 51 43 15 58 51 43 15 7.0 58
getSamplerParameter 56 79 51 43 15 58 51 43 15 7.0 58
getShaderInfoLog 56 79 51 43 15 58 51 43 15 7.0 58
getShaderParameter 56 79 51 43 15 58 51 43 15 7.0 58
getShaderPrecisionFormat 56 79 51 43 15 58 51 43 15 7.0 58
getShaderSource 56 79 51 43 15 58 51 43 15 7.0 58
getSupportedExtensions 56 79 51 43 15 58 51 43 15 7.0 58
getSyncParameter 56 79 51 43 15 58 51 43 15 7.0 58
getTexParameter 56 79 51 43 15 58 51 43 15 7.0 58
getTransformFeedbackVarying 56 79 51 43 15 58 51 43 15 7.0 58
getUniform 56 79 51 43 15 58 51 43 15 7.0 58
getUniformBlockIndex 56 79 51 43 15 58 51 43 15 7.0 58
getUniformIndices 56 79 51 43 15 58 51 43 15 7.0 58
getUniformLocation 56 79 51 43 15 58 51 43 15 7.0 58
getVertexAttrib 56 79 51 43 15 58 51 43 15 7.0 58
getVertexAttribOffset 56 79 51 43 15 58 51 43 15 7.0 58
hint 56 79 51 43 15 58 51 43 15 7.0 58
invalidateFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
invalidateSubFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
isBuffer 56 79 51 43 15 58 51 43 15 7.0 58
isContextLost 56 79 51 43 15 58 51 43 15 7.0 58
isEnabled 56 79 51 43 15 58 51 43 15 7.0 58
isFramebuffer 56 79 51 43 15 58 51 43 15 7.0 58
isProgram 56 79 51 43 15 58 51 43 15 7.0 58
isQuery 56 79 51 43 15 58 51 43 15 7.0 58
isRenderbuffer 56 79 51 43 15 58 51 43 15 7.0 58
isSampler 56 79 51 43 15 58 51 43 15 7.0 58
isShader 56 79 51 43 15 58 51 43 15 7.0 58
isSync 56 79 51 43 15 58 51 43 15 7.0 58
isTexture 56 79 51 43 15 58 51 43 15 7.0 58
isTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
isVertexArray 56 79 51 43 15 58 51 43 15 7.0 58
lineWidth 56 79 51 43 15 58 51 43 15 7.0 58
linkProgram 56 79 51 43 15 58 51 43 15 7.0 58
makeXRCompatible 79 79 Нет 66 Нет 79 Нет 57 Нет 11.2 Нет
pauseTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
pixelStorei 56 79 51 43 15 58 51 43 15 7.0 58
polygonOffset 56 79 51 43 15 58 51 43 15 7.0 58
readBuffer 56 79 51 43 15 58 51 43 15 7.0 58
readPixels 56 79 51 43 15 58 51 43 15 7.0 58
renderbufferStorage 56 79 51 43 15 58 51 43 15 7.0 58
renderbufferStorageMultisample 56 79 51 43 15 58 51 43 15 7.0 58
resumeTransformFeedback 56 79 51 43 15 58 51 43 15 7.0 58
sampleCoverage 56 79 51 43 15 58 51 43 15 7.0 58
samplerParameterf 56 79 51 43 15 58 51 43 15 7.0 58
samplerParameteri 56 79 51 43 15 58 51 43 15 7.0 58
scissor 56 79 51 43 15 58 51 43 15 7.0 58
shaderSource 56 79 51 43 15 58 51 43 15 7.0 58
stencilFunc 56 79 51 43 15 58 51 43 15 7.0 58
stencilFuncSeparate 56 79 51 43 15 58 51 43 15 7.0 58
stencilMask 56 79 51 43 15 58 51 43 15 7.0 58
stencilMaskSeparate 56 79 51 43 15 58 51 43 15 7.0 58
stencilOp 56 79 51 43 15 58 51 43 15 7.0 58
stencilOpSeparate 56 79 51 43 15 58 51 43 15 7.0 58
texImage2D 56 79 51 43 15 58
51Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282.
43 15 7.0 58
texImage3D 56 79 51 43 15 58 51 43 15 7.0 58
texParameterf 56 79 51 43 15 58 51 43 15 7.0 58
texParameteri 56 79 51 43 15 58 51 43 15 7.0 58
texStorage2D 56 79 51 43 15 58 51 43 15 7.0 58
texStorage3D 56 79 51 43 15 58 51 43 15 7.0 58
texSubImage2D 56 79 51 43 15 58
51Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282.
43 15 7.0 58
texSubImage3D 56 79 51 43 15 58 51 43 15 7.0 58
transformFeedbackVaryings 56 79 51 43 15 58 51 43 15 7.0 58
uniform1f 56 79 51 43 15 58 51 43 15 7.0 58
uniform1fv 56 79 51 43 15 58 51 43 15 7.0 58
uniform1i 56 79 51 43 15 58 51 43 15 7.0 58
uniform1iv 56 79 51 43 15 58 51 43 15 7.0 58
uniform1ui 56 79 51 43 15 58 51 43 15 7.0 58
uniform1uiv 56 79 51 43 15 58 51 43 15 7.0 58
uniform2f 56 79 51 43 15 58 51 43 15 7.0 58
uniform2fv 56 79 51 43 15 58 51 43 15 7.0 58
uniform2i 56 79 51 43 15 58 51 43 15 7.0 58
uniform2iv 56 79 51 43 15 58 51 43 15 7.0 58
uniform2ui 56 79 51 43 15 58 51 43 15 7.0 58
uniform2uiv 56 79 51 43 15 58 51 43 15 7.0 58
uniform3f 56 79 51 43 15 58 51 43 15 7.0 58
uniform3fv 56 79 51 43 15 58 51 43 15 7.0 58
uniform3i 56 79 51 43 15 58 51 43 15 7.0 58
uniform3iv 56 79 51 43 15 58 51 43 15 7.0 58
uniform3ui 56 79 51 43 15 58 51 43 15 7.0 58
uniform3uiv 56 79 51 43 15 58 51 43 15 7.0 58
uniform4f 56 79 51 43 15 58 51 43 15 7.0 58
uniform4fv 56 79 51 43 15 58 51 43 15 7.0 58
uniform4i 56 79 51 43 15 58 51 43 15 7.0 58
uniform4iv 56 79 51 43 15 58 51 43 15 7.0 58
uniform4ui 56 79 51 43 15 58 51 43 15 7.0 58
uniform4uiv 56 79 51 43 15 58 51 43 15 7.0 58
uniformBlockBinding 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix2fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix2x3fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix2x4fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix3fv 56 79 51 43 15 58 51 43 15 7.0 58
END_OF_DOCUMENT_MARKER
uniformMatrix3x2fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix3x4fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix4fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix4x2fv 56 79 51 43 15 58 51 43 15 7.0 58
uniformMatrix4x3fv 56 79 51 43 15 58 51 43 15 7.0 58
unpackColorSpace 104 104 132 90 Нет 104 132 71 Нет 20.0 104
useProgram 56 79 51 43 15 58 51 43 15 7.0 58
validateProgram 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib1f 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib1fv 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib2f 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib2fv 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib3f 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib3fv 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib4f 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttrib4fv 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribDivisor 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribI4i 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribI4iv 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribI4ui 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribI4uiv 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribIPointer 56 79 51 43 15 58 51 43 15 7.0 58
vertexAttribPointer 56 79 51 43 15 58 51 43 15 7.0 58
viewport 56 79 51 43 15 58 51 43 15 7.0 58
waitSync 56 79 51 43 15 58 51 43 15 7.0 58
Настольный Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
WebGL_API 9
12Для доступа к контексту WebGL используйте experimental-webgl вместо стандартного идентификатора webgl.
4 12 5.1 25 4 12 8 1.5 4.4.3
activeTexture 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
attachShader 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bindAttribLocation 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bindBuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bindFramebuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bindRenderbuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bindTexture 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
blendColor 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
blendEquation 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
blendEquationSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
blendFunc 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
blendFuncSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bufferData 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
bufferSubData 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
canvas 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
checkFramebufferStatus 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
clear 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
clearColor 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
clearDepth 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
clearStencil 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
colorMask 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
compileShader 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
compressedTexImage2D 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
compressedTexSubImage2D 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
copyTexImage2D 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
copyTexSubImage2D 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
createBuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
createFramebuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
createProgram 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
createRenderbuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
createShader 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
createTexture 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
cullFace 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
deleteBuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
deleteFramebuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
deleteProgram 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
deleteRenderbuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
deleteShader 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
deleteTexture 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
depthFunc 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
depthMask 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
depthRange 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
detachShader 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
disable 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
disableVertexAttribArray 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
drawArrays 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
drawElements 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
drawingBufferColorSpace 104 104 132
127–130Accidental early exposure with no functionality.
90 16.4 104 132
127–130Accidental early exposure with no functionality.
71 16.4 20.0 104
drawingBufferFormat 122 122 Нет 108 Нет 122 Нет 81 Нет 26.0 122
drawingBufferHeight 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
drawingBufferStorage 122 122 Нет 108 Нет 122 Нет 81 Нет 26.0 122
drawingBufferWidth 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
enable 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
enableVertexAttribArray 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
finish 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
flush 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
framebufferRenderbuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
framebufferTexture2D 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
frontFace 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
generateMipmap 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getActiveAttrib 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getActiveUniform 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getAttachedShaders 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getAttribLocation 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getBufferParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getContextAttributes 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getError 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getExtension 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getFramebufferAttachmentParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getProgramInfoLog 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getProgramParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getRenderbufferParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getShaderInfoLog 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getShaderParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getShaderPrecisionFormat 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getShaderSource 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getSupportedExtensions 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getTexParameter 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getUniform 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getUniformLocation 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getVertexAttrib 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
getVertexAttribOffset 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
hint 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isBuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isContextLost 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isEnabled 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isFramebuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isProgram 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isRenderbuffer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isShader 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
isTexture 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
lineWidth 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
linkProgram 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
makeXRCompatible 79 79 Нет Нет Нет 79 Нет Нет Нет 11.2 Нет
pixelStorei 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
polygonOffset 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
readPixels 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
renderbufferStorage 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
sampleCoverage 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
scissor 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
shaderSource 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
stencilFunc 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
END_OF_DOCUMENT_MARKER
stencilFuncSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
stencilMask 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
stencilMaskSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
stencilOp 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
stencilOpSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
texImage2D 9 12 4 12 5.1 25
4Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282.
12 8 1.5 4.4.3
texParameterf 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
texParameteri 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
texSubImage2D 9 12 4 12 5.1 25
4Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282.
12 8 1.5 4.4.3
uniform1f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform1fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform1i 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform1iv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform2f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform2fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform2i 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform2iv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform3f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform3fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform3i 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform3iv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform4f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform4fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform4i 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniform4iv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniformMatrix2fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniformMatrix3fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
uniformMatrix4fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
unpackColorSpace 104 104 132 90 Нет 104 132 71 Нет 20.0 104
useProgram 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
validateProgram 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib1f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib1fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib2f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib2fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib3f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib3fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib4f 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttrib4fv 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
vertexAttribPointer 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
viewport 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3
worker_support Нет Нет 105 Нет Нет Нет 105 Нет Нет Нет Нет

api.WebGLRenderingContext

Таблицы BCD загружаются только в браузере

api.WebGL2RenderingContext

Таблицы BCD загружаются только в браузере

Примечания о совместимости

В дополнение к браузеру, само GPU также должно поддерживать функцию. Таким образом, например, S3 Texture Compression (S3TC) доступен только на планшетах на базе Tegra. Большинство браузеров предоставляют контекст WebGL через имя контекста webgl, но старые версии также нуждаются в experimental-webgl. Кроме того, предстоящий WebGL 2 полностью обратно совместим и будет иметь имя контекста webgl2.

Примечания Gecko

Отладка и тестирование WebGL

Firefox предоставляет две доступные настройки, которые позволяют управлять возможностями WebGL в целях тестирования:

webgl.min_capability_mode

Булево свойство, которое, когда true, включает режим минимальных возможностей. В этом режиме WebGL настроен на поддержку только минимального набора функций и возможностей, требуемых спецификацией WebGL. Это позволяет убедиться, что ваш код WebGL будет работать на любом устройстве или браузере, независимо от их возможностей. Это false по умолчанию.

webgl.disable_extensions

Булево свойство, которое, когда true, отключает все расширения WebGL. Это false по умолчанию.

См. также

  • Canvas API
  • Информация о совместимости расширений WebGL

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API