Spec-Zone.ru › Qt

Тип QML PrincipledMaterial

Позволяет определить материал для 3D-объектов, используя рабочую область металличность/шероховатость. Подробнее...

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

Материал

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

Свойства

  • alphaCutoff : real
  • alphaMode : перечисление
  • baseColor : цвет
  • baseColorMap : Текстура
  • blendMode : перечисление
  • emissiveFactor : vector3d
  • emissiveMap : Текстура
  • heightAmount : real
  • heightChannel : перечисление
  • heightMap : Текстура
  • lighting : перечисление
  • lineWidth : real
  • maxHeightMapSamples : int
  • metalness : real
  • metalnessChannel : перечисление
  • metalnessMap : Текстура
  • minHeightMapSamples : int
  • normalMap : Текстура
  • normalStrength : real
  • occlusionAmount : real
  • occlusionChannel : перечисление
  • occlusionMap : Текстура
  • opacity : real
  • opacityChannel : перечисление
  • opacityMap : Текстура
  • pointSize : real
  • roughness : real
  • roughnessChannel : перечисление
  • roughnessMap : Текстура
  • specularAmount : real
  • specularMap : Текстура
  • specularReflectionMap : Текстура
  • specularTint : real

Подробное описание

Прежде чем модель можно будет отобразить в сцене, к ней необходимо прикрепить по крайней мере один материал, который описывает, как должна быть затенена сетка. PrincipledMaterial — это PBR-материал металличность/шероховатость, который призван быть простым в использовании материалом с минимальным набором параметров. Кроме того, что параметров мало, все входные значения строго нормированы в диапазоне от 0 до 1 и имеют разумные значения по умолчанию, что означает, что даже без изменения каких-либо значений материал можно использовать для затенения модели. Для ознакомления с тем, как различные свойства принципиального материала влияют на затенение модели, см. пример Principled Material.

Рабочая область металличность/шероховатость

Принципиальный материал — это материал металличность/шероховатость, что означает, что основные характеристики материала контролируются через свойство металличность, шероховатость и основной цвет.

Металличность

Материалы реального мира делятся на две основные категории: металлы и диэлектрики (неметаллы). В принципиальном материале категория, к которой принадлежит материал, определяется значением metalness. Установка значения metalness в 0 означает, что материал — диэлектрик, а все значения выше 0 считаются металлом. На самом деле у металлов значение metalness будет равно 1, но возможны значения от 0 до 1, обычно используемые для металлов с уменьшенной отражательной способностью. Например, для отображения коррозии или аналогичных свойств на материале следует уменьшить metalness, чтобы выходные свойства были более похожи на свойства диэлектрического материала. Поскольку значение metalness влияет на отражательную способность материала, может показаться заманчивым использовать металличность для регулировки блеска, но сначала подумайте о том, какой тип материала вы хотите описать. Увеличение значения metalness для придания диэлектрическому материалу более полированного вида приведет к появлению свойств, которые не соответствуют диэлектрическому материалу, поэтому подумайте, будет ли целесообразнее настроить, например, значение roughness.

Шероховатость

Шероховатость материала описывает состояние поверхности объекта. Низкое значение roughness означает, что объект имеет гладкую поверхность и, следовательно, будет более отражательным, чем материал с более высоким значением roughness.

Основной цвет

Основной цвет материала металличность/шероховатость содержит данные о рассеянном и отраженном свете, то, как основной цвет интерпретируется как один или другой, в первую очередь определяется значением metalness. Например, материал с металличностью 1 будет интерпретировать большую часть основного цвета как цвет отражения, а диффузный цвет будет иметь черный оттенок. Противоположное произойдет для материала с металличностью 0. Это, конечно, немного упрощенно, но дает общее представление о взаимодействии основного цвета baseColor и значения metalness. Для тех, кто более знаком с рабочей областью зеркальность/глянцевость, здесь есть очевидное различие, которое стоит отметить: данные цвета двух материалов несовместимы напрямую, так как в материале зеркальность/глянцевость material диффузный и зеркальный цвета поступают из отдельных входов.

Документация свойств

alphaCutoff : real

Свойство alphaCutoff можно использовать для указания значения отсечения при использовании режима Mask alphaMode. Фрагменты, где значение альфа меньше порога, будут отображаться полностью прозрачными (0.0 для всех цветовых каналов). Когда значение альфа равно или больше значения отсечения, цвет не будет изменен никоим образом.

Значение по умолчанию — 0,5.

См. также alphaMode.

alphaMode : enumeration

Это свойство определяет, как используется значение цвета альфа из baseColor и цветовой канал альфа карты основного цвета.

Примечание: тест на отсечение по альфа-каналу учитывает только альфа-канал основного цвета. opacity и Node::opacity там не учитываются.

Примечание: при выборке карты основного цвета эффективное значение альфа — это выборка альфа, умноженная на альфа baseColor.

Постоянная Описание
PrincipledMaterial.Default Тест не применяется, эффективное значение альфа передаётся как есть. Обратите внимание, что значение альфа baseColor или baseColorMap меньше 1.0, не подразумевает автоматического альфа-смешивания; объект с материалом может всё ещё обрабатываться как непрозрачный, если другие соответствующие свойства (например, непрозрачность меньше 1, наличие карты непрозрачности или отличное от значения по умолчанию blendMode) не вызывают обработки объекта как полупрозрачного. Чтобы гарантировать альфа-смешивание независимо от других свойств объекта или материала, установите Blend.
PrincipledMaterial.Blend Тест обрезки не применяется, но гарантирует, что альфа-смешивание произойдёт. Объект с этим материалом никогда не будет обрабатываться рендерером как непрозрачный.
PrincipledMaterial.Opaque Тест обрезки не применяется, и рендерный объект предполагается полностью непрозрачным, что означает, что значения альфа в цвете вершины, базовом цвете и карте базового цвета игнорируются, а вместо них используется значение 1,0. Этот режим не гарантирует, что альфа-смешивание не происходит. Если соответствующие свойства (например, непрозрачность меньше 1, карта непрозрачности или отличное от значения по умолчанию blendMode) указывают на это, то объект всё равно будет обрабатываться рендерной трубой как полупрозрачный, подобно режиму альфа Default.
PrincipledMaterial.Mask Применяется тест, основанный на alphaCutoff. Если эффективное значение альфа становится меньше alphaCutoff, фрагмент изменяется на полностью прозрачный и отбрасывается (со всеми последствиями отбрасывания: буфер глубины не записывается для этого фрагмента). В противном случае значение альфа изменяется на 1,0, так что фрагмент станет полностью непрозрачным. Что касается альфа-смешивания, поведение этого режима идентично Opaque, независимо от результата теста обрезки. Это означает, что замечания по реализации альфа-покрытия glTF 2 соблюдаются. Объекты с тестами альфа-обрезки также могут отбрасывать тени, так как они по умолчанию ведут себя как непрозрачные объекты, если не указано иное соответствующими свойствами (например, непрозрачность меньше 1, карта непрозрачности или отличное от значения по умолчанию blendMode) (в противном случае отбрасывание теней будет невозможно).

См. также alphaCutoff и blendMode.

baseColor : color

Это свойство задаёт базовый цвет для материала. В зависимости от типа заданного материала (металл или диэлектрик) диффузные и глянцевые каналы будут установлены соответствующим образом. Например, у диэлектрического материала диффузный цвет будет равен базовому цвету, а его глянцевый цвет в зависимости от количества глянца будет иметь яркий глянцевый цвет. Для металлов диффузные и глянцевые каналы будут смешаны из базового цвета и будут иметь тёмный диффузный канал и глянцевый канал, близкий к базовому цвету.

См. также baseColorMap и alphaMode.

baseColorMap : Texture

Это свойство определяет текстуру, используемую для задания базового цвета материала.

См. также baseColor и alphaMode.

blendMode : перечисление

Это свойство определяет, как смешиваются цвета модели, отображаемые поверх других.

Постоянная Описание
PrincipledMaterial.SourceOver Режим смешивания по умолчанию. Непрозрачные объекты перекрывают объекты, расположенные за ними. Этот режим по умолчанию не гарантирует альфа-смешивания в рендерной трубе для моделей, использующих этот материал, а скорее делает решение зависящим от ряда факторов: если полная непрозрачность объекта и материала равна 1.0, в материале нет карты непрозрачности, и alphaMode не установлен в значение, которое принудительно включает альфа-смешивание, то модель обрабатывается как непрозрачная, то есть она отображается с включённой проверкой глубины и записью глубины вместе с другими непрозрачными объектами, без включения смешивания. В противном случае модель обрабатывается как полупрозрачная и отображается после непрозрачных объектов вместе с другими полупрозрачными объектами в порядке от дальних к ближним на основе расстояния центра объекта от камеры с включённым альфа-смешиванием.
PrincipledMaterial.Screen Цвета смешиваются с помощью инвертированного умножения, что даёт более светлый результат. Этот режим смешивания не зависит от порядка; если вы используете полупрозрачные объекты и наблюдаете «подёргивание» при изменении сортировки граней или моделей, использование смешивания Screen — один из способов получить результат без подёргивания.
PrincipledMaterial.Multiply Цвета смешиваются с помощью умножения, что даёт более тёмный результат. Этот режим смешивания также не зависит от порядка.

См. также alphaMode и Архитектура Qt Quick 3D.

emissiveFactor : vector3d

Это свойство определяет цвет самоизлучения для данного материала. Если установлена карта излучения, компоненты x, y и z используются как множители для каналов R, G и B текстуры соответственно. Значение по умолчанию (0, 0, 0), что означает отсутствие излучения.

Примечание: Установка lightingMode в DefaultMaterial.NoLighting означает, что emissive Factor не влияет на сцену.

emissiveMap : Texture

Это свойство устанавливает RGB-текстуру, используемую для задания интенсивности цвета излучения.

heightAmount : real

Это свойство содержит множитель, используемый для изменения значений из текстуры heightMap. Значение должно быть в диапазоне от 0,0 до 1,0. Значение по умолчанию 0,0, что означает отключение смещения по высоте, даже если установлена карта высот.

heightChannel : перечисление

Это свойство определяет канал текстуры, используемый для чтения значения высоты из heightMap. Значение по умолчанию — Material.R.

Постоянная Описание
Material.R Чтение значения из канала R текстуры.
Material.G Чтение значения из канала G текстуры.
Material.B Чтение значения из канала B текстуры.
Material.A Чтение значения из канала A текстуры.

heightMap : Texture

Это свойство определяет текстуру, используемую для определения высоты смещения текстуры при рендеринге с помощью Parallax Mapping. Ожидается, что значения будут линейными от 0,0 до 1,0, где 0,0 означает отсутствие смещения, а 1,0 — максимальное смещение.

lighting : перечисление

Это свойство определяет метод освещения, используемый при генерации данного материала.

Значение по умолчанию — PrincipledMaterial.FragmentLighting.

При использовании PrincipledMaterial.FragmentLighting, диффузное и зеркальное освещение вычисляется для каждого рендерного пикселя. Некоторые эффекты (например, Fresnel или карта нормалей) требуют PrincipledMaterial.FragmentLighting для работы.

При использовании PrincipledMaterial.NoLighting вычисление освещения не выполняется. Этот режим (предсказуемо) очень быстрый и эффективен при использовании карт изображений, которые не нужно затенять освещением. Все остальные свойства затенения, кроме baseColor, значений альфа и цветов вершин, будут проигнорированы.

Постоянная Значение
PrincipledMaterial.NoLighting
PrincipledMaterial.FragmentLighting

lineWidth : real

Это свойство определяет ширину линий, отображаемых, когда геометрия использует тип примитива линии или линии-ломаные. Значение по умолчанию 1,0. Это свойство неактуально при рендеринге другой геометрии, такой как, например, треугольные сетки.

Предупреждение: Ширина линий, отличная от 1, может не поддерживаться во время выполнения, в зависимости от используемого графического API. В таких случаях запрос на изменение ширины игнорируется. Например, ни один из следующих методов не может поддерживать широкие линии: Direct3D, Metal, OpenGL с контекстами профиля Core.

maxHeightMapSamples : int

Это свойство определяет максимальное количество образцов, используемых для выполнения Parallex Occlusion Mapping с помощью heightMap. Значение maxHeightMapSamples — это количество образцов heightMap, используемых при взгляде параллельно поверхности. Значение по умолчанию 32.

END_OF_DOCUMENT_MARKER

Фактическое количество образцов, используемых для каждого фрагмента, будет находиться между minHeightMapSamples и maxHeightMapSamples в зависимости от угла камеры относительно поверхности, которая отрисовывается.

Примечание: Это значение следует изменять только для тонкой настройки материалов, использующих heightMap, в случае наличия нежелательных артефактов.

metalness : real

Свойство metalness определяет металличность материала. Значение нормализовано, где 0.0 означает, что материал является диэлектрическим (неметаллическим), а значение 1.0 означает, что материал является металлом.

Примечание: По сути, материалы являются либо диэлектриками с металличностью 0, либо металлами с металличностью 1. Значения металличности между 0 и 1 все еще разрешены и дадут материал, который является смесью различных моделей.

Диапазон значений: [0.0, 1.0]. Значение по умолчанию равно 0.

metalnessChannel : enumeration

Это свойство определяет канал текстуры, используемый для чтения значения металличности из metalnessMap. Значение по умолчанию — Material.B.

Константа Описание
Material.R Чтение значения из канала R текстуры.
Material.G Чтение значения из канала G текстуры.
Material.B Чтение значения из канала B текстуры.
Material.A Чтение значения из канала A текстуры.

metalnessMap : Texture

Это свойство устанавливает текстуру, которая используется для задания степени металличности для разных частей материала.

minHeightMapSamples : int

Это свойство определяет минимальное количество образцов, используемых для выполнения Parallex Occlusion Mapping с использованием heightMap. Значение minHeightMapSamples — это количество образцов heightMap, используемых при прямом просмотре поверхности (когда вид камеры перпендикулярен фрагменту). Значение по умолчанию — 8.

Фактическое количество образцов, используемых для каждого фрагмента, будет находиться между minHeightMapSamples и maxHeightMapSamples в зависимости от угла камеры относительно поверхности, которая отрисовывается.

Примечание: Это значение следует изменять только для тонкой настройки материалов, использующих heightMap, в случае наличия нежелательных артефактов.

normalMap : Texture

Это свойство определяет RGB-изображение, используемое для моделирования смещения мелкой геометрии по поверхности материала. Каналы RGB указывают отклонения нормали по осям XYZ.

Примечание: Нормальные карты не повлияют на контур модели.

normalStrength : real

Это свойство управляет степенью моделируемого смещения для normalMap.

occlusionAmount : real

Это свойство содержит множитель, используемый для изменения значений из текстуры occlusionMap. Значение должно быть в диапазоне от 0.0 до 1.0. Значение по умолчанию — 1.0.

occlusionChannel : enumeration

Это свойство определяет канал текстуры, используемый для чтения значения затенения из occlusionMap. Значение по умолчанию — Material.R.

Константа Описание
Material.R Чтение значения из канала R текстуры.
Material.G Чтение значения из канала G текстуры.
Material.B Чтение значения из канала B текстуры.
Material.A Чтение значения из канала A текстуры.

occlusionMap : Texture

Это свойство определяет текстуру, используемую для определения того, сколько непрямого света должны получать разные области материала. Ожидается, что значения будут линейными от 0.0 до 1.0, где 0.0 означает отсутствие непрямого освещения, а 1.0 означает, что эффект непрямого освещения остается без изменений.

См. также occlusionAmount.

opacity : real

Это свойство снижает непрозрачность только этого материала, независимо от модели.

opacityChannel : enumeration

Это свойство определяет канал текстуры, используемый для чтения значения непрозрачности из opacityMap. Значение по умолчанию — Material.A.

Константа Описание
Material.R Чтение значения из канала R текстуры.
Material.G Чтение значения из канала G текстуры.
Material.B Чтение значения из канала B текстуры.
Material.A Чтение значения из канала A текстуры.

opacityMap : Texture

Это свойство определяет текстуру, используемую для управления непрозрачностью по-разному для разных частей материала.

pointSize : real

Это свойство определяет размер точек, которые отрисовываются, когда геометрия использует тип примитива — точки. Значение по умолчанию — 1.0. Это свойство не имеет значения при отрисовке других типов геометрии, например, треугольных мешей.

Предупреждение: Возможна неподдержка размеров точек, отличных от 1, во время выполнения в зависимости от используемого графического API. Например, установка размера, отличного от 1, не влияет на Direct 3D.

roughness : real

Это свойство управляет размером блика, генерируемого источниками света, и четкостью отражений в целом. Большие значения увеличивают шероховатость, смягчая блики и размывая отражения. Диапазон значений: [0.0, 1.0]. Значение по умолчанию — 0.

roughnessChannel : enumeration

Это свойство определяет канал текстуры, используемый для чтения значения шероховатости из roughnessMap. Значение по умолчанию — Material.G.

Константа Описание
Material.R Чтение значения из канала R текстуры.
Material.G Чтение значения из канала G текстуры.
Material.B Чтение значения из канала B текстуры.
Material.A Чтение значения из канала A текстуры.

roughnessMap : Texture

Это свойство определяет текстуру, которая управляет шероховатостью материала.

specularAmount : real

Это свойство управляет интенсивностью глянцевости (бликов и отражений).

Диапазон значений: [0.0, 1.0]. Значение по умолчанию — 0.5.

Примечание: Для недиэлектриков (металлов) это свойство не имеет эффекта.

Примечание: Это свойство не влияет на specularReflectionMap, но влияет на количество отражений от SceneEnvironment::lightProbe сцены.

Примечание: Если ваша модель не имеет высокой детализации, вам может потребоваться использовать PrincipledMaterial.FragmentLighting для получения хороших бликов от источников света сцены.

specularMap : Texture

Свойство определяет RGB-текстуру, которая модулирует величину и цвет глянцевости по поверхности материала. Эти значения умножаются на specularAmount.

Примечание: Карта глянцевости будет игнорироваться, если материал не является диэлектриком.

specularReflectionMap : Texture

Это свойство устанавливает текстуру, используемую для получения бликов на материале.

Это обычно используется для выполнения отображения окружающей среды: по мере вращения модели карта будет выглядеть так, как будто она отражается от окружающей среды. Для того, чтобы это работало должным образом, необходимо установить mappingMode текстуры в Texture.Environment. Карты отражения с эффектом бликов — это простой способ добавить качественный вид с относительно низкой стоимостью.

Примечание: Связывание зондирования света со SceneEnvironment и, следовательно, использование освещения на основе изображения, может достичь аналогичных эффектов отражения окружающей среды. Однако зондирование света — это концептуально другой, и с точки зрения производительности, потенциально более дорогой подход. Каждый подход имеет свои собственные специфические применения, и выбор того или иного нужно определять в каждом конкретном случае. Когда речь идёт о текстуре, заданной свойству, specularReflectionMap имеет преимущество, потому что не имеет ограничений и поддерживает все типы текстур, включая те, которые получают данные из подсцены Qt Quick через sourceItem.

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

См. также Texture::mappingMode.

specularTint : real

Это свойство определяет, сколько базового цвета участвует в отражении бликов.

Примечание: Это свойство применяется только к диэлектрическим материалам.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick3d-principledmaterial.html

Spec-Zone.ru

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