ThorVG 1.0

ThorVG 1.0 ThorVG 1.0 ThorVG 1.0

31. januarja je bila po letu in pol nenehnega razvoja izdana različica 1.0 lahke in prenosne večplatformske vektorske grafične knjižnice. ThorVG, zasnovan za vizualizacijo vektorskih prizorov in animacij. Podprte so datoteke v naslednjih formatih Lottie и SVG Tiny 1.2 (Seznam implementiranih funkcij SVG Tiny je na voljo na Wiki strani projekta.).

Knjižnica nudi priročni API-ji za uvoz, ustvarjanje in prikazovanje vektorske grafike ter izvoz v različne grafične formate, zaradi česar je univerzalno uporaben za različne programske platforme in aplikacije za vizualizacijo grafične vsebine. Vključena sta tudi pripomočka ukazne vrstice lottie2gif in svg2png.

ThorVG se uporablja za upodabljanje vektorske grafike v projektih, kot so Tizen OS, Godotov motor, LVGL in igralci dotLottie.

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

To ni le posodobitev – gre za obnovljene temelje za visokozmogljivo, skalabilno in prenosno 2D vektorsko grafiko na vseh platformah in napravah. ThorVG se je tekom svojega razvoja razvil v zrel, produkcijsko pripravljen grafični mehanizem, ki je dokazal dokazano kakovost in zmogljivost v resničnih aplikacijah.

ThorVG je hitro pridobil na priljubljenosti in pritegnil vse večje zanimanje skupnosti, kar odraža njegov razvoj od projekta v zgodnji fazi do široko prepoznavnega in široko uporabljenega vektorskega grafičnega mehanizma, pripravljenega za resnično uporabo na več platformah.

Seznam sprememb:

  • Napredne zmogljivosti upodabljanja besedila, bogati vizualni učinki in natančna podpora za prekrivne elemente za izboljšano grafično izražanje
    • Podpora za vodoravno in navpično poravnavo omogoča natančen nadzor nad postavitvijo besedila v različnih kontekstih uporabniškega vmesnika.
    • Samodejno deljenje vrstic z možnostjo izbire načina: po znakih, po besedah, pametno deljenje in obrezovanje s tremi pikami za obravnavo prekoračitve.
    • Podpora za ročne prelome vrstic omogoča razvijalcem, da eksplicitno nadzorujejo prelome vrstic z uporabo znakov za novo vrstico, kot je \n. To omogoča natančno oblikovanje večvrstičnih besedilnih blokov, zlasti v dinamičnih postavitvah ali animacijah besedila.
    • Podpora za nastavljiv razmik med znaki, kar omogoča natančno nastavitev za izboljšanje berljivosti ali doseganje določenih tipografskih slogov.
    • Podpora za obris besedila omogoča ustvarjanje slogovnih učinkov in izboljšanje kontrasta na različnih ozadjih (posnetek zaslona 1).
    • Uveden je bil celovitejši in doslednejši sistem načinov mešanja, ki je znatno izboljšal delovanje načinov mešanja ter uskladil formule in logiko sestavljanja z industrijskimi standardi, kot so Lottie, SVG in specifikacija W3C Compositing and Blending. Te izboljšave zagotavljajo večjo vizualno doslednost in združljivost med platformami, zlasti pri spletnih in animacijskih delovnih procesih.
    • Naslednji načini mešanja so implementirani in podprti: odtenek, nasičenost, barva in svetilnost, z uporabo barvnega prostora HSL. Ti načini izboljšujejo združljivost z učinki plasti Lottie in prihodnjo podporo za mešanje SVG (posnetek zaslona 2).
    • Pomembne izboljšave in razširitve vizualnih učinkov na ravni prizora, zaradi katerih je vektorska grafika bolj izrazna in vizualno bogata:
      • Učinek sence s filtrom Gaussova zameglitev (video demonstracija).
      • Tehnike zamenjave barv, ki spremenijo videz grafike z na novo opredelitvijo načina nanašanja, mešanja ali ujemanja barv glede na barvni odtenek (video demonstracija).
    • Dodane so bile nove pomožne funkcije za izboljšanje interaktivnih zmogljivosti. Te vključujejo podporo za poizvedbe po prostorskih informacijah (demonstracija) in zaznavanje zadetkov na prikazanih objektih (video demonstracija).
  • Izboljšane zmožnosti animacije Lottie za predvajanje na več platformah, vključno z modularnimi prednastavitvami spletnega predvajalnika, optimiziranimi za velikost, zmogljivost in način upodabljanja (CPE/GPU)
    • Pomembne izboljšave podpore za animacije Lottie izboljšujejo združljivost, prilagodljivost in interaktivnost na vseh platformah. Ne le, da je bil razširjen nabor podprtih funkcij in izrazov Lottie, temveč so bila na voljo tudi orodja za razvijalce za dinamično upravljanje vedenja animacije med izvajanjem, zaradi česar je ThorVG ena najmočnejših knjižnic za predvajanje Lottie, ki so na voljo. Seznam implementiranih funkcij je na voljo na Wiki strani projekta..
    • Od danes naprej je končnica datoteke .lot novi uradni standard IANA za datoteke Lottie. ThorVG zdaj uradno podpira .lot kot standardno obliko zapisa datoteke Lottie, poleg tradicionalne končnice .json.
    • Twining
      • Dodana je bila podpora za interpolacijo med nelinearno sosednjimi ključnimi okvirji, kar omogoča bolj gladke prehode in natančnejši nadzor časa. Ta izboljšava je še posebej učinkovita pri uporabi s predvajanjem animacije na podlagi stanj (znano tudi kot predvajanje na podlagi markerjev) v programu Lottie. V mnogih primerih so animacije zasnovane tako, da prehajajo med stanji na kompleksne, nelinearne načine. Tradicionalni program Lottie s svojo strogo zaporedno časovno strukturo se težko spopada s takimi scenariji, kar pogosto povzroči nenadne padce ali nerodne skoke pri prehodu med nezaporednimi ključnimi okvirji: video demonstracija 1, video demonstracija 2.
      • Z medeničnimi animacijami lahko razvijalci zdaj neposredno interpolirajo med dvema posameznima ključnima sličicama, tudi če si na časovnici nista linearno sosednja. To omogoča bolj naravne in gladke vizualne učinke med prehodi stanj, kar znatno poveča prilagodljivost in realizem interaktivnih animacij: video demonstracija 1, video demonstracija 2.
    • Zdaj (kot eksperimentalna funkcija) je podprto prepisovanje spremenljivk izrazov med izvajanjem, kar omogoča dinamično izvajanje logike skripta na podlagi uporabniškega vnosa. Zaradi tega je to še posebej zmogljivo orodje za ustvarjanje interaktivnih animacij z uporabo sredstev Lottie, kar omogoča prilagoditve, ki presegajo prvotno zasnovo.video demonstracija).
    • Dodan je prilagodljiv mehanizem za razreševanje sredstev, ki zagotavlja večjo prilagodljivost pri nalaganju zunanjih sredstev (kot so slike), na katere se sklicujejo animacije Lottie.
    • Razširjena podpora za Lottie LayerEffect, ki omogoča neposredno uporabo bogatih vizualnih izboljšav na animacijskih plasteh z zgoraj opisanimi učinki.
    • Ker so nekateri učinki lahko zahtevni po virih, je na voljo možnost prilagajanja kakovosti in zmogljivosti upodabljanja učinkov, kar je idealno za optimizacijo na platformah z omejeno procesorsko močjo. To razvijalcem omogoča nadzor nad natančnostjo upodabljanja in optimizacijo zmogljivosti glede na ciljno platformo.
    • Podpora za izraze je bila razširjena z dodatkom naslednjih ključnih funkcij in lastnosti:
      • miganje, časovno miganje: Uporabi naključno gibanje glede na čas.
      • pointOnPath: Izračuna položaj vzdolž poti.
      • propertyIndex, groupIndex: Sklic na indeks lastnosti ali skupine.
      • vrednost, lastnost, učinek: dostop do vrednosti lastnosti in zunanjih učinkov.
    • Natančnejša skladnost s specifikacijami:
      • TextFollowPath je nova specifikacija, ki omogoča, da besedilo sledi poljubnim vektorskim potem (video demonstracija).
      • Možnosti poravnave besedila – natančnejši prikaz besedilnih plasti glede na njihove nastavitve vodoravne in navpične poravnave (video demonstracija).
      • Razširitev maske je nova funkcija, ki vam omogoča natančnejši nadzor nad tem, kako oblika maske vpliva na vašo vizualno kompozicijo (video demonstracija).
  • SVG
    • ThorVG vam zdaj omogoča dostop do posameznih elementov SVG in njihovo spreminjanje z uporabo edinstvenih atributov ID, definiranih v izvorni datoteki SVG. Ta funkcija omogoča razvijalcem, da neposredno izberejo in manipulirajo z določenimi vektorskimi oblikami v uvoženi sceni SVG, kar je idealno za interaktivne ali dinamične primere uporabe (npr. temiranje, poudarjanje).
    • Podpora Gaussov učinek zameglitve.
  • Inteligentno upodabljanje
    • Programski mehanizem ThorVG zdaj podpira inteligentno delno upodabljanje, ki omogoča učinkovitejše delovne procese upodabljanja s posodabljanjem le tistih delov vektorskega prizora, ki so se spremenili. Z notranjim sledenjem spremenjenih območij zmanjšuje nepotrebno prerisovanje in optimizira splošno zmogljivost. Ta funkcija zagotavlja znatne prednosti v scenarijih, kot so upodabljanje uporabniškega vmesnika, orodja za oblikovanje ali aplikacije, v katerih večina prizora ostane statična in se med okvirji posodabljajo le majhni elementi. V takih primerih lahko izogibanje upodabljanju celotnega prizora znatno zmanjša računalniško obremenitev in izboljš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. Ključne strategije, na katerih temelji ta sistem, so naslednje:
      • Linearni algoritem prehoda: Oblike so razvrščene po koordinatah x in uporabljena je strategija linearnega prehoda za zmanjšanje nepotrebnih preverjanj umazanih območij. To zmanjša kompleksnost z O(N × M) na O(N + M + K + N log N), kjer je N število oblik, M število umazanih območij in K število dejanskih prekrivanj.
      • Razdelitev in pogojno združevanje: drobnozrnata razdelitev podregij je uravnotežena z inteligentnim združevanjem, da se prepreči fragmentacija. Horizontalno združevanje ima prednost za učinkovitejšo uporabo predpomnilnika.
      • Prostorska razdelitev (privzeta mreža 4x4): Površina za upodabljanje je razdeljena na 16 območij, kar omogoča preverjanje le ustreznih »umazanih« območij oblik, kar znatno zmanjša stroške med kompleksnimi posodobitvami uporabniškega vmesnika.
    • Te tehnike skupaj zagotavljajo bolj gladko in hitrejše upodabljanje, zlasti v vgrajenih sistemih ali sistemih v realnem času, kjer so delne posodobitve pogoste. Več podrobnosti bo objavljenih v ločeni objavi. objava v spletnem dnevniku.
    • Upoštevajte, da pri zelo dinamičnih vsebinah, kot so hitre igre ali celozaslonske animacije, kjer se skoraj vsi predmeti spremenijo v vsakem kadru, delno upodabljanje zagotavlja le malo ali nič izboljšanja zmogljivosti in lahko celo povzroči rahlo obremenitev. V takih primerih je upodabljanje celotnega prizora običajno boljša izbira. Zaradi tega ThorVG podpira tako delne kot polne konfiguracije upodabljanja, kar vam omogoča, da izberete optimalen pristop za vaš primer uporabe. Z možnostjo Meson -Dpartial=[true/false] in možnostjo EngineOption::Smart razreda SwCanvas lahko analizirate delovanje svojega izdelka in sprejmete premišljeno odločitev:

    samodejno platno = SwCanvas::gen(MožnostMožnosti::Smart);

  • Nova doba spletne integracije z WebGL, WebGPU in lahkim WebCanvasom za brezhibno upodabljanje v brskalniku
    • Ozadja WebGL in WebGPU so zdaj uradno pripravljena za produkcijsko uporabo. Ta upodabljalnika, ki temeljita na grafičnih procesorjih (GPU), zdaj ponujata popolno interoperabilnost s tradicionalnim ozadjem CPU in podpirata vse funkcije ThorVG Canvas z enako kakovostjo slike in stabilnostjo. V primerjavi z različico 0.15 se je zmogljivost upodabljanja z grafičnim procesorjem (GPU) povečala za več kot 150 %, kar zagotavlja znatno izboljšanje upodabljanja spletne vektorske grafike v realnem času.
  • Pomembne izboljšave zmogljivosti v okoljih z omejeno procesorsko/grafično kartico in vgrajenih okoljih
    • ThorVG 1.0 ponuja izboljšano zmogljivost v primerjavi z različico 0.15, z opaznimi izboljšavami tako za CPU kot za GPU.
    • Ključne optimizacije:
      • Izboljšana učinkovitost cevovoda za upodabljanje.
      • Zmanjšani stroški dodeljevanja medpomnilnika okvirja.
      • Optimizirana analiza sestave Lottie.
      • Izboljšano paketno upodabljanje in predpomnjenje GPU-ja.
    • ThorVG je optimiziran za rastrizacijo na osnovi CPE-ja, s poudarkom na vektorskem upodabljanju v okoljih, kjer so viri GPU-ja omejeni, nedostopni ali namerno premalo izkoriščeni. V tipičnih primerjalnih testih CPE-ja ThorVG kaže povprečno 1.8-krat hitrejšo zmogljivost kot široko uporabljen vektorski grafični mehanizem Skia pri izvajanju tipičnih nalog vektorskega upodabljanja. Ta prednost je še posebej očitna v geometrijsko intenzivnih scenarijih, kot je upodabljanje pravokotnikov, potez, rotacij in krogov (posnetek zaslona 3).
  • ThorVG hišnik
    • V projektu si lahko ogledate demonstracijo delovanja ThorVG pri upodabljanju v resničnem svetu. ThorVG hišnik – interaktivna igra, zasnovana za prikaz zmogljivosti procesorja pod veliko grafično obremenitvijo. Prizor vključuje na stotine sovražnikov, ustvarjenih z grafiko na osnovi delcev, večplastna ozadja zvezdnega neba s polno velikostjo bitnih slik, vizualne učinke v realnem času, kot sta DropShadow in Blur, ter do 25000 objektov, ki se upodabljajo hkrati. Tudi pri največji obremenitvi z ločljivostjo 2K (2048×1152) projekt kaže stabilno zmogljivost nad 120 FPS, kar poudarja učinkovitost in primernost ThorVG za kompleksna okolja z veliko učinki.video demonstracija, posnetek zaslona).
  • Druge pomembne spremembe
    • Primer integracije ThorVG v Godotu. V ta video demonstracija ThorVG je integriran z Godotom v spletnem okolju za upodabljanje stotin animacijskih objektov Lottie s hitrostjo več kot 120 sličic na sekundo. Ta predstavitev prikazuje potencial ThorVG v spletnem okolju za gladko in visokokakovostno animacijo med izvajanjem.
    • Dodano primer poučevanja z uporabo ThorVG WebCanvas.
    • Dodana interaktivnost Igrišče ThorVG.
    • Dodan ovojnik ThorVG za Swift: https://github.com/thorvg/thorvg.swift.
    • Primeri uporabe ThorVG so bili premaknjeni v ločeno skladišče. https://github.com/thorvg/thorvg.example.
    • Razširitev objavljena thorvg.vscode da VSCode lahko ustvarja, ureja in si predogleda vire ThorVG neposredno v Visual Studio Code.
    • Različica 1.0 vključuje pomembno prestrukturiranje API-ja, katerega cilj je izboljšati zmogljivost, uporabnost, doslednost in združljivost s C-jem.
    • Podpora za format TVG Picture (TVG) je bila odstranjena. Ta odločitev je bila sprejeta kot priprava na nov format ThorVG Picture, katerega osrednji koncept je animacija.
    • Številni popravki napak in izboljšave stabilnosti za produkcijsko uporabo.

Vir: linux.org.ru

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