Тип QML SceneEnvironment
Позволяет настроить отрисовку сцены. Подробнее...
| Заявление об импорте: | import QtQuick3D . |
| Наследует: |
Свойства
- antialiasingMode : перечисление
- antialiasingQuality : перечисление
- aoBias : float
- aoDistance : float
- aoDither : bool
- aoSampleRate : int
- aoSoftness : float
- aoStrength : float
- backgroundMode : перечисление
- clearColor : цвет
- depthPrePassEnabled : bool
- depthTestEnabled : bool
- effects : Список<QtQuick3D::Effect>
- lightProbe : QtQuick3D::Texture
- probeExposure : float
- probeHorizon : float
- probeOrientation : vector3d
- temporalAAEnabled : bool
- temporalAAStrength : float
- tonemapMode : перечисление
Подробное описание
SceneEnvironment определяет набор глобальных свойств для отрисовки сцены.
Документация свойств
[с 5.15] antialiasingMode : перечисление
Это свойство управляет режимом сглаживания, применяемым при отрисовке сцены.
Возможные значения:
| Постоянная | Описание |
|---|---|
SceneEnvironment.NoAA |
Сглаживание не применяется. |
SceneEnvironment.SSAA |
Применяется сглаживание сверхвыборочным методом. |
SceneEnvironment.MSAA |
Применяется сглаживание с множественной выборкой. |
SceneEnvironment.ProgressiveAA |
Применяется прогрессивное сглаживание. |
Значение по умолчанию — SceneEnvironment.NoAA.
Сверхвыборка
Сцена отрисовывается в более высоком разрешении, а затем масштабируется до фактического разрешения.
Плюсы: Высокое качество. Сглаживает весь контент сцены, а не только контуры геометрии.
Минусы: Обычно дороже, чем MSAA. Увеличивает использование видеопамяти. Поддерживается только с элементами View3D с renderMode, установленным в Offscreen, так как метод подразумевает сначала отрисовку в текстуру.
Множественная выборка
Контуры геометрии сверхвыбираются, что приводит к более плавным контурам. Однако этот метод не влияет на материалы внутри геометрии.
Плюсы: Работает с любым элементом View3D независимо от renderMode. Хорошие результаты для контуров геометрии, где сглаживание часто наиболее заметно; работает с быстрой анимацией без проблем. Производительность зависит только от возможностей системы (видеокарты).
Минусы: Не помогает с проблемами текстур или отражений. Увеличивает использование видеопамяти. Может быть дорогостоящим для использования на менее мощном графическом оборудовании. При использовании элементов View3D с renderMode отличным от Offscreen, MSAA может контролироваться только на уровне окна, его нельзя включать или отключать отдельно для отдельных элементов View3D.
Примечание: Для элементов View3D с renderMode, отличным от Offscreen, сглаживание с множественной выборкой можно включить только через QSurfaceFormat QQuickWindow или QQuickView. Это повлияет на весь контент, как 2D, так и 3D, в этом окне.
Прогрессивное сглаживание
Это свойство включает и задаёт уровень прогрессивного сглаживания, применяемого к сцене.
Когда весь контент сцены перестал двигаться, камера слегка подёргивается между кадрами, а результат каждого нового кадра смешивается с предыдущими кадрами. Чем больше кадров вы накапливаете, тем лучше результат.
Плюсы: Обеспечивает отличные результаты, когда весь контент сцены стоит неподвижно.
Минусы: Не срабатывает, если происходят какие-либо изменения визуального отображения. Дорого из-за необходимости накапливать и смешивать. Увеличивает использование видеопамяти.
Это свойство было добавлено в Qt 5.15.
[с 5.15] antialiasingQuality : перечисление
Это свойство устанавливает уровень сглаживания, применяемого к сцене. Поведение зависит от используемого antialiasingMode. При antialiasingMode, установленным в NoAA, это свойство не влияет.
Возможные значения:
| Постоянная | Описание |
|---|---|
SceneEnvironment.Medium |
SSAA: Сглаживание использует разрешение сверхвыборки 1,2x. MSAA: Сглаживание использует 2 выборки на пиксель. ProgressiveAA: Сглаживание использует 2 кадра для конечного изображения. |
SceneEnvironment.High |
SSAA: Сглаживание использует разрешение сверхвыборки 1,5x. MSAA: Сглаживание использует 4 выборки на пиксель. ProgressiveAA: Сглаживание использует 4 кадра для конечного изображения. |
SceneEnvironment.VeryHigh |
SSAA: Сглаживание использует разрешение сверхвыборки 2,0x. MSAA: Сглаживание использует 8 выборок на пиксель. ProgressiveAA: Сглаживание использует 8 кадров для конечного изображения. |
Значение по умолчанию — SceneEnvironment.High
Это свойство было добавлено в Qt 5.15.
aoBias : float
Это свойство определяет расстояние отсечения, предотвращающее проявление затенения окружающей среды вблизи объектов. Большие значения увеличивают расстояние между объектами, прежде чем будет видно затенение окружающей среды.
Примечание: Если вы видите затенение окружающей среды на объектах там, где его быть не должно, немного увеличьте значение, чтобы отсечь близкие результаты.
Значение по умолчанию — 0.0.
aoDistance : float
Это свойство определяет приблизительное расстояние, на которое распространяется затенение окружающей среды от объектов. Более большие расстояния увеличивают нагрузку на производительность.
Значение по умолчанию — 5.0.
aoDither : bool
При включении этого свойства края полос затенения окружающей среды рассеиваются для улучшения плавности (с риском иногда появления очевидных повторяющихся артефактов).
Примечание: Очень большие расстояния между плоскостями обрезания вашей камеры могут вызвать проблемы с затенением окружающей среды. Если вы видите необычную полосатость в затенении окружающей среды, попробуйте настроить свойство clipFar вашей камеры, чтобы оно было ближе к вашему содержимому.
Значение по умолчанию — false.
См. также PerspectiveCamera.clipFar и OrthographicCamera.clipFar.
aoSampleRate : int
Это свойство определяет качество затенения окружающей среды (более оттенки серого) за счёт производительности.
Значение должно быть 2, 3 или 4. Значение по умолчанию — 2.
aoSoftness : float
Это свойство определяет плавность краёв затенения окружающей среды.
Значение должно быть между 0.0 и 50.0. Значение по умолчанию — 50.0.
aoStrength : float
Это свойство определяет величину затенения окружающей среды. Затенение окружающей среды — это форма приближённого глобального освещения, которая вызывает не направленное самозатенение, где объекты находятся близко друг к другу. Значение 100 вызывает полное тёмное затенение; меньшие значения делают затенение светлее. Значение 0 полностью отключает затенение окружающей среды, улучшая производительность за счёт визуальной реалистичности 3D-объектов, отрисованных в сцене.
Все значения, кроме 0, оказывают одинаковое влияние на производительность.
Значение по умолчанию — 0.0. Максимальное значение — 100.0.
backgroundMode : перечисление
Это свойство управляет тем, очищается ли и как очищается фон сцены.
Примечание: Очистка не всегда происходит: в зависимости от свойства renderMode, View3D может не выполнять очистку самостоятельно, в этом случае SceneEnvironment.Transparent и SceneEnvironment.Color не имеют эффекта. Только режим Offscreen (рендеринг в текстуру) поддерживает все режимы очистки. В режиме Underlay используйте QQuickWindow::setColor() или Window.color для управления цветом очистки для сцены Qt Quick. Skybox обрабатывается по-другому, так как он подразумевает отрисовку фактической геометрии, поэтому работает одинаково во всех режимах рендеринга.
| Константа | Описание |
|---|---|
SceneEnvironment.Transparent |
Сцена очищается до прозрачного состояния. Это полезно для рендеринга 3D-контента поверх другого элемента. Этот режим не имеет эффекта, когда View3D использует режим рендеринга Underlay или Overlay. |
SceneEnvironment.Color |
Сцена очищается цветом, заданным свойством clearColor. Этот режим не имеет эффекта, когда View3D использует режим рендеринга Underlay или Overlay. |
SceneEnvironment.Skybox |
Сцена не будет очищаться, а вместо этого будет отрисовываться Skybox или Skydome. Skybox определяется с помощью HDRI-карты, определенной в свойстве lightProbe. |
Значение по умолчанию — SceneEnvironment.Color
См. также QQuickWindow::setColor() и Window::color.
clearColor : цвет
Это свойство определяет цвет, который будет использоваться для очистки области просмотра при использовании SceneEnvironment.Color для свойства backgroundMode.
Значение по умолчанию — Qt::black
См. также backgroundMode.
depthPrePassEnabled : bool
При включенном значении рендерер выполняет предварительный проход по Z для непрозрачных объектов, то есть отрисовывает их с простым шейдером и отключенным записыванием цвета, чтобы предварительно заполнить буфер глубины перед вызовом функций отрисовки для основных проходов рендеринга.
Это может повысить производительность в зависимости от содержимого сцены. Обычно от этого выигрывают сцены с большим количеством перекрывающихся объектов и дорогостоящей фрагментацией шейдинга. В то же время стоит отметить, что рендерер выполняет сортировку объектов спереди назад для непрозрачных объектов, что само по себе помогает уменьшить излишнюю фрагментацию шейдинга, и поэтому предварительный проход по Z не всегда приносит значительные улучшения.
На видеокартах, использующих архитектуру разбиения на тайлы, что характерно для мобильных и встраиваемых систем, рекомендуется установить это значение в false.
Значение по умолчанию — false.
Примечание: Это свойство не имеет эффекта, когда отключение проверки глубины.
depthTestEnabled : bool
Значение по умолчанию — true. По умолчанию рендерер классифицирует объекты в сцене либо как opaque, либо как semi-transparent. Объекты (под-сетки с ассоциированным материалом) в списке opaque рендерятся первыми, с включённой проверкой и записью глубины, обеспечивая оптимальную Z-обрезку для типичных 3D-объектов, не имеющих полупрозрачных областей. Объекты в списке semi-transparent рендерятся с отключённой записью глубины, но при этом с включённой проверкой глубины (для проверки против непрозрачных объектов), в порядке от дальнего к ближнему (сортируются по расстоянию центральной точки от камеры). Это позволяет правильно смешивать ("видеть сквозь") 3D-объекты, включающие полупрозрачные области на их поверхности, как из-за непрозрачности узла, так и из-за какого-то цвета или текстурной карты в материале.
При установке этого свойства в false, буфер Z не записывается и не проверяется, проверка глубины пропускается, и все объекты, включая полностью непрозрачные, рендерятся за один проход, сортируясь от дальнего к ближнему.
Устанавливать это свойство в false следует редко. Это может быть полезно в сценариях, где известно, что в двухэтапном подходе мало выгоды, потому что либо непрозрачных объектов очень мало, либо они преобразованы таким образом, что однократный проход от дальнего к ближнему выполняется лучше.
Примечание: Установка этого свойства в false может привести к ошибкам рендеринга в некоторых сценах. Кроме того, некоторые функции, такие как тени, затенение окружающей средой, SCREEN_TEXTURE и DEPTH_TEXTURE в пользовательских материалах и эффектах, не будут работать правильно без включения использования буфера глубины.
Примечание: Этот флаг не управляет наличием буфера глубины или буфера глубины-значения. Такие буферы всё равно могут быть выделены, даже когда это установлено в false.
[с 5.15] effects : Список<QtQuick3D::Effect>
Это свойство содержит список эффектов пост-обработки, которые будут применены к всей области просмотра. Результат каждого эффекта передаётся следующему, поэтому порядок важен.
Это свойство было добавлено в Qt 5.15.
lightProbe : QtQuick3D::Texture
Это свойство определяет изображение (предпочтительно изображение с высокой динамической гаммой) для освещения сцены, вместо стандартных источников света или дополнительно к ним. Если выбрано, обратите внимание, что это изображение будет использоваться в качестве среды для любых пользовательских материалов, вместо карты среды, часто ассоциируемой с ними.
probeExposure : float
Это свойство изменяет количество света, испускаемого зондом света.
По умолчанию экспозиция установлена в 1,0
probeHorizon : float
Это свойство, при увеличении значений, добавляет темноту (чёрный цвет) к нижней половине окружающей среды, заставляя освещение исходить преимущественно сверху изображения (и удаляя определённые отражения из нижней половины). Это свойство полезно для учёта плоскости земли, которая будет иметь эффект затенения отражения зонда света от земли. Это необходимо, поскольку вклады зонда света поступают непосредственно с изображения без учёта содержимого сцены.
Ожидаемый диапазон значений для свойства probeHorizon находится между 0,0 и 1,0. Любое значение за пределами этого диапазона будет ограничено ожидаемым диапазоном.
По умолчанию probeHorizon установлен в 0,0, что означает, что весь зонд света используется без корректировки.
Примечание: Свойство probeHorizon влияет только на освещение материалов и не влияет на рендеринг небосвода.
probeOrientation : вектор3d
Это свойство определяет ориентацию зонда света. Ориентация определяется в терминах углов Эйлера в градусах по осям x, y и z.
Примечание: Это значение дополняет способ выборки текстуры lightProbe в сочетании с любыми вращениями и смещениями текстур, заданными на текстуре lightProbe.
temporalAAEnabled : bool
При включении этого свойства будет использоваться временная антиалайзинг.
Камера слегка смещается между кадрами, а результат каждого нового кадра смешивается с предыдущим кадром.
Примечание: Временная антиалайзинг не имеет эффекта, когда antialiasingMode является MSAA.
Примечание: В сочетании с ProgressiveAA antialiasingMode временная антиалайзинг используется при анимации сцены, а ProgressiveAA используется после остановки анимации.
Плюсы: Благодаря дрожанию камеры она находит реальные детали, которые в противном случае были утеряны; низкое влияние на производительность.
Минусы: Быстро движущиеся объекты вызывают эффект «привидения» на одном кадре.
[с 5.15] temporalAAStrength : float
Это свойство изменяет степень временного движения (антиалиасинга). Это оказывает эффект только когда свойство temporalAAEnabled имеет значение true.
Это свойство было добавлено в Qt 5.15.
См. также temporalAAEnabled.
[с 6.0] tonemapMode : перечисление
Это свойство определяет, как цвета тонируются перед рендерингом. Весь рендеринг в Qt Quick 3D выполняется в линейном цветовом пространстве и во многих случаях может приводить к генерации цветовых значений, которые не отображаются. tonemapMode определяет технику, используемую для преобразования цветов в отображаемый диапазон.
Значение по умолчанию — SceneEnvironment.TonemapModeLinear
| Константа | Описание |
|---|---|
SceneEnvironment.TonemapModeNone |
Все тонирования игнорируются. Этот режим полезен при выполнении эффектов пост-обработки. |
SceneEnvironment.TonemapModeLinear |
Применяется линейное тонирование. Цвета корректируются по гамма-кривой и возвращаются в цветовом пространстве sRGB. |
SceneEnvironment.TonemapModeAces |
Применяется тонирование по системе цветового кодирования Academy. |
SceneEnvironment.TonemapModeHejlDawson |
Применяется тонирование по модели Хейла-Доусона. |
SceneEnvironment.TonemapModeFilmic |
Применяется тонирование по модели Filmic. |
Примечание: При использовании эффектов пост-обработки многие эффекты ожидают нетонированные линейные цветовые данные. В этом случае важно обойти встроенное тонирование, используя значение SceneEnvironment.TonemapModeNone.
Это свойство было добавлено в Qt 6.0.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick3d-sceneenvironment.html