토르 벡터 그래픽스
보이기
| 파일:Thorvg-logo.svg | |
| 원저자 | 박춘언 (Hermet Park) |
|---|---|
| 발표일 | 2021년 5월 |
| 안정화 버전 | 0.15
/ 2024년 10월 |
| 저장소 | github.com/thorvg/thorvg |
| 프로그래밍 언어 | C++ |
| 엔진 | |
| 운영 체제 | 크로스 플랫폼 |
| 크기 | 150kb (최소 크기) |
| 종류 | 렌더링 엔진 |
| 라이선스 | MIT 허가서 |
| 웹사이트 | www.thorvg.org |
토르 벡터 그래픽스(Thor Vector Graphics) 또는 토르VG(ThorVG)는 오픈 소스 라이브러리 (컴퓨팅)로 SVG와 로티 같은 벡터 그래픽스 기반의 모션 그래픽스와 애니메이션을 구현하는 기능을 제공한다. 호환성과 이식성을 고려하여 다양한 종류의 컴퓨팅 플랫폼과 응용 소프트웨어에서 사용할 수 있다.
ThorVG는 웹어셈블리 기술을 활용해 웹 플랫폼에서 그래픽 출력을 지원하며, CPU 뿐만 아니라 OpenGL, WebGL, 웹GPU와 같은 다양한 그래픽스 출력 장치를 통해 하드웨어 가속을 지원한다.
기능 특징
- 장면 그래프 및 경로 렌더링: ThorVG는 두 가지 주요 렌더링 기능을 지원. 장면 그래프는 사용자가 계층 구조의 그릴 수 있는 객체들을 생성하고 조작할 수 있게 해주며, 경로 기반 인터페이스는 벡터 도형과 경로를 직접 그릴 수 있도록 한다.
- 변환(Transformations): 그래픽 객체에 대해 평행 이동, 스케일링, 회전 등의 아핀 변환을 지원
- 색상 그라디언트: 더욱 표현력 있는 시각 디자인을 위해 선형 및 방사형 그라디언트를 지원
- 안티 앨리어싱: 렌더링된 출력에서 시각적 노이즈를 줄이기 위한 부드럽게 처리하는 기술을 포함
- 멀티스레드 및 비동기 렌더링: 렌더링 작업을 여러 스레드에 걸쳐 스케줄링할 수 있어, 멀티코어 시스템에서 성능 향상
- 부분 렌더링: 장면 내에서 프레임 간 변경된 영역만을 추적하여 해당 부분만 다시 그리는 기능을 제공
- 렌더 백엔드 추상화: 소프트웨어, OpenGL, WebGL, WebGPU 지원
- 포맷 지원: SVG, LOT, PNG, JPEG, WebP, TTF, TVG (ThorVG 전용 포맷)
로티 애니메이션 지원
ThorVG는 Bodymovin 플러그인을 통해 어도비 애프터 이펙트에서 내보낸 JSON 기반 애니메이션 포맷인 Lottie(파일 형식) 애니메이션 렌더링 기능을 포함하고 있다.[1] 이 라이브러리는 임베디드 장치와 같이 시스템 자원이 제한된 환경을 포함하여, 사용자 인터페이스에 벡터 기반 애니메이션을 통합할 수 있도록 설계되었다.
호환 시스템
ThorVG 적용 소프트웨어
- Canva iOS
- dotlottie Player
- Flux[5]
- GodSVG[6]
- LottieCreator
- Paragraphic[7]
- SEGGER emWin[8]
- TinyPiXOS
- Vagabond
- 고도 (게임 엔진)[9]
주요 역사
- 2020년 - ThorVG는 박춘언 (Hermet Park)에 의해 처음 개발되었으며, 초기 형태로 공개되었다.
- 2021년 - 삼성전자의 기여와 함께 초기 버전이 완성되었고 타이젠 플랫폼에 통합되었다.[10] 같은 해, 고도 (게임 엔진)는 벡터 에셋 출력을 위해 ThorVG를 통합했다.[9]
- 2022년 - ThorVG의 정식 로고가 확립되었다.
- 2023년 - LottieFiles가 개발에 참여하며 로티 (파일 형식) 포맷 지원이 추가되었다. 또한, LVGL 프레임워크는 UI 구성 요소의 벡터 렌더링을 위해 ThorVG를 통합하였다.[11]
- 2024년 - WebGL과 웹GPU 렌더 백엔드가 추가되었다.[12] dotlottie 프로젝트는 ThorVG를 코어 엔진으로 채택하였으며[13] LottieFiles는 ThorVG 공식 후원사로 참여하였다.[14]
- 2025년 - Lottie Creator 프로젝트가 벡터 그래픽 출력 엔진으로 ThorVG를 도입하였다. ESP-IoT-Solution에서 ThorVG를 공식 컴포넌트로 도입하였다.[15] 같은 해, 블렌더 (소프트웨어) 커뮤니티의 구성원들은 Blender의 렌더링 인프라 내에서 ThorVG를 활용할 가능성에 대해 논의하였다.[16]
반응
ThorVG는 경량 설계와 크로스 플랫폼 렌더링 역량을 특징으로 오픈 소스 및 임베디드 그래픽 커뮤니티에서 논의되어 왔다. 개발자 포럼과 공학 전문 매체를 중심으로 한 독립적인 기술적 논의와 평가가 이루어졌으며, 제3의 엔지니어링 팀이 작성한 기사들도 소개되었다.[17][18]
릴리즈 정보
- ThorVG v0.1: May 1, 2021[19]
- ThorVG v0.2: Jun 5, 2021[20]
- ThorVG v0.3: Jul 3, 2021[21]
- ThorVG v0.4: Aug 9, 2021[22]
- ThorVG v0.5: Sep 24, 2021[23]
- ThorVG v0.6: Nov 3, 2021[24]
- ThorVG v0.7: Dec 23, 2021[25]
- ThorVG v0.8: Mar 8, 2022[26]
- ThorVG v0.9: May 9, 2023[27]
- ThorVG v0.10: Jul 31, 2023[28]
- ThorVG v0.11: Sep 28, 2023[29]
- ThorVG v0.12: Jan 4, 2024[30]
- ThorVG v0.13: Apr 9, 2024[31]
- ThorVG v0.14: Jun 27, 2024[32]
- ThorVG v0.15: Oct 6, 2024[33]
같이 보기
외부 링크
- 토르 벡터 그래픽스 - 공식 웹사이트
- ThorVG 깃허브
- ThorVG: 차세대 모션 그래픽을 위한 범용 벡터 그래픽 엔진 전략 (2021)
- 그래픽 엔진 포팅 사례로 배우는 웹어셈블리 웹 컴포넌트 개발부터 디버깅, 최적화까지 (2024)
- Universal Motion Graphics across All Platforms: Unleashing Creativity with ThorVG (2025)
각주
- ↑ “Implementations” (영어). 2025년 12월 21일에 확인함.
- ↑ “espressif/thorvg • v0.13.8 • ESP Component Registry” (영어). 2025년 12월 21일에 확인함.
- ↑ “thorvg — LVGL documentation”. 2025년 12월 21일에 확인함.
- ↑ “@thorvg/lottie-player” (영어). 2025년 3월 28일. 2025년 4월 2일에 확인함.
- ↑ “Syrah - Credits”. 2024년 7월 1일에 확인함.
- ↑ “New prerelease: GodSVG 1.0-alpha3” (영어). 2025년 12월 21일에 확인함.
- ↑ “Version 1.0.2 released – Paragraphic” (미국 영어). 2025년 3월 6일. 2025년 3월 31일에 확인함.
- ↑ “emWin User Guide & Reference Manual”. 《doc.segger.com》. 2025년 12월 20일에 확인함.
- ↑ 가 나 “Importing images” (영어). 2025년 12월 21일에 확인함.
- ↑ “Tizen 6.5 Public M1”. 2025년 4월 21일에 확인함.
- ↑ kisvegabor (2023년 11월 21일). “v9 schedule, ESP32-S3-BOX-3, and a cool project” (영어). 2025년 4월 21일에 확인함.
- ↑ “The Best of WebGPU of February 2024” (영어). 2024년 9월 7일에 확인함.
- ↑ DotLottie Player – A New Universal Lottie Player Built with Rust
- ↑ “ThorVG - Open Collective”. 2025년 10월 30일. 2025년 10월 31일에 확인함.
- ↑ “GUI Optimization Solutions - - — ESP-IoT-Solution latest documentation”. 2025년 11월 7일에 확인함.
- ↑ “Library Proposal: ThorVG”. 《projects.blender.org》. 2025년 12월 20일에 확인함.
- ↑ “ThorVG: Super Lightweight Vector Graphics Engine”. 《Hacker News》. 2025년 12월 20일에 확인함.
- ↑ lakfar (2025년 9월 5일). “Lottie в интерфейсах: как мы оживляем 2ГИС с помощью анимаций” (러시아어). 2025년 12월 21일에 확인함.
- ↑ “Release ThorVG v0.1.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.2.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.3.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.4.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.5.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.6.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.7.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.8.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.9.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.10.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.11.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 12월 8일에 확인함.
- ↑ “Release ThorVG v0.12.0 · thorvg/thorvg” (영어). 《GitHub》. 2023년 4월 9일에 확인함.
- ↑ “Release ThorVG 0.13.0 · thorvg/thorvg” (영어). 2024년 4월 9일에 확인함.
- ↑ “Release ThorVG v0.14.0 · thorvg/thorvg” (영어). 2024년 6월 28일에 확인함.
- ↑ “Release ThorVG v0.15 · thorvg/thorvg” (영어). 2024년 10월 6일에 확인함.
분류:
- 스크립트 오류가 있는 문서
- CS1 - 영어 인용 (en)
- CS1 - 미국 영어 인용 (en)
- CS1 - 러시아어 인용 (ru)
- 잘못된 파일 링크가 포함된 문서
- 위키데이터에 없는 공식 웹사이트
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- MIT 라이선스 소프트웨어
- 공개 소프트웨어
- 그래픽 라이브러리
- 벡터 그래픽스