WebGL-рендерер отображает ваши сцены, используя технологию WebGL.
null
.
"highp"
, "mediump"
или "lowp"
. По умолчанию "highp"
, если данная точность поддерживается устройством.
false
.
true
.
false
.
true
.
false
.
"high-performance"
, "low-power"
или "default"
. По умолчанию "default"
. Смотрите подробности в спецификации WebGL.
false
. Смотрите подробности в спецификации WebGL.
true
.
false
.
Определяет, должен ли рендерер автоматически очищать свой вывод перед рендерингом кадра.
Если autoClear равно true, определяет, должен ли рендерер очищать буфер цвета. По умолчанию true
.
Если autoClear равно true, определяет, должен ли рендерер очищать буфер глубины. По умолчанию true
.
Если autoClear равно true, определяет, должен ли рендерер очищать буфер стенсила. По умолчанию true
.
Объект с параметрами отладки:
true
.false
.Объект, содержащий подробную информацию о возможностях текущего RenderingContext.
true
если floatFragmentTextures и vertexTextures оба true.true
если используемый контекст является объектом WebGL2RenderingContext.true
если logarithmicDepthBuffer было установлено true в конструкторе и контекст поддерживает расширениеEXT_frag_depth.gl.MAX_VERTEX_ATTRIBS
.gl.MAX_CUBE_MAP_TEXTURE_SIZE
. Максимальная высота × ширина текстур карты куба, которые может использовать шейдер.gl.MAX_FRAGMENT_UNIFORM_VECTORS
. Количество юниформов, которые может использовать фрагментный шейдер.gl.MAX_SAMPLES
. Максимальное количество семплов, используемых для мультисемплинга (MSAA).gl.MAX_TEXTURE_SIZE
. Максимальная высота × ширина текстуры, которую использует шейдер.gl.MAX_TEXTURE_IMAGE_UNITS
. Максимальное количество текстур, которое может быть использовано шейдером.gl.MAX_VARYING_VECTORS
. Количество изменяющихся векторов, которые могут использоваться шейдерами.gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS
. Количество текстур, которые могут быть использованы в вершинном шейдере.gl.MAX_VERTEX_UNIFORM_VECTORS
. Максимальное количество юниформов, которое может быть использовано в вершинном шейдере.true
если # .maxVertexTextures : Integerбольше чем 0 (т.е. можно использовать вершинные текстуры).Определяемые пользователем плоскости сечения, заданные как объекты v3d.Plane в мировом пространстве. Эти плоскости применяются глобально.Точки в пространстве, чье скалярное произведение с плоскостью отрицательно, отсекаются. По умолчанию [].
canvas где рендерер рисует свой вывод.
Он автоматически создается рендерером в конструкторе (если он еще не создан); вам просто нужно добавить его на вашу страницу, как показано ниже:
document.body.appendChild(renderer.domElement);
Обертка для метода .extensions.get, используемого для проверки поддержки различных расширений WebGL.
По умолчанию 2.
Определяет выходную кодировку рендерера. По умолчанию v3d.LinearEncoding.
Если цель рендеринга была установлена с помощью .setRenderTarget, то вместо нее будет использоваться renderTarget.texture.encoding.
Подробности о других форматах смотрите на странице texture constants.
Объект, содержащий ряд статистических сведений о памяти графической карты и процессе рендеринга. Полезен для отладки или просто как дополнительная информация. Объект содержит следующие поля:
Определяет, соблюдает ли рендерер плоскости обтравки на уровне объекта. По умолчанию false
.
По умолчанию 12. Максимальное количество целей MorphTargets, допустимое в шейдере. Следует помнить, что стандартные материалы допускают только 12 целей MorphTargets.
По умолчанию - 6. Максимальное количество MorphNormals, допустимое в шейдере. Следует помнить, что стандартные материалы допускают только 6 MorphNormals.
Использовать ли режим физически корректного освещения. По умолчанию false
.
Используется внутри рендерера для отслеживания различных свойств саб-объектов.
Используется внутренне для обработки упорядочивания рендеринга объектов сцены.
Содержит ссылку на карту теней, если она используется.
Если задано, используйте карты теней в сцене. По умолчанию false
.
Включает автоматическое обновление теней в сцене. По умолчанию true
.
Если вам не требуется динамическое освещение/тени, вы можете установить значение false
при инстанцировании рендерера.
Если установлено значение true
, карты теней в сцене будут обновлены в следующем вызове render. По умолчанию false
.
Если вы отключили автоматическое обновление карт теней (shadowMap.autoUpdate = false), вам нужно установить значение true
и затем выполнить вызов рендеринга для обновления теней в вашей сцене.
Определяет тип карты теней (нефильтрованная, фильтрация с процентным приближением, фильтрация с процентным приближением с билинейной фильтрацией в шейдере, экспоненциальное отображение теней с гауссовым размытием).
Варианты: v3d.BasicShadowMap, v3d.PCFShadowMap (по умолчанию), v3d.PCFSoftShadowMap, v3d.ESMShadowMap, v3d.PCFShadowMapPoissonDisk. Подробности смотрите в Renderer constants.
Определяет, должен ли рендерер сортировать объекты. По умолчанию true
.
Примечание: Сортировка используется для того, чтобы попытаться правильно отобразить объекты, имеющие некоторую степень прозрачности. По определению, сортировка объектов может работать не во всех случаях. В зависимости от потребностей приложения, может потребоваться отключить сортировку и использовать другие методы для работы с рендерингом прозрачности, например, вручную определять порядок рендеринга каждого объекта.
Содержит функции для установки различных свойств состояния WebGLRenderer.context.
По умолчанию NoToneMapping. Другие варианты смотрите в Renderer constants.
Уровень экспозиции тонального маппинга. По умолчанию 1.
Предоставляет доступ к связанному с WebXR interface рендереру.
Дает команду рендереру очистить буфер(ы) цвета, глубины или трафаретного рисунка. Этот метод инициализирует буфер цвета текущим значением clear color.
Аргументы по умолчанию имеют значение true
.
Очистить цветовой буфер. Эквивалентно вызову .clear(true, false, false).
Очистить буфер глубины. Эквивалентно вызову .clear(false, true, false).
Очистить буферы стенсилов. Эквивалентно вызову .clear(false, false, true).
Компилирует все материалы в сцене с камерой. Это полезно для предварительной компиляции шейдеров перед первым рендерингом.
Асинхронно компилирует все материалы в сцене с камерой. Это полезно для предварительной компиляции шейдеров перед первым рендерингом. Дополнительная функция progressCb получает параметр percentage.
Копирует пиксели из текущего WebGLFramebuffer в 2D текстуру. Позволяет получить доступ к WebGLRenderingContext.copyTexImage2D.
Копирует все пиксели текстуры в существующую текстуру, начиная с заданной позиции. Позволяет получить доступ к WebGLRenderingContext.texSubImage2D.
Удаление текущего контекста рендеринга.
Используется для проверки поддержки различных расширений и возвращает объект с подробной информацией о расширении, если оно доступно.
Этот метод может проверить наличие следующих расширений:
- WEBGL_depth_texture
- EXT_texture_filter_anisotropic
- WEBGL_compressed_texture_s3tc
- WEBGL_compressed_texture_pvrtc
- WEBGL_compressed_texture_etc1
Имитация потери контекста WebGL. Для этого требуется поддержка расширения WEBGL_lose_context. Согласно WebGLStats, по состоянию на февраль 2016 года 90% устройств с поддержкой WebGL поддерживают его.
Возвращает float с текущей чистой альфой. Диапазон от 0 до 1.
Возвращает экземпляр v3d.Color с текущим цветом прозрачности.
Возвращает текущий контекст WebGL.
Возвращает объект, описывающий атрибуты, установленные для контекста WebGL при его создании.
Возвращает текущую активную грань куба.
Возвращает текущий активный уровень mipmap.
Возвращает текущую RenderTarget, если она есть; в противном случае возвращает null.
target — результат будет скопирован в этот Vector4.
Возвращает текущий видовой экран.
target — результат будет скопирован в этот Vector2.
Возвращает ширину и высоту буфера отрисовки рендерера, в пикселях.
Возвращает текущее используемое соотношение пикселей устройства.
target — результат будет скопирован в этот Vector4.
Возвращает область ножниц.
Возвращает true
, если тест ножниц включен; возвращает false
в противном случае.
target — результат будет скопирован в этот Vector2.
Возвращает ширину и высоту выходного холста рендерера, в пикселях.
target — результат будет скопирован в этот Vector4.
Возвращает область просмотра.
Инициализирует заданную текстуру. Полезно для предварительной загрузки текстуры вместо ожидания первого рендера (который может вызвать заметные задержки из-за накладных расходов на декодирование и загрузку GPU).
Сброс состояния GL на значение по умолчанию. Вызывается внутренне, если контекст WebGL потерян.
buffer - Uint8Array - единственный тип назначения, поддерживаемый во всех случаях, другие типы зависят от renderTarget и платформы. Подробности смотрите в WebGL spec.
Считывает пиксельные данные из renderTarget в переданный вам буфер. Это обертка вокруг WebGLRenderingContext.readPixels().
Для считывания WebGLCubeRenderTarget используйте необязательный параметр activeCubeFaceIndex, чтобы определить, какая грань должна быть считана.
Рендеринг scene или другого типа object с помощью camera.
Рендеринг выполняется на ранее указанную renderTarget, установленную вызовом .setRenderTarget или на холст, как обычно.
По умолчанию буферы рендеринга очищаются перед рендерингом, но вы можете предотвратить это, установив свойство autoClear в false.
Если вы хотите предотвратить очистку только определенных буферов, вы можете установить для свойств autoClearColor, autoClearStencil или autoClearDepth значение false. Чтобы принудительно очистить один или несколько буферов, вызовите .clear.
Рендеринг группы геометрии буфера с использованием камеры и с указанным материалом.
object - экземпляр Object3D
program - экземпляр WebGLProgram
Рендерит экземпляр ImmediateRenderObject. Вызывается функцией renderObjectImmediate().
Может использоваться для сброса внутреннего состояния WebGL. Этот метод наиболее актуален для приложений, которые используют один контекст WebGL в нескольких библиотеках WebGL.
callback — Функция будет вызываться каждый доступный кадр. Если передано null
, это остановит любую уже идущую анимацию.
Встроенная функция, которая может быть использована вместо requestAnimationFrame. Для проектов WebXR необходимо использовать эту функцию.
Устанавливает прозрачную альфу. В качестве входного значения может быть использовано число в диапазоне от 0.0 до 1.0.
Устанавливает прозрачный цвет и непрозрачность.
Устанавливает заданный WebGLFramebuffer. Этот метод можно использовать, только если цель рендеринга не установлена через .setRenderTarget().
Устанавливает соотношение пикселей устройства. Обычно используется для устройств с высоким разрешением, чтобы предотвратить смазывание холста при выводе.
renderTarget — renderTarget, который должен быть активирован. Если задано значение null, то вместо него в качестве активной цели рендеринга устанавливается холст.
activeCubeFace — Указывает активную сторону куба (PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5) WebGLCubeRenderTarget (необязательно).
activeMipmapLevel — Указывает активный уровень mipmap (необязательно).
Этот метод устанавливает активный объект рендеринга.
Параметры x, y, ширины и высоты области ножниц.
Опционально, 4-компонентный вектор, определяющий параметры региона.
Устанавливает область ножниц от (x, y) до (x + ширина, y + высота).
(x, y) - левый нижний угол области ножниц.
Включите или отключите проверку ножниц. Если этот параметр включен, только пиксели в пределах определенной области будут затронуты дальнейшими действиями рендеринга.
Устанавливает пользовательскую функцию непрозрачной сортировки для WebGLRenderLists. Передайте null, чтобы использовать функцию по умолчанию painterSortStable.
Устанавливает пользовательскую прозрачную функцию сортировки для WebGLRenderLists. Передайте null, чтобы использовать функцию по умолчанию reversePainterSortStable.
Изменяет размер выводимого холста до (ширина, высота) с учетом соотношения пикселей устройства, а также устанавливает область просмотра в соответствии с этим размером, начиная с (0, 0). Установка updateStyle в false предотвращает любые изменения стиля выводимого холста.
Параметры x, y, ширины и высоты области просмотра.
Опционально, 4-компонентный вектор, задающий параметры видового экрана.
Устанавливает область просмотра для рендеринга из (x, y) в (x + ширина, y + высота).
(x, y) - левый нижний угол области.
О том как получить исходный код этого модуля читайте тут.