ThorVG 1.0

ThorVG 1.0 ThorVG 1.0 ThorVG 1.0

31. januarja, po poldrugem letu neprekinjenega razvoja, je izšla različica 1.0 lahke in prenosne večplatformne knjižnice za vektorsko grafiko ThorVG, namenjene vizualizaciji vektorskih prizorov in animacij. Podpira nalaganje datotek v formatih Lottie in SVG Tiny 1.2 (seznam реализованных возможностей SVG Tiny v Wiki projekta).

Knjižnica nudi prijazne API-je za uvoz, ustvarjanje in prikazovanje vektorske grafike ter za njeno izvoz v različne grafične formate, kar jo naredi vsestransko za uporabo v različnih programski platformi in aplikacijah za vizualizacijo grafičnih vsebin. Poleg tega so na voljo konzolne utilite lottie2gif in svg2png.

ThorVG se uporablja za ohranjanje vektorske grafike v takih projektih, kot so Tizen OS, Godot Engine, LVGL in predvajalnikov dotLottie.

Projekt je napisan v jeziku C++ (standard C++14) in se distribuira pod licenco MIT.

To ni le posodobitev — to je prenovljena osnova za visoko zmogljivo, razširljivo in prenosljivo dvodimenzionalno vektorsko grafiko na vseh platformah in napravah. Med razvojem je ThorVG prešel v zrel grafični motor, pripravljen za proizvodnjo, ki je pokazal preizkušeno kakovost in zmogljivost v realnih aplikacijah.

ThorVG je hitro pridobil priljubljenost in sprožil naraščajoče zanimanje skupnosti, kar odraža njegovo evolucijo od zgodnje faze projekta do široko priznane in praktično uporabljene vektorske grafične enote, pripravljene za resnično večplatformno uporabo.

Seznam sprememb:

  • Razširjene možnosti upodabljanja besedila, bogati vizualni učinki in podpora natančnemu prekrivanju za izboljšano grafično izražanje
    • Podpora horizontalnemu in vertikalnemu poravnanju, kar omogoča natančno obvladovanje postavitve besedila v različnih kontekstih uporabniškega vmesnika.
    • Samodejno prelomitev vrstic z možnostjo izbire načina: po znakih, po besedah, inteligentna prelomitev in obrezovanje z več pikami za obravnavo prenosa.
    • Podpora ročni prelomitvi vrstic, kar omogoča razvijalcem, da izrecno nadzorujejo prelome vrstic s pomočjo znakov nove vrstice, kot je \n. To omogoča natančno oblikovanje večvrstičnih besedilnih blokov, zlasti v dinamičnih postavitvah ali tekstovnih animacijah.
    • Podpora nastavljive razdalje med znaki omogoča natančno prilagajanje za izboljšanje berljivosti ali dosego določenih tipografskih slogov.
    • Podpora za obrobo besedila omogoča ustvarjanje stilskih učinkov in izboljšanje kontrasta na različnih ozadjih (screenshot 1).
    • Predstavljena je bolj kompleksna in usklajena sistem načinov prekrivanja, ki znatno izboljšuje delovanje načinov prekrivanja ter usklajuje formule in logiko kompozicije z industrijskimi standardi, kot sta Lottie, SVG in specifikacija W3C „Compositing and Blending“. Te izboljšave zagotavljajo večjo vizualno usklajenost in medplatformno združljivost, zlasti v spletnih in animacijskih delovnih tokovih.
    • Implementirani in podprti so naslednji načini prekrivanja: „Odtenek“, „Nasičenost“, „Barva“ in „Svetlost“ z uporabo kompozicije barvnega prostora HSL. Ti načini izboljšujejo združljivost z učinki plasti Lottie in prihodnjo podporo za mešanje SVG (screenshot 2).
    • Znatna izboljšanja in razširitve v vizualnih učinkih na ravni scene, zaradi česar postane vektorska grafika bolj izrazita in vizualno bogata:
      • Učinek sence z Gaussovim zamegljevanjem (video demonstracija).
      • Metode zamenjave barv, ki spreminjajo videz grafike s preklicem načina uporabe, mešanja ali usklajevanja barv na podlagi odtenka (video demonstracija).
    • Dodane so nove pomožne funkcije za širitev interaktivnih možnosti. Te vključujejo podporo za poizvedbe prostorskih informacij (demonstracija) in zaznavanje zadetkov na prikazanih objektih (video demonstracija).
  • Napredne možnosti animacije Lottie za medplatformno predvajanje, vključno z moduliranimi prednastavitvami Web Player, optimiziranimi glede na velikost, zmogljivost in način upodabljanja (CPU/GPU)
    • Znatne izboljšave v podpori animacije Lottie s povečano združljivostjo, prilagodljivostjo in interaktivnostjo na vseh platformah. Razširjen je ne samo spekter podprtih funkcij in izrazov Lottie, temveč so na voljo tudi orodja za razvijalce, ki omogočajo dinamično nadziranje obnašanja animacije med izvajanjem, kar ThorVG postavlja med najmočnejše knjižnice za predvajanje Lottie na voljo na trgu. Seznam realiziranih možnosti v Wiki projekta.
    • Trenutno je razširitev datoteke .lot nov uradni standard IANA za Lottie datoteke. ThorVG zdaj uradno podpira .lot kot standardno obliko Lottie datotek poleg tradicionalne razširitve .json.
    • Twining
      • Dodana je podpora za interpolacijo med nelinearno povezanimi ključnimi kadri, kar omogoča bolj gladke prehode in bolj natančno upravljanje časa. Ta izboljšava je še posebej učinkovita pri reproduciranju animacij temelječih na stanju (znanih tudi kot reproduciranje temelječe na označevalnikih) v Lottie. V mnogih primerih so animacije zasnovane za prehajanje med stanji kompleksno, nelinearno. Tradicionalna Lottie s svojo strogo zaporedno časovno strukturo težko obvladuje takšne scenarije, kar pogosto vodi do nenadnih prekinitev ali nerodnih skokov pri prehodu med nepovezanimi ključnimi kadri: video-prikaz 1, video-prikaz 2.
      • Z uporabo twininga zdaj lahko razvijalci izvajajo interpolacijo neposredno med dvema posameznima ključnima kadroma, tudi če nista linearno povezana na časovni osi. To omogoča dosego bolj naravnih in gladkih vizualnih učinkov pri prehodih med stanji, kar izjemno povečuje fleksibilnost in realistično doživljanje interaktivnih animacij: video-prikaz 1, video-prikaz 2.
    • Sedaj (kot eksperimentalna funkcija) podpira prepisovanje vrednosti spremenljivk izrazov med izvajanjem, kar omogoča dinamično izvajanje logike skripte na podlagi uporabniškega vnosa. To ga naredi za posebej močno orodje za ustvarjanje interaktivnih animacij z uporabo virov Lottie, kar omogoča ustvarjanje individualnih variacij, ki presegajo izvirno zasnovo (video demonstracija).
    • Dodana je prilagodljiva mehanizem Asset Resolver, ki zagotavlja večjo fleksibilnost pri nalaganju zunanjih virov (na primer slik), na katere se sklicujejo animacije Lottie.
    • Razširjena podpora za funkcijo Lottie LayerEffect, ki omogoča bogate vizualne izboljšave neposredno na plasteh animacije z učinki, opisanimi zgoraj.
    • Ker se nekateri učinki lahko izkažejo za potratne na virih, je bila predlagana možnost nastavitve kakovosti in zmogljivosti za upodabljanje učinkov, kar je idealno za optimizacijo na platformah z omejenimi CPU viri. To razvijalcem omogoča nadzor nad natančnostjo upodabljanja in optimizacijo zmogljivosti glede na želeno platformo.
    • Podpora izrazom je bila razširjena z dodajanjem naslednjih ključnih funkcij in lastnosti:
      • wiggle, temporalWiggle: uporaba naključnega gibanja, odvisnega od časa.
      • pointOnPath: izračun položaja vzdolž poti.
      • propertyIndex, groupIndex: sklic na indeks lastnosti ali skupine.
      • value, property, effect: dostop do vrednosti lastnosti in zunanjih učinkov.
    • Boljše usklajevanje s specifikacijami:
      • TextFollowPath – nova specifikacija, ki omogoča besedilu, da sledi poljubnim vektorskim potezam (video demonstracija).
      • Možnosti poravnave besedila – bolj natančna predstavitev besedilnih plasti na podlagi nastavitev njihove horizontalne in vertikalne poravnave (video demonstracija).
      • Razširitev maske – nova funkcija, ki omogoča natančnejše nadzorovanje vpliva oblike maske na vizualno kompozicijo (video demonstracija).
  • SVG
    • ThorVG zdaj omogoča dostop do posameznih elementov SVG in njihovo spreminjanje z edinstvenimi id atributi, določenimi v izvorni datoteki SVG. Ta funkcija razvijalcem omogoča neposredno izbiro in manipulacijo specifičnih vektorskih oblik v uvoženi SVG sceni, kar je idealno za interaktivne ali dinamične scenarije uporabe (na primer, tematske nastavitve, označevanje).
    • Podpora učinek zameglitve po Gaussu.
  • Inteligentno upodabljanje
    • Programska platforma ThorVG zdaj podpira pametno delno upodabljanje, ki zagotavlja bolj učinkovite delovne tokove upodabljanja s posodobitvijo le tistih delov vektorske scene, ki so se spremenili. Z notranjim sledenjem spremenjenim območjem minimalizira nepotrebne ponovne risbe in optimizira splošno zmogljivost. Ta funkcija prinaša pomembne prednosti v scenarijih, kot so upodabljanje uporabniških vmesnikov, orodij za načrtovanje ali aplikacijah, kjer večina scene ostaja statična, medtem ko se med okviri osvežujejo le majhni elementi. V takih primerih opustitev popolnega upodabljanja scene lahko znatno zmanjša računsko obremenitev in poveča energetsko učinkovitost, kar je še posebej dragoceno za mobilne in vgrajene sisteme.
    • Za dosego tega cilja ThorVG 1.0 uporablja kombinacijo algoritmičnih metod, posebej zasnovanih za delno upodabljanje. Spodaj so glavne strategije, ki ležijo v ozadju tega sistema:
      • Algoritem linearnega prehoda: oblike so razvrščene po x koordinatah, in uporabljena je strategija linearnega prehoda za zmanjšanje nepotrebnih preverjanj „umazanih“ območij. To zmanjša zapletenost z O(N × M) na O(N + M + K + N log N), kjer je N število oblik, M število „umazanih“ območij, K pa število dejanskih prekrivanj.
      • Delitev in pogojno združevanje: finozrnata delitev podobmočij je uravnotežena s pametnim združevanjem, da se izogne fragmentaciji. Pri tem ima prednost horizontalno združevanje za bolj učinkovito uporabo predpomnilnika.
      • Prostorska delitev (privzeto mreža 4×4): površina za upodabljanje je razdeljena na 16 območij, kar omogoča preverjanje le ustreznih „umazanih“ območij oblik, kar znatno zmanjšuje stroške pri zapletenih posodobitvah uporabniškega vmesnika.
    • Skupaj te tehnike zagotavljajo bolj gladko in hitro upodabljanje, zlasti v vgrajenih sistemih ali sistemih v realnem času, kjer pogosto prihaja do delnih posodobitev. Podrobnejše informacije bodo objavljene v posebnem prispevku. blog.
    • Upoštevajte, da v primeru visoko dinamične vsebine, kot so dinamične igre ali animacije v celozaslonskem načinu, kjer se skoraj vsi predmeti spreminjajo v vsakem okviru, delno upodabljanje prinaša malo ali nič prednosti glede zmogljivosti in lahko celo poveča obremenitev. V takšnih primerih je običajno bolje izbrati popolno upodabljanje scene. Zaradi tega ThorVG podpira tako delno kot popolno konfiguracijo upodabljanja, kar vam omogoča, da izberete optimalen pristop za vašo uporabo. Možete analizirati zmogljivost vašega izdelka in sprejeti utemeljeno odločitev z uporabo možnosti Meson -Dpartial=[true/false] in opcije EngineOption::Smart razreda SwCanvas:

    auto canvas = SwCanvas::gen(EngineOption::Smart);

  • Nova doba integracije spletnih tehnologij z WebGL, WebGPU in poenostavljenim WebCanvasom za brezšivno upodabljanje v brskalniku
    • Backend WebGL in WebGPU sta zdaj uradno pripravljena za produkcijsko uporabo. Ti GPU-škodljivi upodabljalniki zdaj ponujajo polno funkcionalno združljivost s tradicionalnim CPU-backendom, podpirajo vse funkcionalnosti ThorVG Canvas z enako kakovostjo in stabilnostjo slike. V primerjavi z različico 0.15 se je zmogljivost GPU- -upodabljanja povečala za več kot 150 %, kar zagotavlja pomembno izboljšanje upodabljanja spletne vektorske grafike v realnem času.
  • Pomembno povečanje zmogljivosti v okoljih z omejitvami CPU/GPU in vgrajenih okoljih
    • ThorVG 1.0 ponuja izboljšano zmogljivost v primerjavi z različico 0.15, z opaznim povečanjem tako pri CPU kot pri GPU.
    • Ključne optimizacije:
      • Izboljšana učinkovitost upodabljalne cevi.
      • Zmanjšani stroški dodeljevanja okvirnega predpomnilnika.
      • Optimizirana analiza Lottie kompozicij.
      • Izboljšano pakirano upodabljanje in predpomnjenje GPU.
    • ThorVG je optimiziran za rasterizacijo na osnovi CPU, s poudarkom na vektorski vizualizaciji v okoljih, kjer so GPU usmeritve omejene, nedostopne ali namerno ne uporabljene. V tipičnih testih CPU ThorVG povprečno dosega 1,8-krat večjo zmogljivost v primerjavi z dobro znanim vektorskim grafičnim motorjem Skia pri izvajanju tipičnih nalog vektorske vizualizacije. Prednost je še posebej očitna v scenarijih z intenzivno uporabo geometrije, kot so vizualizacije pravokotnikov, črt, rotacij in krogov (screenshot 3).
  • ThorVG Janitor
    • Pravo prikazovanje zmogljivosti renderiranja ThorVG lahko vidite v projektu ThorVG Janitor – interaktivni igri, razviti za prikaz zmogljivosti procesorja pri visoki grafični obremenitvi. Scena vključuje na stotine nasprotnikov, ustvarjenih s plastmi grafike na osnovi delcev, večplastne ozadja z zvezdnatim nebom s polno velikostjo rastrskih slik, vizualne učinke v realnem času, kot sta DropShadow in Blur, ter do 25000 objektov, ki se renderirajo hkrati. Tudi pri vrhuncu obremenitve z ločljivostjo 2K (2048×1152) projekt pokaže stabilno zmogljivost nad 120 FPS, kar poudarja učinkovitost in primernost ThorVG za zahtevna okolja z mnogimi učinki (video demonstracija, screenshot).
  • Druge pomembne spremembe
    • Primer integracije ThorVG v Godot. U teh video prikazovanj ThorVG je integriran z Godot v spletno okolje za renderiranje stotin objektov Lottie animacij s hitrostjo nad 120 sličic na sekundo. Ta prikaz prikazuje potencial ThorVG v spletnem okolju za gladko in visoko kakovostno animacijo med izvajanjem.
    • Dodano učni primer uporabe ThorVG WebCanvas.
    • Dodana interaktivna ThorVG Playground.
    • Dodana je bila ovitka ThorVG za programski jezik Swift: https://github.com/thorvg/thorvg.swift.
    • Primeri uporabe ThorVG so bili preneseni v ločeno skladišče https://github.com/thorvg/thorvg.example.
    • Objavljeno je bilo razširitev thorvg.vscode za VSCode za ustvarjanje, urejanje in predogled virov ThorVG neposredno v okolju Visual Studio Code.
    • V različici 1.0 je bila izvedena pomembna prestrukturacija API, usmerjena k izboljšanju zmogljivosti, uporabnosti, doslednosti in združljivosti s C.
    • Podpora za format TVG Picture (TVG) je bila odstranjena. To odločitev smo sprejeli za pripravo novega formata ThorVG Picture, ki je bil razvit z mislijo na animacijo kot osnovno koncept.
    • Številne odprave napak in izboljšave stabilnosti za proizvodno uporabo.

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster