Qt3DAnimation::QVertexBlendAnimation Class
class Qt3DAnimation::QVertexBlendAnimation一个实现顶点混合变形动画的类。更多内容...
| 头文件: | #include <qvertexblendanimation.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3danimation) target_link_libraries(mytarget PRIVATE Qt6::3danimation) |
| qmake: | QT += 3danimation |
| 在 QML 中: | VertexBlendAnimation |
| 继承自: | Qt3DAnimation::QAbstractAnimation |
| 状态: | 技术预览 |
该类处于技术预览阶段,内容可能会有变动。
属性
- interpolator : float
- target : Qt3DRender::QGeometryRenderer*
- targetName : QString
- targetPositions : QList<float>
公共函数
| QVertexBlendAnimation(QObject *parent = nullptr) | |
| void | addMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| float | interpolator() const |
| QList<Qt3DAnimation::QMorphTarget *> | morphTargetList() |
| void | removeMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| void | setMorphTargets(const QList<Qt3DAnimation::QMorphTarget *> &targets) |
| Qt3DRender::QGeometryRenderer * | target() const |
| QString | targetName() const |
| QList<float> | targetPositions() const |
公共槽位
| void | setTarget(Qt3DRender::QGeometryRenderer *target) |
| void | setTargetName(const QString name) |
| void | setTargetPositions(const QList<float> &targetPositions) |
信号
| void | interpolatorChanged(float interpolator) |
| void | targetChanged(Qt3DRender::QGeometryRenderer *target) |
| void | targetNameChanged(const QString &name) |
| void | targetPositionsChanged(const QList<float> &targetPositions) |
详细说明
Qt3DAnimation::QVertexBlendAnimation 类实现了一种将顶点混合变形动画应用到目标QGeometryRenderer 上的功能。QVertexBlendAnimation会将morph targets 中的正确QAttributes 设置到目标QGeometryRenderer::geometry 中,并计算当前位置的插值器。与QMorphingAnimation 不同——后者通过混合权重控制混合效果——此处的混合发生在连续的变形目标之间。 属性之间的实际混合必须在材质中实现。Qt3DAnimation::QMorphPhongMaterial 实现了一种支持 Phong 光照模型形态变换的材质。混合发生在两个属性之间——“base”和“target”。 “base”和“target”属性的名称取自形态目标的名称,其中“base”属性保留其原有名称,“target”属性的名称则在原名后附加“Target”。插值器可设置为所用材质的QParameter 。动画中的所有形态目标都应包含与基础几何体中名称相同的属性。
属性文档
[read-only] interpolator : float
存储基属性与目标属性之间的插值器。
访问函数:
| float | interpolator() const |
通知信号:
| void | interpolatorChanged(float interpolator) |
target : Qt3DRender::QGeometryRenderer*
保存要应用变形动画的目标 QGeometryRenderer。
访问函数:
| Qt3DRender::QGeometryRenderer * | target() const |
| void | setTarget(Qt3DRender::QGeometryRenderer *target) |
通知器信号:
| void | targetChanged(Qt3DRender::QGeometryRenderer *target) |
targetName : QString
存储目标几何体的名称。这是一个便捷属性,便于将目标几何体与变形动画进行匹配。该名称通常与目标 QGeometryRenderer 的父实体名称相同,但并非必须如此。
访问函数:
| QString | targetName() const |
| void | setTargetName(const QString name) |
通知器信号:
| void | targetNameChanged(const QString &name) |
targetPositions : QList<float>
存储变形目标的位置值。列表中的每个位置都指定了具有相同索引的对应变形目标的位置。这些值必须按升序排列。值可以是正数或负数,且没有预定义的单位。
访问函数:
| QList<float> | targetPositions() const |
| void | setTargetPositions(const QList<float> &targetPositions) |
通知器信号:
| void | targetPositionsChanged(const QList<float> &targetPositions) |
成员函数文档
[explicit] QVertexBlendAnimation::QVertexBlendAnimation(QObject *parent = nullptr)
使用parent 创建一个新的QVertexBlendAnimation。
void QVertexBlendAnimation::addMorphTarget(Qt3DAnimation::QMorphTarget *target)
在动画结尾处添加新的变形target 。
QList<Qt3DAnimation::QMorphTarget *> QVertexBlendAnimation::morphTargetList()
返回形态目标列表。
void QVertexBlendAnimation::removeMorphTarget(Qt3DAnimation::QMorphTarget *target)
从动画中删除变形“target ”。
void QVertexBlendAnimation::setMorphTargets(const QList<Qt3DAnimation::QMorphTarget *> &targets)
将“targets ”的形态设置为“动画”。旧的目标将被清除。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.