이 페이지에서

UniformAnimator QML Type

UniformAnimator 유형은 ShaderEffect 의 유니폼에 애니메이션을 적용합니다. 더 보기...

Import Statement: import QtQuick
Inherits:

Animator

속성

상세 설명

Animator 유형은 일반적인 애니메이션 유형과 다릅니다. Animator를 사용할 경우, 애니메이션은 렌더 스레드에서 실행될 수 있으며, 애니메이션이 완료되면 속성 값이 끝 지점으로 바로 이동합니다.

유니폼을 정의하는 QML 속성의 값은 애니메이션이 끝난 후에 업데이트됩니다.

다음 코드 조각은 UniformAnimator를 ShaderEffect 항목과 함께 사용하는 방법을 보여줍니다.

ShaderEffect {
    id: shader
    width: 50
    height: 50
    property variant t;
    UniformAnimator {
        target: shader
        uniform: "t"
        from: 0
        to: 1
        duration: 1000
        running: true
    }
    fragmentShader: "qrc:shader.frag.qsb"
}

on 키워드를 사용하여 UniformAnimator를 ShaderEffect 인스턴스의 유니폼에 직접 연결할 수도 있습니다.

ShaderEffect {
    width: 50
    height: 50
    property variant t;
    UniformAnimator on t {
        from: 0
        to: 1
        duration: 1000
    }
    fragmentShader: "qrc:shader.frag.qsb"
}

참고: 비스레드 렌더 루프를 사용하는 경우Animator 유형은 아무런 이점이 없습니다.

참고: 애플리케이션은 메인(GUI) 스레드에서 리소스 소모가 크고 차단되는 작업을 수행하는 동안 애니메이터에 의존하여 애니메이션 콘텐츠를 표시하기보다는, 멀티스레드 및 비동기 원칙에 기반한 설계를 고려하는 것이 좋습니다 . 길고 차단되는 작업 대신, QML에서 WorkerScript 및 asynchronous image loading 를 사용하고, C++에서는 워커 스레드, 병렬 알고리즘, Qt Concurrent, 코루틴을 사용하는 것이 좋습니다. 이를 통해 전체 애플리케이션과 UI가 항상 반응성을 유지할 수 있습니다.

ShaderEffect 및 ShaderEffectSource도 참조하십시오 .

속성 문서

uniform : string

이 속성은 애니메이션을 적용할 유니폼의 이름을 저장합니다.

유니폼의 값은 대상 ShaderEffect 의 속성과 일치해야 하며, 프래그먼트 셰이더나 버텍스 셰이더에서 float 유형의 유니폼이어야 합니다.

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