Þann 31. janúar, eftir eitt og hálft ár af samfelldri þróun, var útgáfa 1.0 af léttum og flytjanlegum vektorgrafíkbókasafni sem virkar á mörgum kerfum gefin út. ThorVG, hannað til að sjá vektormyndir og hreyfimyndir. Skrár í eftirfarandi sniðum eru studdar. Lottie и SVG Tiny 1.2 (Listi yfir innleidda SVG Tiny eiginleika er aðgengilegur á Wiki verkefnisins.).
Bókasafnið veitir þægileg API til að flytja inn, búa til og birta vektorgrafík, sem og að flytja hana út í ýmis grafísk snið, sem gerir það alhliða nothæft fyrir ýmsa hugbúnaðarvettvanga og forrit til að sjá grafískt efni. Skipanalínuforritin lottie2gif og svg2png eru einnig innifalin.
ThorVG er notað til að birta vektorgrafík í verkefnum eins og Tizen OS, Godot vél, LVGL og leikmenn punkturLottie.
Verkefnið er skrifað í C++ (C++14 staðallinn) og er dreift undir MIT leyfinu.
Þetta er ekki bara uppfærsla - þetta er endurbyggður grunnur fyrir afkastamikla, stigstærða og flytjanlega 2D vektorgrafík á öllum kerfum og tækjum. Í þróunarferlinu hefur ThorVG þróast í þroskaða, framleiðsluhæfa grafíkvél sem sýnir fram á sannaða gæði og afköst í raunverulegum forritum.
ThorVG hefur hratt notið vinsælda og vakið vaxandi áhuga samfélagsins, sem endurspeglar þróun þess frá verkefni á frumstigi yfir í víða viðurkennda og mikið notaða vektorgrafíkvél sem er tilbúin til raunverulegrar notkunar á mörgum kerfum.
Listi yfir breytingar:
- Ítarleg textaframleiðsla, rík sjónræn áhrif og nákvæmur stuðningur við yfirlagningu fyrir betri grafíska tjáningu.
- Stuðningur við lárétta og lóðrétta röðun gerir kleift að stjórna nákvæmri staðsetningu texta í ýmsum samhengjum við notendaviðmóts.
- Sjálfvirk línuskipting með möguleika á að velja stillingu: eftir stöfum, eftir orðum, snjallri skipting og styttingu á þrípunktum til að meðhöndla yfirflæði.
- Stuðningur við handvirk línuskil gerir forriturum kleift að stjórna línuskilum með því að nota línustöfur eins og \n. Þetta gerir kleift að sniða textablokkir með mörgum línum nákvæmt, sérstaklega í breytilegum uppsetningum eða textahreyfimyndum.
- Stuðningur við stillanlegt bil á milli stafa, sem gerir kleift að fínstilla til að bæta lesanleika eða ná fram tilteknum leturstílum.
- Stuðningur við textaútlínur gerir þér kleift að búa til stílfræðileg áhrif og bæta birtuskil á mismunandi bakgrunni (skjámynd 1).
- Ítarlegra og samræmdara blöndunarstillingarkerfi hefur verið kynnt til sögunnar, sem bætir verulega hegðun blöndunarstillinga og samræmir formúlur og samsetningarrökfræði við iðnaðarstaðla eins og Lottie, SVG og W3C Compositing and Blending forskriftina. Þessar úrbætur veita meiri sjónræna samræmi og samhæfni milli kerfa, sérstaklega í vef- og hreyfimyndavinnuflæði.
- Eftirfarandi blöndunarstillingar eru innleiddar og studdar: Litbrigði (Hue), Mettun (Saturation), Litur (Color) og Ljósstyrkur (Light), með því að nota HSL litrýmissamsetningu. Þessir stillingar bæta samhæfni við Lottie lagáhrif og framtíðar SVG blöndunarstuðning (screenshot 2).
- Mikilvægar úrbætur og útvíkkanir á sjónrænum áhrifum á sviðsstigi, sem gerir vektorgrafík meira tjáningarfull og sjónrænt ríkari:
- Skuggaáhrif með Gaussískri óskýrleikasíu (myndbandssýning).
- Litaskiptatækni sem breytir útliti grafíkar með því að endurskilgreina hvernig litir eru notaðir, blandaðir saman eða paraðir saman út frá litbrigðum (myndbandssýning).
- Nýjar hjálparaðgerðir hafa verið bættar við til að auka gagnvirkni. Þar á meðal er stuðningur við fyrirspurnir um landfræðilegar upplýsingar (sýnikennsla) og högggreining á sýndum hlutum (myndbandssýning).
- Auknar Lottie hreyfimyndamöguleikar fyrir spilun á mörgum kerfum, þar á meðal mátbundnar forstillingar fyrir Web Player sem eru fínstilltar fyrir stærð, afköst og flutningsstillingu (CPU/GPU)
- Mikilvægar úrbætur á stuðningi við Lottie hreyfimyndir bæta eindrægni, sveigjanleika og gagnvirkni á öllum kerfum. Ekki aðeins hefur úrvalið af studdum Lottie aðgerðum og segðum verið aukið, heldur hafa forritunartól verið veitt til að stjórna hegðun hreyfimynda á virkan hátt við keyrslu, sem gerir ThorVG að einu öflugasta Lottie spilunarbókasafninu sem völ er á. Listi yfir innleidda eiginleika er aðgengilegur á Wiki verkefnisins..
- Frá og með deginum í dag er .lot skráarendingin nýi opinberi IANA staðallinn fyrir Lottie skrár. ThorVG styður nú opinberlega .lot sem staðlað Lottie skráarsnið, auk hefðbundnu .json skráarendingarinnar.
- Tvíning
- Stuðningur við innsetningu milli ólínulega aðliggjandi lykilramma hefur verið bætt við, sem gerir mýkri umskipti og nákvæmari tímastjórnun mögulega. Þessi framför er sérstaklega áhrifarík þegar hún er notuð með ástandsbundinni hreyfimyndaspilun (einnig þekkt sem marker-byggð spilun) í Lottie. Í mörgum tilfellum eru hreyfimyndir hannaðar til að skipta á milli ástanda á flókinn, ólínulegan hátt. Hefðbundið Lottie, með stranglega röð af tímasetningu, á erfitt með að takast á við slíkar aðstæður, sem leiðir oft til skyndilegra lækkuna eða óþægilegra stökka þegar skipt er á milli óraðbundinna lykilramma: myndbandssýning 1, myndbandssýning 2.
- Með millifærslu geta forritarar nú sett beint inn á milli tveggja lykilramma, jafnvel þótt þeir séu ekki línulega aðliggjandi á tímalínunni. Þetta gerir kleift að fá náttúrulegri og mýkri sjónræn áhrif við stöðuskipti, sem eykur verulega sveigjanleika og raunsæi gagnvirkra hreyfimynda: myndbandssýning 1, myndbandssýning 2.
- Nú (sem tilraunaeiginleiki) er stutt við endurskrifun á keyrslubreytum, sem gerir kleift að framkvæma forskriftarrökfræði á kraftmikinn hátt út frá innslætti notanda. Þetta gerir það að sérstaklega öflugu tóli til að búa til gagnvirkar hreyfimyndir með Lottie-eignum, sem gerir kleift að sérsníða breytingar sem fara út fyrir upprunalegu hönnunina.myndbandssýning).
- Sérsniðnum Asset Resolver hefur verið bætt við, sem veitir meiri sveigjanleika við að hlaða inn utanaðkomandi eignum (eins og myndum) sem Lottie hreyfimyndir vísa til.
- Aukinn stuðningur við Lottie LayerEffect, sem gerir þér kleift að beita ríkum sjónrænum úrbótum beint á hreyfimyndalög með þeim áhrifum sem lýst er hér að ofan.
- Þar sem sum áhrif geta verið auðlindafrek er möguleiki á að stilla gæði og afköst áhrifaútgáfu, sem er tilvalið fyrir fínstillingu á kerfum með takmarkaða örgjörva. Þetta gerir forriturum kleift að stjórna nákvæmni útgáfu og fínstilla afköst eftir því hvaða kerfi er notað.
- Stuðningur við tjáningar hefur verið aukinn með viðbót eftirfarandi lykilvirkni og eiginleika:
- wiggle, temporalWiggle: Beita tilviljunarkenndri hreyfingu byggðri á tíma.
- pointOnPath: Reiknar út staðsetningu meðfram leið.
- propertyIndex, groupIndex: Tilvísun í vísitölu eiginleika eða hóps.
- gildi, eign, áhrif: aðgangur að eignargildum og ytri áhrifum.
- Nákvæmari samræmi við forskriftir:
- TextFollowPath er ný forskrift sem gerir texta kleift að fylgja handahófskenndum vektorslóðum (myndbandssýning).
- Valkostir fyrir textajöfnun – Nákvæmari birting textalaga út frá láréttri og lóðréttri jöfnunarstillingu þeirra (myndbandssýning).
- Útvíkkun grímu er nýr eiginleiki sem gerir þér kleift að stjórna nákvæmar hvernig lögun grímu hefur áhrif á sjónræna samsetningu þína (myndbandssýning).
- SVG
- ThorVG gerir þér nú kleift að fá aðgang að og breyta einstökum SVG-þáttum með því að nota einstök auðkenniseiginleika sem skilgreindir eru í SVG frumskránni. Þessi eiginleiki gerir forriturum kleift að velja og vinna beint með tilteknar vektorform í innfluttum SVG-senum, sem er tilvalið fyrir gagnvirkar eða kraftmiklar notkunartilvik (t.d. þemu, auðkenningu).
- Stuðningur Gaussísk óskýrleikaáhrif.
- Snjöll flutningur
- Hugbúnaðarvélin ThorVG styður nú snjalla hlutaútgáfu, sem gerir kleift að vinna skilvirkari með útgáfu með því að uppfæra aðeins þá hluta vigursenunnar sem hafa breyst. Með því að rekja breytt svæði innbyrðis er óþarfa endurteikning lágmarkuð og heildarafköst hámarkað. Þessi eiginleiki veitir verulegan ávinning í aðstæðum eins og notendaviðmótsútgáfu, hönnunartólum eða forritum þar sem megnið af senunni helst kyrrstætt og aðeins litlir þættir eru uppfærðir á milli ramma. Í slíkum tilfellum getur það að forðast fulla útgáfu senu dregið verulega úr reikniaflinu og bætt orkunýtni, sem er sérstaklega mikilvægt fyrir farsíma- og innbyggð kerfi.
- Til að ná þessu markmiði notar ThorVG 1.0 blöndu af reikniritaaðferðum sem eru sérstaklega hannaðar fyrir hlutaútgáfu. Lykilatriðin sem liggja að baki þessu kerfi eru eftirfarandi:
- Línuleg slóðaralgrím: Formin eru flokkuð eftir x-hnitum og línuleg slóðaraðferð er notuð til að draga úr óþarfa athugunum á óhreinum svæðum. Þetta dregur úr flækjustiginu frá O(N × M) í O(N + M + K + N log N), þar sem N er fjöldi forma, M er fjöldi óhreinna svæða og K er fjöldi raunverulegra skörunar.
- Skipting og skilyrt sameining: Fínkornaskipting undirsvæða er jöfnuð með snjöllum sameiningum til að forðast sundrungu. Lárétt sameining er forgangsraðað til að nýta skyndiminnið betur.
- Rýmisskipting (sjálfgefið 4x4 rist): Myndunarflöturinn er skipt í 16 svæði, sem gerir aðeins kleift að athuga samsvarandi „óhreinu“ svæði formanna, sem dregur verulega úr álagi við flóknar uppfærslur á notendaviðmóti.
- Í samvinnu veita þessar aðferðir mýkri og hraðari birtingu, sérstaklega í innbyggðum kerfum eða rauntímakerfum þar sem hlutauppfærslur eru tíðar. Nánari upplýsingar verða birtar í sérstakri færslu. bloggfærsla.
- Vinsamlegast athugið að fyrir mjög kraftmikið efni, eins og hraðskreiða leiki eða hreyfimyndir í fullum skjá þar sem nánast allir hlutir breytast í hverjum ramma, veitir hlutaútgáfa lítinn eða engan ávinning af afköstum og getur jafnvel valdið smávægilegum kostnaði. Í slíkum tilfellum er heildarútgáfa af senum yfirleitt betri kostur. Þess vegna styður ThorVG bæði hluta- og heildarútgáfustillingar, sem gerir þér kleift að velja bestu aðferðina fyrir þitt notkunartilvik. Þú getur greint afköst vörunnar og tekið upplýsta ákvörðun með því að nota Meson -Dpartial=[true/false] valkostinn og EngineOption::Smart valkostinn í SwCanvas klasanum:
sjálfvirkt strigi = SwCanvas::gen(Vélvalkostur::Smart);
- Ný öld vefsamþættingar með WebGL, WebGPU og léttvægu WebCanvas fyrir óaðfinnanlega birtingu í vafranum.
- WebGL og WebGPU bakendi eru nú opinberlega tilbúin til framleiðslu. Þessir GPU-byggðu teiknarar bjóða nú upp á fulla samvirkni við hefðbundna örgjörvabakendi og styðja alla eiginleika ThorVG Canvas með sömu myndgæðum og stöðugleika. Í samanburði við útgáfu 0.15 hefur GPU-teiknunarafköst aukist um meira en 150%, sem skilar verulegri framför í rauntíma vefvefgrafík.
- Mikilvægar afköstabætur í örgjörva-/grafíkutakmörkuðum og innbyggðum umhverfum
- ThorVG 1.0 býður upp á betri afköst en útgáfa 0.15, með umtalsverðum framförum bæði fyrir örgjörva og skjákort.
- Lykilhagræðingar:
- Bætt skilvirkni flutningsleiðslu.
- Minnkuð úthlutunarkostnaður rammabuffers.
- Bjartsýnileg Lottie samsetningargreining.
- Bætt hópútgáfa og skyndiminni fyrir GPU.
- ThorVG er fínstillt fyrir örgjörva-byggða rastermyndun, með áherslu á vektormyndun í umhverfum þar sem GPU-auðlindir eru takmarkaðar, ófáanlegar eða vísvitandi vannýttar. Í dæmigerðum örgjörvaprófum sýnir ThorVG að meðaltali 1.8 sinnum hraðari afköst en Skia vektorgrafíkvélin sem er mikið notuð þegar kemur að dæmigerðum vektormyndunarverkefnum. Þessi kostur er sérstaklega áberandi í rúmfræði-frekum aðstæðum eins og að mynda rétthyrninga, strok, snúninga og hringi (skjámynd 3).
- ThorVG húsvörður
- Raunveruleg sýnikennsla á flutningsgetu ThorVG má sjá í verkefninu. ThorVG húsvörður – gagnvirkur leikur hannaður til að sýna fram á afköst örgjörvans undir miklu grafíkálagi. Senan inniheldur hundruð óvina sem búnir eru til með örgjörvagrafík, marglaga stjörnubjörtum bakgrunni með fullri stærð af bitmapum, rauntíma sjónrænum áhrifum eins og DropShadow og Blur, og allt að 25000 hlutum sem birtast samtímis. Jafnvel við hámarksálag í 2K upplausn (2048×1152) sýnir verkefnið stöðuga afköst yfir 120 FPS, sem undirstrikar skilvirkni ThorVG og hentugleika fyrir flókin og áhrifamikil umhverfi.myndbandssýning, skjáskot).
- Aðrar mikilvægar breytingar
- Dæmi um samþættingu ThorVG í Godot. Í þetta myndbandssýningarmyndband ThorVG er samþætt Godot í vefumhverfi til að birta hundruð Lottie hreyfimyndahluta á yfir 120 römmum á sekúndu. Þessi sýnikennsla sýnir fram á möguleika ThorVG í vefumhverfi fyrir mjúkar, hágæða hreyfimyndir í keyrslu.
- Bætt við kennsludæmi Með því að nota ThorVG WebCanvas.
- Bætt við gagnvirku Leikvöllur ThorVG.
- Bætti við ThorVG umbúðum fyrir Swift: https://github.com/thorvg/thorvg.swift.
- Notkunardæmi ThorVG hafa verið færð í sérstakt gagnasafn https://github.com/thorvg/thorvg.example.
- Viðbót birt thorvg.vscode fyrir VSCode til að búa til, breyta og forskoða ThorVG auðlindir beint innan Visual Studio Code.
- Útgáfa 1.0 inniheldur verulega endurskipulagningu á API sem miðar að því að bæta afköst, notagildi, samræmi og samhæfni við C.
- Stuðningur við TVG Picture (TVG) sniðið hefur verið fjarlægður. Þessi ákvörðun var tekin til að undirbúa nýja ThorVG Picture sniðið, sem er hannað með hreyfimyndir sem kjarnahugmynd.
- Fjölmargar villuleiðréttingar og stöðugleikabætur fyrir framleiðslunotkun.
Heimild: linux.org.ru
