Spec-Zone.ru › Qt 6.1

Класс QQuick3DInstancing

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

Заголовок: #include <QQuick3DInstancing>
С момента: Qt 6.1
Инициализируется: Экземпляризация
Наследует: QQuick3DObject

Этот класс находится в стадии разработки и может быть изменен.

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

Свойства

  • hasTransparency : bool
  • instanceCountOverride : int

Открытые функции

bool hasTransparency() const
int instanceCountOverride() const

Открытые слоты

void setHasTransparency(bool hasTransparency)
void setInstanceCountOverride(int instanceCountOverride)

Сигналы

void hasTransparencyChanged()
void instanceCountOverrideChanged()

Защищенные функции

(preliminary) virtual QByteArray getInstanceBuffer(int *instanceCount) = 0

Статические защищенные члены

(preliminary) QQuick3DInstancing::InstanceTableEntry calculateTableEntry(const QVector3D &position, const QVector3D &scale, const QVector3D &eulerRotation, const QColor &color, const QVector4D &customData = {})
(preliminary) QQuick3DInstancing::InstanceTableEntry calculateTableEntryFromQuaternion(const QVector3D &position, const QVector3D &scale, const QQuaternion &rotation, const QColor &color, const QVector4D &customData = {})

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

Класс QQuick3DInstancing может быть унаследован для указания настраиваемой таблицы экземпляров для модели в сцене Qt Quick 3D.

Этот класс является абстрактным: для его использования создайте подкласс и реализуйте getInstanceBuffer().

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

hasTransparency : bool

Установите это свойство в значение true, если таблица экземпляров содержит значения альфа, которые должны использоваться при отрисовке модели. Это свойство имеет значение только если модель непрозрачна: если модель имеет прозрачный материал или значение непрозрачности меньше единицы, значение альфа из таблицы будет использоваться независимо.

Примечание: Включение смешивания альфа-каналов может вызвать проблемы с отрисовкой при перекрытии экземпляров. См. документацию по смешиванию альфа-каналов и экземпляризации для получения подробностей.

Функции доступа:

bool hasTransparency() const
void setHasTransparency(bool hasTransparency)

Сигнал уведомления:

void hasTransparencyChanged()

instanceCountOverride : int

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

Функции доступа:

int instanceCountOverride() const
void setInstanceCountOverride(int instanceCountOverride)

Сигнал уведомления:

void instanceCountOverrideChanged()

Документация по функциям-членам

[static protected] QQuick3DInstancing::InstanceTableEntry QQuick3DInstancing::calculateTableEntry(const QVector3D &position, const QVector3D &scale, const QVector3D &eulerRotation, const QColor &color, const QVector4D &customData = {})

Эта функция находится в стадии разработки и может быть изменена.

Преобразует position scale eulerRotation color и customData в формат таблицы экземпляров, ожидаемый стандартными вершинными шейдерами. Типичный шаблон:

QByteArray MyInstanceTable::getInstanceBuffer(int *instanceCount)
{
    QByteArray instanceData;

    ...

    auto entry = calculateTableEntry({xPos, yPos, zPos}, {xScale, yScale, zScale}, {xRot, yRot, zRot}, color, {});
    instanceData.append(reinterpret_cast<const char *>(&entry), sizeof(entry));

См. также calculateTableEntryFromQuaternion.

[static protected] QQuick3DInstancing::InstanceTableEntry QQuick3DInstancing::calculateTableEntryFromQuaternion(const QVector3D &position, const QVector3D &scale, const QQuaternion &rotation, const QColor &color, const QVector4D &customData = {})

Эта функция находится в стадии разработки и может быть изменена.

Преобразует position scale rotation color и customData в формат таблицы экземпляров, ожидаемый стандартными вершинными шейдерами.

Это то же самое, что calculateTableEntry(), за исключением использования кватерниона для задания вращения.

[pure virtual protected] QByteArray QQuick3DInstancing::getInstanceBuffer(int *instanceCount)

Эта функция находится в стадии разработки и может быть изменена.

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

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

Spec-Zone.ru

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