ThorVG 1.0

ThorVG 1.0 ThorVG 1.0 ThorVG 1.0

31. janvārÄ«, pēc pusotra gada nepārtraukta izstrādes, tika izlaista 1.0 viegla un portatÄ«va daudzplatformu vektorgrafikas bibliotēka ThorVG, kas paredzēta vektoru skatu un animāciju vizualizēŔanai. Atbalsta failu ielādi formātu Lottie un SVG Tiny 1.2 (saraksts ar realizētajām iespējām SVG Tiny projektā Wiki).

Bibliotēka nodroÅ”ina ērti API vektorgrafikas importēŔanai, veidoÅ”anai un attēloÅ”anai, kā arÄ« tās eksportēŔanai dažādos grafikas formātos, padarot to universālu lietoÅ”anai dažādās programmatÅ«ras platformās un grafiskā satura vizualizācijas lietojumprogrammās. Tiek piegādātas arÄ« konsoles utilÄ«tas lottie2gif un svg2png.

ThorVG tiek izmantots vektorgrafikas attēloÅ”anai tādos projektos kā Tizen OS, Godot Engine, LVGL un atskaņotājos dotLottie.

Projekts ir uzrakstīts C++ valodā (C++14 standarts) un tiek izplatīts saskaņā ar MIT licenci.

Tas nav tikai atjauninājums — tas ir pārbÅ«vēts pamats augstas veiktspējas, mērogojamas un pārnēsājamas divdimensionālas vektorgrafikas visās platformās un ierÄ«cēs. ThorVG izstrādes laikā ir kļuvis par ievērojamu, pārraudzÄ«tāju grafikas dzinēju, kas demonstrējis pārbaudÄ«tu kvalitāti un veiktspēju reālās lietojumprogrammās.

ThorVG ātri ieguva popularitāti un radÄ«ja pieaugoÅ”u interesi no kopienas, kas atspoguļo tā attÄ«stÄ«bu no agrÄ«nas stadijas projekta lÄ«dz plaÅ”i atzÄ«tam un praktiÄ·u vektorgrafikas dzinējim, kas gatavs reālai multiplatformu lietoÅ”anai.

Izmaiņu saraksts:

  • PaplaÅ”inātas teksta attēloÅ”anas iespējas, bagātÄ«gas vizuālās efektivitātes un precÄ«zas pārklāŔanās atbalsts uzlabotai grafiskai izpausmei
    • Atbalsts horizontālai un vertikālai izlÄ«dzinoÅ”anai, kas ļauj precÄ«zi kontrolēt teksta novietojumu dažādos lietotāja interfeisa kontekstos.
    • Automātiskā rindu pārtraukÅ”ana ar iespēju izvēlēties režīmu: pēc simboliem, pēc vārdiem, intelektÄ«vs pārtraukums un trÄ«spunktu pārtraukÅ”ana, lai apstrādātu pārspriegumu.
    • Atbalsts manuālas jaunu rindu pārvilkÅ”anai, ļaujot izstrādātājiem skaidri kontrolēt rindu pārvilkÅ”anu ar jauno rindu simboliem, piemēram, \n. Tas ļauj precÄ«zi formatēt vairākrindu teksta blokos, Ä«paÅ”i dinamiskos izkārtojumos vai teksta animācijās.
    • Atbalsts pielāgojamam attālumam starp simboliem, kas ļauj precÄ«zi regulēt, lai uzlabotu lasāmÄ«bu vai sasniegtu noteiktus tipogrāfijas stilus.
    • Atbalsts teksta aplietai, ļaujot radÄ«t stilistiskus efektus un uzlabot kontrastu uz dažādiem foniem (skats 1).
    • Ieviesta visaptveroŔāka un saskaņotāka pārklājuma režīmu sistēma, kas bÅ«tiski uzlabo pārklājuma režīmu uzvedÄ«bu un pielāgo formulas un loÄ£iku kompozÄ«cijai atbilstoÅ”i nozares standartiem, piemēram, Lottie, SVG un W3C specifikācijai Ā«Compositing and BlendingĀ». Å ie uzlabojumi nodroÅ”ina lielāku vizuālo saskaņotÄ«bu un daudzplatformu saderÄ«bu, Ä«paÅ”i tÄ«mekļa un animācijas darbplÅ«smās.
    • Realizēti un atbalstÄ«ti Ŕādi pārklājuma režīmi: Ā«ToniĀ», Ā«SaturācijaĀ», Ā«KrāsaĀ» un Ā«Gaismas intensitāteĀ», izmantojot HSL krāsu telpas kompozÄ«ciju. Å ie režīmi uzlabo saderÄ«bu ar Lottie slāņu efektiem un nākotnē atbalsta SVG sajaukÅ”anu (skats 2).
    • NozÄ«mÄ«gi uzlabojumi un paplaÅ”inājumi vizuālajos efektos skatuves lÄ«menÄ«, padarot vektorgrafiku izteiksmÄ«gāku un vizuāli bagātāku:
      • Viegla ēnas efekta daļa ar Gausa izplÅ«des filtru (video demonstrācija).
      • Krāsu nomaiņas metodes, kas maina grafikas izskatu, pārdefinējot krāsu piemēroÅ”anas, sajaukÅ”anas vai saskaņoÅ”anas veidu, pamatojoties uz to toni (video demonstrācija).
    • Pievienotas jaunas palÄ«gfunkcijas, lai paplaÅ”inātu interaktÄ«vo iespēju klāstu. Tiek ietvertas telpiskās informācijas pieprasÄ«jumu atbalsts (demonstrācija) un iespēju noteikÅ”ana, lai noteiktu trāpÄ«jumus uz redzamajiem objektiem (video demonstrācija).
  • PaplaÅ”inātas Lottie animācijas iespējas daudzplatformu atskaņoÅ”anai, tostarp modulāri Web Player iestatÄ«jumi, kas optimizēti izmēra, veiktspējas un renderēŔanas režīma (CPU/GPU) ziņā.
    • BÅ«tiski uzlabojumi Lottie animāciju atbalstā ar saderÄ«bas, elastÄ«bas un interaktivitātes uzlaboÅ”anu visās platformās. PaplaÅ”ināts ne tikai Lottie atbalstÄ«to funkciju un izteiksmju klāsts, bet arÄ« sniegti rÄ«ki izstrādātājiem, kas ļauj dinamiski kontrolēt animācijas uzvedÄ«bu darbÄ«bas laikā, padarot ThorVG par vienu no jaudÄ«gākajām Lottie atskaņoÅ”anas bibliotēkām tirgÅ«. IevieÅ”anas iespēju saraksts Wiki projektā.
    • PaÅ”laik .lot faila paplaÅ”inājums ir jaunais oficiālais IANA standarts Lottie failiem. ThorVG tagad oficiāli atbalsta .lot kā Lottie faila standarta formātu, papildus tradicionālajam .json paplaÅ”inājumam.
    • Twining
      • Papildināts atbalsts interpolācijai starp nelineāri blakus esoÅ”iem atslēgas kadriem, kas nodroÅ”ina vienmērÄ«gākus pārejas efektus un precÄ«zāku laika kontroli. Å is uzlabojums ir Ä«paÅ”i efektÄ«vs, izmantojot animāciju, kas balstÄ«ta uz stāvokļiem (kurai arÄ« ir pazÄ«stams kā marķētu pāreju atskaņoÅ”ana) Lottie. Daudzos gadÄ«jumos animācijas ir paredzētas, lai pārietu starp stāvokļiem sarežģīti, nelineāri. Tradicionālā Lottie ar stingri secÄ«gu laika struktÅ«ru grÅ«ti tiek galā ar Ŕādām situācijām, bieži izraisot straujas atsitienus vai neveiklas lēcienus, pārejot starp nesakārtotiem atslēgas kadriem: video demonstrācija 1, video demonstrācija 2.
      • Izmantojot twining, izstrādātāji tagad var veikt interpolāciju tieÅ”i starp diviem atseviŔķiem atslēgas kadriem, pat ja tie nav lineāri blakus esoÅ”i laika skalā. Tas ļauj sasniegt dabiskākus un plÅ«stoÅ”us vizuālos efektus pārejās starp stāvokļiem, bÅ«tiski palielinot interaktÄ«vo animāciju elastÄ«bu un reālistiskumu: video demonstrācija 1, video demonstrācija 2.
    • Tagad (kā eksperimentāla funkcija) tiek atbalstÄ«ta mainÄ«go izteiksmju vērtÄ«bu pārrakstīŔana darbÄ«bas laikā, ļaujot dinamiski izpildÄ«t skriptu loÄ£iku, pamatojoties uz lietotāja ievadi. Tas padara to par Ä«paÅ”i jaudÄ«gu rÄ«ku interaktÄ«vu animāciju veidoÅ”anai, izmantojot Lottie resursus, ļaujot izveidot individuālas variācijas, kas pārsniedz sākotnējo dizainu.video demonstrācija).
    • Tika pievienots pielāgojams aktÄ«vu risinājuma mehānisms, kas nodroÅ”ina lielāku elastÄ«bu, iekļaujot ārējos resursus (piemēram, attēlus), uz kuriem atsaucas Lottie animācijas.
    • PaplaÅ”ināta Lottie LayerEffect funkcijas atbalsts, kas ļauj veikt bagātÄ«gas vizuālas uzlaboÅ”anas tieÅ”i animācijas slāņos ar iepriekÅ” minētajiem efektiem.
    • Ņemot vērā, ka daži efekti var bÅ«t resursietilpÄ«gi, piedāvāta opcija iestatÄ«t kvalitāti un veiktspēju efektu attēloÅ”anai, kas ir ideāli piemērota optimizācijai platformās ar ierobežotiem CPU resursiem. Tas ļauj izstrādātājiem kontrolēt attēloÅ”anas precizitāti un optimizēt veiktspēju atbilstoÅ”i mērÄ·platformai.
    • Izteikumu atbalsts ir paplaÅ”ināts, pievienojot Ŕādas galvenās funkcijas un Ä«paŔības:
      • wiggle, temporalWiggle: nejauÅ”as kustÄ«bas piemēroÅ”ana, kas ir atkarÄ«ga no laika.
      • pointOnPath: pozÄ«cijas aprēķināŔana gar ceļu.
      • propertyIndex, groupIndex: atsauce uz Ä«paŔības vai grupas indeksu.
      • value, property, effect: piekļuve Ä«paŔību vērtÄ«bām un ārējiem efektiem.
    • PrecÄ«zāka atbilstÄ«ba specifikācijām:
      • TextFollowPath – jauna specifikācija, kas ļauj tekstam sekot patvaļīgiem vektoru ceļiem (video demonstrācija).
      • Teksta izlÄ«dzināŔanas opcijas – precÄ«zāka tekstu slāņu attēloÅ”ana, balstoties uz to horizontālās un vertikālās izlÄ«dzināŔanas iestatÄ«jumiem (video demonstrācija).
      • Maskas paplaÅ”ināŔana – jauna funkcija, kas ļauj precÄ«zāk kontrolēt maskas formas ietekmi uz vizuālo kompozÄ«ciju (video demonstrācija).
  • SVG
    • ThorVG tagad ļauj piekļūt atseviŔķiem SVG elementiem un mainÄ«t tos, izmantojot unikālus id atribÅ«tus, kas definēti sākotnējā SVG failā. Å Ä« funkcija ļauj izstrādātājiem tieÅ”i izvēlēties un manipulēt ar konkrētām vektoru figÅ«rām importētajā SVG ainavā, kas ir ideāli piemērota interaktÄ«viem vai dinamiskajiem izmantoÅ”anas scenārijiem (piemēram, tēmas noformēŔana, izcelÅ”ana).
    • Atbalsts Gausa izplūŔanas efekts.
  • ZināŔanu bāzes attēloÅ”ana
    • ProgrammatÅ«ras dzinējs ThorVG tagad atbalsta intelektuālo daļējo atveidoÅ”anu, kas nodroÅ”ina efektÄ«vāku atveidoÅ”anas darba gaitu, atjauninot tikai tās vektora skatu daļas, kas ir mainÄ«juŔās. Pateicoties iekŔējai mainÄ«to apgabalu izsekoÅ”anai, tas minimizē nevajadzÄ«gas pārzÄ«mēŔanas un optimizē kopējo veiktspēju. Å Ä« funkcija nodroÅ”ina ievērojamas priekÅ”rocÄ«bas tādos scenārijos kā lietotāja interfeisa atveidoÅ”ana, projektēŔanas rÄ«ki vai lietojumprogrammas, kur lielākā daļa ainas paliek statiska, bet starp kadriem tiek atjaunināti tikai nelieli elementi. Šādos gadÄ«jumos atteikÅ”anās no pilnas ainas atveidoÅ”anas var ievērojami samazināt aprēķinu slodzi un palielināt energoefektivitāti, kas ir Ä«paÅ”i vērtÄ«gi mobilajās un iebÅ«vētajās sistēmās.
    • Lai sasniegtu Å”o mērÄ·i, ThorVG 1.0 izmanto algoritmisko metožu kombināciju, kas Ä«paÅ”i izstrādāta daļējai atveidoÅ”anai. Zemāk ir norādÄ«tas galvenās stratēģijas, kas veido Å”o sistēmu:
      • Lineārās izieÅ”anas algoritms: formas tiek sakārtotas pa x koordinātēm, un tiek piemērota lineārās izieÅ”anas stratēģija, lai samazinātu nevajadzÄ«gas "netÄ«ro" apgabalu pārbaudes. Tas samazina sarežģītÄ«bu no O(N Ɨ M) uz O(N + M + K + N log N), kur N ir formu skaits, M ir "netÄ«ro" apgabalu skaits, K ir faktiskā pārklājumu skaita.
      • Sadale un nosacÄ«ta saplūŔana: smalkākā subapgabalu sadale tiek lÄ«dzsvarota ar intelektuālo saplūŔanu, lai novērstu fragmentāciju. Prioritāte tiek pieŔķirta horizontālajai saplūŔanai, lai efektÄ«vāk izmantotu atmiņas keÅ”u.
      • Telpiskā sadale (pēc noklusējuma 4Ɨ4 tÄ«kls): atveidoÅ”anas virsma tiek sadalÄ«ta 16 apgabalos, kas ļauj pārbaudÄ«t tikai attiecÄ«gos "netÄ«ros" apgabalus, bÅ«tiski samazinot liekās izmaksas sarežģītās lietotāja interfeisa atjaunināŔanās laikā.
    • Strādājot kopā, Ŕīs tehnikas nodroÅ”ina vienmērÄ«gāku un ātrāku atveidoÅ”anu, Ä«paÅ”i iebÅ«vētajās sistēmās vai reāllaika sistēmās, kur bieži notiek daļēji atjauninājumi. SÄ«kāka informācija tiks publicēta atseviŔķā ierakstā. emigrācijas.
    • LÅ«dzu, ņemiet vērā, ka gadÄ«jumos ar augsti dinamisku saturu, piemēram, dinamiskām spēlēm vai pilnekrāna animācijām, kur katrā kadrā gandrÄ«z visi objekti mainās, daļēja renderēŔana sniedz maz vai vispār nesniedz veiktspējas priekÅ”rocÄ«bas un var pat izraisÄ«t nelielus papildu izdevumus. Šādos gadÄ«jumos parasti ir labāk izvēlēties pilnÄ«gu scenārija renderēŔanu. Å Ä« iemesla dēļ ThorVG atbalsta gan daļēju, gan pilnu renderēŔanas konfigurāciju, kas dod jums iespēju izvēlēties optimālo pieeju jÅ«su lietoÅ”anas gadÄ«jumam. JÅ«s varat analizēt sava produkta veiktspēju un pieņemt pamatotu lēmumu, izmantojot opciju Meson -Dpartial=[true/false] un EngineOption::Smart klases SwCanvas opciju:

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

  • Jauna ēra tÄ«mekļa tehnoloÄ£iju integrācijā ar WebGL, WebGPU un vieglo WebCanvas nevainojamai renderēŔanai pārlÅ«kprogrammā
    • WebGL un WebGPU aizmugures tagad ir oficiāli gatavas ražoÅ”anai. Å ie GPU balstÄ«tie renderētāji tagad piedāvā pilnu funkcionālo saderÄ«bu ar tradicionālo CPU aizmuguri, atbalstot visas ThorVG Canvas iespējas ar tādu paÅ”u kvalitāti un stabilitāti attēlā. SalÄ«dzinājumā ar 0.15 versiju, GPU renderēŔanas veiktspēja ir pieaugusi par vairāk nekā 150%, kas nodroÅ”ina ievērojamu uzlabojumu reāla laika tÄ«mekļa vektorgrafikas renderēŔanā.
  • Ievērojams veiktspējas pieaugums vidēs ar ierobežotu CPU/GPU jaudu un integrētās vidēs
    • ThorVG 1.0 piedāvā uzlabotu veiktspēju salÄ«dzinājumā ar 0.15 versiju, ar ievērojamu pieaugumu gan CPU, gan GPU.
    • Galvenās optimizācijas:
      • Uzlabota renderēŔanas caurules efektivitāte.
      • Samazināti resursu izdevumi kadru buferu pieŔķirÅ”anai.
      • Optimizēta Lottie kompozÄ«ciju analÄ«ze.
      • Uzlabota pakotņu renderēŔana un GPU keÅ”atmiņa.
    • ThorVG ir optimizēts rastrēŔanai uz CPU bāzes, ar uzsvaru uz vektoru vizualizāciju vidēs, kur GPU resursi ir ierobežoti, nepieejami vai apzināti netiek izmantoti. Tipiskos CPU testos ThorVG demonstrē vidēji 1.8 reizes augstāku veiktspēju salÄ«dzinājumā ar plaÅ”i izmantoto vektoru grafikas dzinēju Skia, veicot tipiskas vektoru vizualizācijas uzdevumus. Å is priekÅ”rocÄ«bas ir Ä«paÅ”i redzamas scenārijos ar intensÄ«vu Ä£eometrijas lietojumu, piemēram, vizualizējot taisnstÅ«rus, svÄ«tras, rotācijas un apļus (screenshot 3).
  • ThorVG Janitor
    • Reālo ThorVG renderēŔanas veiktspēju var redzēt projektā ThorVG Janitor – interaktÄ«vā spēlē, izstrādātā, lai demonstrētu procesora veiktspēju ar augstu grafisko slodzi. Skatuve ietver simtiem ienaidnieku, kas radÄ«ti, izmantojot daļiņu bāzes grafiku, daudzslāņu zvaigžņu debesu fonus ar pilnizmēra rastriem, reāllaika vizuālos efektus, piemēram, DropShadow un Blur, kā arÄ« lÄ«dz 25000 objektiem, kas tiek renderēti vienlaicÄ«gi. Pat pie maksimālās slodzes ar 2K izŔķirtspēju (2048Ɨ1152) projekts rāda stabilu veiktspēju virs 120 FPS, kas uzsver ThorVG efektivitāti un piemērotÄ«bu sarežģītām vidēm ar daudziem efektiem (video demonstrācija, screenshot).
  • Citi nozÄ«mÄ«gi uzlabojumi
    • ThorVG integrācijas piemērs Godot. Iz Å”ajā video demonstrācijā ThorVG ir integrēts ar Godot tÄ«mekļa vidē, lai renderētu simtiem Lottie animāciju objektu ar ātrumu virs 120 kadriem sekundē. Å Ä« demonstrācija parāda ThorVG potenciālu tÄ«mekļa vidē, lai nodroÅ”inātu plÅ«stoÅ”u un augstas kvalitātes animāciju izpildes laikā.
    • Pievienots apmācÄ«bu piemērs ThorVG WebCanvas izmantoÅ”anai.
    • Pievienots interaktÄ«vais ThorVG Playground.
    • Pievienots ThorVG wrappers valodā Swift: https://github.com/thorvg/thorvg.swift.
    • ThorVG izmantoÅ”anas piemēri pārcelti uz atseviŔķu repozitoriju https://github.com/thorvg/thorvg.example.
    • Publicēts paplaÅ”inājums thorvg.vscode VSCode, lai radÄ«tu, rediģētu un priekÅ”skatÄ«tu ThorVG resursus tieÅ”i Visual Studio Code vidē.
    • Versijā 1.0 ir veiktas bÅ«tiskas API pārstrukturēŔanas, kas vērstas uz veiktspējas, lietojamÄ«bas, saskaņotÄ«bas un saderÄ«bas ar C uzlaboÅ”anu.
    • TVG Picture (TVG) form support has been removed. This decision was made in preparation for the new ThorVG Picture format, developed with animation as the main concept.
    • Numerous bug fixes and stability improvements for production use.

Avots: linux.org.ru

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster