이 페이지에서

Qt Quick OpenVG 적용

OpenVG 적용 버전은 Qt Quick 2를 위한 대체 렌더러로, OpenVG 명령을 사용하여 씬 그래프의 내용을 렌더링함으로써 하드웨어 가속 2D 벡터 및 래스터 그래픽을 제공합니다. 소프트웨어 어댑테이션과 마찬가지로, 일부 기능과 최적화 기능은 더 이상 사용할 수 없습니다. 대부분의 Qt Quick 2 애플리케이션은 수정 없이 실행되지만, 지원되지 않는 기능을 사용하려는 시도는 무시됩니다.

EGL 요구 사항

기본 OpenGL 렌더러와 달리, OpenVG 컨텍스트를 획득하기 위한 내장 지원은 없습니다. 즉, 현재 컨텍스트를 요청하고 관리하는 것은 렌더러의 책임입니다. 이를 위해 OpenVG 렌더러에서 EGL을 직접 사용해야 합니다. 따라서 OpenVG 렌더러는 QSurfaceFormat::OpenVG 을 지원하는 QWindows 생성을 지원하는 플랫폼 플러그인과 함께만 사용할 수 있습니다. 이 창을 통해 렌더러는 EGLSurface를 획득할 수 있으며, 이를 EGLContext와 함께 사용하여 OpenVG 콘텐츠를 렌더링할 수 있습니다.

렌더러

OpenVG 렌더러는 OpenVG API를 사용하여 벡터 GPU로 명령과 데이터를 전송하며, 이 GPU는 장면 그래프를 가속화된 방식으로 렌더링하여 CPU의 그래픽 렌더링 부하를 덜어줍니다. 직사각형이나 글꼴 글리프의 렌더링과 같은 많은 작업은 획을 그리고 채우는 경로로 표현될 수 있으므로 OpenVG에 이상적입니다. 일반적으로 텍스처가 포함되는 씬 그래프 항목의 렌더링은 OpenVG 렌더러에서 VGImage를 사용하여 처리됩니다. 또한, 오프스크린 서피스(레이어와 같은)로 렌더링할 때, 씬 서브트리는 VGImage로 렌더링되며, 이는 씬 내에서 재사용될 수 있습니다.

렌더 루프

OpenVG 렌더러는 Basic 렌더 루프의 동작을 반영하며, 모든 OpenVG 명령을 단일 스레드에서 실행합니다.

렌더 루프에 대한 자세한 내용은 Qt Quick Scene Graph를 참조하십시오.

셰이더 효과

ShaderEffect QtQuick 2의 컴포넌트는 OpenVG 어댑테이션을 통해 렌더링할 수 없습니다. 및 QML Item Layers(둘 다 오프스크린 표면임)를 사용할 수는 있지만, 항목을 통해 이들에 셰이더 효과를 적용하는 것은 불가능합니다. 이는 OpenVG에 버텍스별 및 프래그먼트별 셰이더 연산을 적용할 수 있는 API가 없기 때문입니다. 그러나 OpenVG API의 이미지 필터(Image Filter) 연산을 활용하면, 사용자 정의 항목에서 ShaderEffects가 제공하는 것과 유사한 효과를 얻을 수 있습니다. 사용자 정의 OpenVG 렌더링을 통합하려면 와 를 함께 사용하십시오. ShaderEffectSource ShaderEffect QSGRenderNode QSGRendererInterface

입자 효과

OpenVG 적용 버전에서는 파티클 이펙트를 렌더링할 수 없습니다. 가능한 경우, 씬에서 파티클을 완전히 제거하십시오. 그렇지 않으면 파티클이 보이지 않더라도 여전히 일부 처리가 필요하게 됩니다.

텍스트 렌더링

OpenVG 어댑테이션을 사용한 텍스트 렌더링은 글리프 경로를 렌더링하는 방식을 기반으로 하며, OpenGL 백엔드와 달리 거리 필드 기법을 사용하지 않습니다.

원근 변환

OpenVG API에서는 비아핀 변환을 사용하여 경로를 변환할 수 없지만, ` Qt Quick`를 사용하면 가능합니다. 따라서 원근 변환을 적용하면서 Rectangles나 Text와 같은 경로를 사용하는 컴포넌트를 렌더링할 때, OpenVG 백엔드는 변환을 적용하기 전에 먼저 VGImage로 렌더링합니다. 이러한 동작은 런타임에 더 많은 메모리를 사용하고 시간이 더 오래 걸리므로, 가능하면 피해야 합니다.

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