Spec-Zone.ru › Qt 6.1

Тип QML SceneEnvironment

Позволяет настроить способ отрисовки сцены. Подробнее...

Заявление импорта: import QtQuick3D .
Наследует:

Object3D

  • Список всех членов, включая унаследованные

Свойства

  • 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.

Повышенное сэмплирование (Supersampling)

Сцена отрисовывается с более высоким разрешением, а затем масштабируется до фактического разрешения.

Преимущества: Высокое качество. Сглаживает весь контент сцены, а не только контуры геометрии.

Недостатки: Обычно более дорогостоящее, чем MSAA. Увеличивает использование видеопамяти. Поддерживается только с элементами View3D с renderMode, установленным в Offscreen, так как метод подразумевает рендеринг в текстуру сначала.

Множественное сэмплирование (Multisampling)

Края геометрии супер-сэмплируются, что приводит к более плавным контурам. Однако этот метод не влияет на материалы внутри геометрии.

Преимущества: Работает с любым элементом 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,2-кратным увеличением сэмплирования. MSAA: Сглаживание использует 2 сэмпла на пиксель. ProgressiveAA: Сглаживание использует 2 кадра для конечного изображения.
SceneEnvironment.High SSAA: Сглаживание использует разрешение с 1,5-кратным увеличением сэмплирования. MSAA: Сглаживание использует 4 сэмпла на пиксель. ProgressiveAA: Сглаживание использует 4 кадра для конечного изображения.
SceneEnvironment.VeryHigh SSAA: Сглаживание использует разрешение с 2,0-кратным увеличением сэмплирования. 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.Transparent

См. также 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-объекты, которые включают полупрозрачные области на их поверхности, будь то из-за непрозрачности узла node opacity или из-за какого-либо цвета или текстурной карты в материале.

Когда это свойство установлено в false, буфер Z не записывается и не проверяется, проверка глубины пропускается, и все объекты, включая полностью непрозрачные, рендерятся в один проход, отсортированные от заднего к переднему.

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

Примечание: Установка этого свойства в false может привести к ошибкам рендеринга в некоторых сценариях. Кроме того, некоторые функции, такие как тени, окружающее затемнение, SCREEN_TEXTURE и DEPTH_TEXTURE в пользовательских материалах и эффектах, не будут работать правильно без включения использования буфера глубины.

Примечание: Этот флаг не контролирует наличие буфера глубины или буфера глубины-шаблона. Такие буферы могут по-прежнему быть выделены, даже когда это свойство установлено в false.

[since 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 используется после остановки анимации.

Плюсы: Благодаря дрожанию камеры она находит реальные детали, которые в противном случае были потеряны; низкое влияние на производительность.

Минусы: Быстро движущиеся объекты вызывают эффект призраков в одном кадре.

[since 5.15] temporalAAStrength : float

Это свойство изменяет количество временного смещения (антиалясинг). Это имеет эффект только тогда, когда свойство temporalAAEnabled имеет значение true.

Это свойство было добавлено в Qt 5.15.

См. также temporalAAEnabled.

[since 6.0] tonemapMode : перечисление

Это свойство определяет, как цвета тонируются перед отрисовкой. Весь рендеринг в Qt Quick 3D выполняется в линейном цветовом пространстве и во многих случаях может приводить к созданию цветовых значений, которые не отображаются. tonemapMode определяет технику, используемую для преобразования цветов в отображаемый диапазон.

Значение по умолчанию: SceneEnvironment.TonemapModeLinear

Константа Описание
SceneEnvironment.TonemapModeNone Все тонирование отменяется. Этот режим полезен при выполнении эффектов пост-обработки.
SceneEnvironment.TonemapModeLinear Применяется линейное тонирование. Цвета гамма-корригируются и возвращаются в цветовом пространстве sRGB.
SceneEnvironment.TonemapModeAces Применяется тонирование системы кодирования цвета Академии.
SceneEnvironment.TonemapModeHejlDawson Применяется тонирование по Хеджу-Доусону.
SceneEnvironment.TonemapModeFilmic Применяется тонирование по фильму.
END_OF_DOCUMENT_MARKER

Примечание: При использовании эффектов пост-обработки многие эффекты ожидают линейные цветовые данные без тонирования. В этом случае важно обойти встроенную тонировку, используя значение 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.1/qml-qtquick3d-sceneenvironment.html

Spec-Zone.ru

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