Ar Ionawr 31, ar Γ΄l blwyddyn a hanner o ddatblygiad parhaus, rhyddhawyd fersiwn 1.0 o'r llyfrgell graffeg fector traws-lwyfan ysgafn a chludadwy. ThorVG, wedi'i gynllunio ar gyfer delweddu golygfeydd fector ac animeiddiadau. Cefnogir ffeiliau yn y fformatau canlynol Lottie ΠΈ SVG Bach 1.2 (Mae rhestr o nodweddion SVG Tiny sydd wedi'u gweithredu ar gael ar Wici'r prosiect.).
Mae'r llyfrgell yn darparu APIs cyfleus ar gyfer mewnforio, creu ac arddangos graffeg fector, yn ogystal Γ’'u hallforio i wahanol fformatau graffig, gan ei gwneud yn berthnasol yn gyffredinol i wahanol lwyfannau meddalwedd a chymwysiadau ar gyfer delweddu cynnwys graffig. Mae'r cyfleustodau llinell orchymyn lottie2gif a svg2png hefyd wedi'u cynnwys.
Defnyddir ThorVG ar gyfer rendro graffeg fector mewn prosiectau fel OS Tizen, Peiriant Godot, LVGL a chwaraewyr dotLottie.
Mae'r prosiect wedi'i ysgrifennu yn C++ (safon C++14) ac wedi'i ddosbarthu o dan drwydded MIT.
Nid diweddariad yn unig yw hwnβmae'n sylfaen wedi'i hailadeiladu ar gyfer graffeg fector 2D perfformiad uchel, graddadwy, a chludadwy ar draws pob platfform a dyfais. Dros gyfnod ei ddatblygiad, mae ThorVG wedi esblygu i fod yn beiriant graffeg aeddfed, sy'n barod i'w gynhyrchu, gan ddangos ansawdd a pherfformiad profedig mewn cymwysiadau byd go iawn.
Mae ThorVG wedi ennill poblogrwydd yn gyflym ac wedi denu diddordeb cynyddol gan y gymuned, gan adlewyrchu ei esblygiad o brosiect cynnar i beiriant graffeg fector a gydnabyddir ac a ddefnyddir yn eang, yn barod i'w ddefnyddio ar draws llwyfannau go iawn.
Rhestr o newidiadau:
- Galluoedd rendro testun uwch, effeithiau gweledol cyfoethog, a chefnogaeth gorchudd manwl gywir ar gyfer mynegiant graffig gwell
- Mae cefnogaeth ar gyfer aliniad llorweddol a fertigol yn caniatΓ‘u rheolaeth fanwl gywir dros leoliad testun mewn gwahanol gyd-destunau UI.
- Rhannu llinellau'n awtomatig gyda'r gallu i ddewis y modd: yn Γ΄l nodau, yn Γ΄l geiriau, rhannu'n glyfar a thorri elipsis ar gyfer trin gorlif.
- Mae cefnogaeth ar gyfer toriadau llinell Γ’ llaw yn caniatΓ‘u i ddatblygwyr reoli toriadau llinell yn benodol gan ddefnyddio nodau llinell newydd fel \n. Mae hyn yn caniatΓ‘u fformatio blociau testun aml-linell yn fanwl gywir, yn enwedig mewn cynlluniau deinamig neu animeiddiadau testun.
- Cefnogaeth ar gyfer bylchau addasadwy rhwng nodau, gan ganiatΓ‘u ar gyfer mireinio i wella darllenadwyedd neu gyflawni arddulliau teipograffig penodol.
- Mae cefnogaeth amlinelliad testun yn caniatΓ‘u ichi greu effeithiau arddull a gwella cyferbyniad ar wahanol gefndiroedd (sgrinlun 1).
- Mae system modd cymysgu fwy cynhwysfawr a chyson wedi'i chyflwyno, gan wella ymddygiad modd cymysgu yn sylweddol ac alinio fformwlΓ’u a rhesymeg cyfansoddi Γ’ safonau diwydiant fel Lottie, SVG, a manyleb Cyfansoddi a Chymysgu W3C. Mae'r gwelliannau hyn yn darparu cysondeb gweledol gwell a chydnawsedd traws-lwyfan, yn enwedig mewn llif gwaith gwe ac animeiddio.
- Mae'r moddau cymysgu canlynol wedi'u gweithredu a'u cefnogi: Lliw, Dirlawnder, Lliw, a Goleuedd, gan ddefnyddio cyfansoddi gofod lliw HSL. Mae'r moddau hyn yn gwella cydnawsedd ag effeithiau haen Lottie a chefnogaeth cymysgu SVG yn y dyfodol (sgrinlun 2).
- Gwelliannau a gwelliannau sylweddol i effeithiau gweledol ar lefel y olygfa, gan wneud graffeg fector yn fwy mynegiannol a chyfoethog yn weledol:
- Effaith cysgod gyda hidlydd Gaussian Blur (arddangosiad fideo).
- Technegau amnewid lliw sy'n newid ymddangosiad graffeg trwy ailddiffinio'r ffordd y mae lliwiau'n cael eu cymhwyso, eu cymysgu, neu eu paru yn seiliedig ar liw (arddangosiad fideo).
- Ychwanegwyd swyddogaethau cynorthwyol newydd i wella galluoedd rhyngweithiol. Mae'r rhain yn cynnwys cefnogaeth ar gyfer ymholiadau gwybodaeth ofodol (Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ) a chanfod taro ar wrthrychau a ddangosir (arddangosiad fideo).
- Galluoedd animeiddio Lottie gwell ar gyfer chwarae traws-lwyfan, gan gynnwys rhagosodiadau modiwlaidd y Chwaraewr Gwe wedi'u optimeiddio ar gyfer maint, perfformiad, a modd rendro (CPU/GPU)
- Mae gwelliannau sylweddol i gefnogaeth animeiddio Lottie yn gwella cydnawsedd, hyblygrwydd a rhyngweithioldeb ar draws pob platfform. Nid yn unig y mae'r ystod o swyddogaethau a mynegiadau Lottie a gefnogir wedi'i hehangu, ond mae offer datblygwyr wedi'u darparu i reoli ymddygiad animeiddio yn ddeinamig yn ystod amser rhedeg, gan wneud ThorVG yn un o'r llyfrgelloedd chwarae Lottie mwyaf pwerus sydd ar gael. Mae rhestr o nodweddion a weithredwyd ar gael ar Wici'r prosiect..
- O heddiw ymlaen, yr estyniad ffeil .lot yw'r safon IANA swyddogol newydd ar gyfer ffeiliau Lottie. Mae ThorVG bellach yn cefnogi .lot yn swyddogol fel y fformat ffeil Lottie safonol, yn ogystal Γ’'r estyniad .json traddodiadol.
- Gefeillio
- Ychwanegwyd cefnogaeth ar gyfer rhyngosod rhwng fframiau allweddol cyfagos yn anlinellol, gan alluogi trawsnewidiadau llyfnach a rheolaeth amseru fwy manwl gywir. Mae'r gwelliant hwn yn arbennig o effeithiol pan gaiff ei ddefnyddio gydag ailchwarae animeiddiad yn seiliedig ar gyflwr (a elwir hefyd yn ailchwarae yn seiliedig ar farcwyr) yn Lottie. Mewn llawer o achosion, mae animeiddiadau wedi'u cynllunio i drawsnewid rhwng cyflyrau mewn ffyrdd cymhleth, anlinellol. Mae Lottie traddodiadol, gyda'i strwythur amseru llym olynol, yn ei chael hi'n anodd ymdopi Γ’ senarios o'r fath, gan arwain yn aml at ostyngiadau sydyn neu neidiau lletchwith wrth drawsnewid rhwng fframiau allweddol an-ddilyniannol: arddangosiad fideo 1, arddangosiad fideo 2.
- Gyda tweening, gall datblygwyr nawr ryngosod yn uniongyrchol rhwng dau ffrΓ’m allweddol unigol, hyd yn oed os nad ydynt yn llinol gyfagos ar y llinell amser. Mae hyn yn caniatΓ‘u effeithiau gweledol mwy naturiol a llyfn yn ystod trawsnewidiadau cyflwr, gan gynyddu hyblygrwydd a realaeth animeiddiadau rhyngweithiol yn sylweddol: arddangosiad fideo 1, arddangosiad fideo 2.
- Nawr (fel nodwedd arbrofol), cefnogir ailysgrifennu newidynnau mynegiant amser rhedeg, gan ganiatΓ‘u i resymeg sgript gael ei gweithredu'n ddeinamig yn seiliedig ar fewnbwn y defnyddiwr. Mae hyn yn ei gwneud yn offeryn arbennig o bwerus ar gyfer creu animeiddiadau rhyngweithiol gan ddefnyddio asedau Lottie, gan ganiatΓ‘u ar gyfer amrywiadau personol sy'n mynd y tu hwnt i'r dyluniad gwreiddiol.arddangosiad fideo).
- Mae Datrysydd Asedau addasadwy wedi'i ychwanegu, gan ddarparu mwy o hyblygrwydd wrth lwytho asedau allanol (megis delweddau) y cyfeirir atynt gan animeiddiadau Lottie.
- Cefnogaeth estynedig ar gyfer Lottie LayerEffect, sy'n eich galluogi i gymhwyso gwelliannau gweledol cyfoethog yn uniongyrchol i haenau animeiddio gyda'r effeithiau a ddisgrifir uchod.
- Gan y gall rhai effeithiau fod yn ddwys o ran adnoddau, mae opsiwn ar gael i addasu ansawdd a pherfformiad rendro effeithiau, sy'n ddelfrydol ar gyfer optimeiddio ar lwyfannau sydd Γ’ chyfyngiadau CPU. Mae hyn yn caniatΓ‘u i ddatblygwyr reoli ffyddlondeb rendro ac optimeiddio perfformiad yn dibynnu ar y platfform targed.
- Mae cefnogaeth mynegiant wedi'i ehangu trwy ychwanegu'r swyddogaethau a'r priodweddau allweddol canlynol:
- siglo, amserolWiggle: Cymhwyso symudiad ar hap yn seiliedig ar amser.
- pointOnPath: Yn cyfrifo'r safle ar hyd llwybr.
- Mynegaipriodwedd, MynegaigrΕ΅p: Cyfeiriad at fynegai priodwedd neu grΕ΅p.
- gwerth, priodwedd, effaith: mynediad at werthoedd priodweddau ac effeithiau allanol.
- Cydymffurfiaeth manyleb fwy cywir:
- Mae TextFollowPath yn fanyleb newydd sy'n caniatΓ‘u i destun ddilyn llwybrau fector mympwyol (arddangosiad fideo).
- Dewisiadau Aliniad Testun β Arddangosfa fwy cywir o haenau testun yn seiliedig ar eu gosodiadau aliniad llorweddol a fertigol (arddangosiad fideo).
- Mae Ehangu Masg yn nodwedd newydd sy'n eich galluogi i reoli'n fwy manwl sut mae siΓ’p masg yn effeithio ar eich cyfansoddiad gweledol (arddangosiad fideo).
- SVG
- Mae ThorVG bellach yn caniatΓ‘u ichi gael mynediad at elfennau SVG unigol a'u haddasu gan ddefnyddio priodoleddau id unigryw a ddiffinnir yn y ffeil ffynhonnell SVG. Mae'r nodwedd hon yn caniatΓ‘u i ddatblygwyr ddewis a thrin siapiau fector penodol yn uniongyrchol mewn golygfa SVG a fewnforiwyd, sy'n ddelfrydol ar gyfer achosion defnydd rhyngweithiol neu ddeinamig (e.e., themau, amlygu).
- Cymorth Effaith aneglur Gaussaidd.
- Rendro deallus
- Mae peiriant meddalwedd ThorVG bellach yn cefnogi rendro rhannol deallus, sy'n galluogi llif gwaith rendro mwy effeithlon trwy ddiweddaru dim ond y rhannau hynny o olygfa fector sydd wedi newid. Trwy olrhain rhanbarthau sydd wedi newid yn fewnol, mae'n lleihau ail-luniadau diangen ac yn optimeiddio perfformiad cyffredinol. Mae'r nodwedd hon yn darparu manteision sylweddol mewn senarios fel rendro UI, offer dylunio, neu gymwysiadau lle mae'r rhan fwyaf o'r olygfa yn aros yn statig a dim ond elfennau bach sy'n cael eu diweddaru rhwng fframiau. Mewn achosion o'r fath, gall osgoi rendro golygfa lawn leihau'r llwyth cyfrifiadurol yn sylweddol a gwella effeithlonrwydd pΕ΅er, sy'n arbennig o werthfawr ar gyfer systemau symudol ac wedi'u mewnosod.
- I gyflawni'r nod hwn, mae ThorVG 1.0 yn defnyddio cyfuniad o ddulliau algorithmig a gynlluniwyd yn benodol ar gyfer rendro rhannol. Y strategaethau allweddol sy'n sail i'r system hon yw'r canlynol:
- Algorithm Pasio Llinol: Mae'r siapiau'n cael eu didoli yn Γ΄l cyfesurynnau-x a defnyddir strategaeth pasio llinol i leihau gwiriadau diangen o ranbarthau budr. Mae hyn yn lleihau'r cymhlethdod o O(N Γ M) i O(N + M + K + N log N), lle mae N yn nifer y siapiau, M yw nifer y rhanbarthau budr, a K yw nifer y gorgyffwrdd gwirioneddol.
- Hollti a chyfuno amodol: mae hollti is-ranbarth manwl yn cael ei gydbwyso gan gyfuno deallus i osgoi darnio. Rhoddir blaenoriaeth i gyfuno llorweddol ar gyfer defnyddio storfa cof yn fwy effeithlon.
- Israniad Gofodol (grid 4x4 diofyn): Mae'r arwyneb rendro wedi'i rannu'n 16 rhanbarth, gan ganiatΓ‘u i'r ardaloedd "budr" cyfatebol o siapiau gael eu gwirio yn unig, gan leihau'r gorbenion yn sylweddol yn ystod diweddariadau UI cymhleth.
- Gan weithio gyda'i gilydd, mae'r technegau hyn yn darparu rendro llyfnach a chyflymach, yn enwedig mewn systemau mewnosodedig neu amser real lle mae diweddariadau rhannol yn aml. Cyhoeddir mwy o fanylion mewn post ar wahΓ’n. post blog.
- Sylwch, ar gyfer cynnwys hynod ddeinamig, fel gemau cyflym neu animeiddiadau sgrin lawn lle mae bron pob gwrthrych yn newid pob ffrΓ’m, mae rendro rhannol yn darparu ychydig iawn o fudd perfformiad neu ddim budd perfformiad o gwbl a gall hyd yn oed arwain at ychydig o gostau uwchben. Mewn achosion o'r fath, mae rendro golygfa lawn fel arfer yn ddewis gwell. Am y rheswm hwn, mae ThorVG yn cefnogi ffurfweddiadau rendro rhannol a llawn, gan ganiatΓ‘u ichi ddewis y dull gorau posibl ar gyfer eich achos defnydd. Gallwch ddadansoddi perfformiad eich cynnyrch a gwneud penderfyniad gwybodus gan ddefnyddio'r opsiwn Meson -Dpartial=[gwir/ffug] a'r opsiwn EngineOption::Smart o'r dosbarth SwCanvas:
auto canvas = SwCanvas::gen(OpsiwnPeiriant::Smart);
- Oes newydd o integreiddio gwe gyda WebGL, WebGPU, a'r WebCanvas ysgafn ar gyfer rendro di-dor yn y porwr
- Mae cefndiroedd WebGL a WebGPU bellach yn swyddogol barod i'w defnyddio wrth gynhyrchu. Mae'r rendrwyr hyn sy'n seiliedig ar GPU bellach yn cynnig rhyngweithredadwyedd llawn Γ’ chefndir traddodiadol y CPU, gan gefnogi holl nodweddion ThorVG Canvas gyda'r un ansawdd delwedd a sefydlogrwydd. O'i gymharu Γ’ fersiwn 0.15, mae perfformiad rendro GPU wedi cynyddu dros 150%, gan ddarparu gwelliant sylweddol mewn rendro graffeg fector gwe amser real.
- Gwelliannau perfformiad sylweddol mewn amgylcheddau cyfyngedig CPU/GPU ac amgylcheddau mewnosodedig
- Mae ThorVG 1.0 yn cynnig perfformiad gwell o'i gymharu Γ’ fersiwn 0.15, gydag enillion amlwg ar gyfer y CPU a'r GPU.
- Optimeiddiadau allweddol:
- Gwell effeithlonrwydd piblinell rendro.
- Gorbenion dyrannu byffer ffrΓ’m wedi'u lleihau.
- Dadansoddiad cyfansoddiad Lottie wedi'i optimeiddio.
- Rendro swp a storio GPU gwell.
- Mae ThorVG wedi'i optimeiddio ar gyfer rastereiddio seiliedig ar CPU, gyda ffocws ar rendro fector mewn amgylcheddau lle mae adnoddau GPU yn gyfyngedig, heb fod ar gael, neu'n cael eu tanddefnyddio'n fwriadol. Mewn meincnodau CPU nodweddiadol, mae ThorVG yn dangos perfformiad cyfartalog o 1.8 gwaith yn gyflymach na'r injan graffeg fector Skia a ddefnyddir yn helaeth wrth gyflawni tasgau rendro fector nodweddiadol. Mae'r fantais hon yn arbennig o amlwg mewn senarios sy'n ddwys o ran geometreg fel rendro petryalau, strΓ΄cs, cylchdroadau, a chylchoedd (sgrinlun 3).
- Gofalwr ThorVG
- Gellir gweld arddangosiad byd go iawn o berfformiad rendro ThorVG yn y prosiect. Gofalwr ThorVG β gΓͺm ryngweithiol a gynlluniwyd i arddangos perfformiad prosesydd o dan lwyth graffeg trwm. Mae'r olygfa'n cynnwys cannoedd o elynion a grΓ«wyd gan ddefnyddio graffeg sy'n seiliedig ar ronynnau, cefndiroedd awyr serennog aml-haenog gyda mapiau bit maint llawn, effeithiau gweledol amser real fel DropShadow a Blur, a hyd at 25000 o wrthrychau wedi'u rendro ar yr un pryd. Hyd yn oed ar lwyth brig ar benderfyniad 2K (2048 Γ 1152), mae'r prosiect yn dangos perfformiad sefydlog uwchlaw 120 FPS, gan amlygu effeithlonrwydd a haddasrwydd ThorVG ar gyfer amgylcheddau cymhleth, sy'n llawn effeithiau.arddangosiad fideo, screenshot).
- Newidiadau arwyddocaol eraill
- Enghraifft o integreiddio ThorVG yn Godot. Yn yr arddangosiad fideo hwn Mae ThorVG wedi'i integreiddio Γ’ Godot mewn amgylchedd gwe i rendro cannoedd o wrthrychau animeiddio Lottie ar dros 120 ffrΓ’m yr eiliad. Mae'r demo hwn yn dangos potensial ThorVG mewn amgylchedd gwe ar gyfer animeiddio llyfn, o ansawdd uchel ar amser rhedeg.
- Wedi adio enghraifft addysgu gan ddefnyddio ThorVG WebCanvas.
- Ychwanegwyd rhyngweithiol Maes Chwarae ThorVG.
- Ychwanegwyd lapio ThorVG ar gyfer Swift: https://github.com/thorvg/thorvg.swift.
- Mae enghreifftiau defnydd ThorVG wedi'u symud i storfa ar wahΓ’n https://github.com/thorvg/thorvg.example.
- Estyniad wedi'i gyhoeddi thorvg.vscode i VSCode greu, golygu a rhagweld adnoddau ThorVG yn uniongyrchol o fewn Visual Studio Code.
- Mae Fersiwn 1.0 yn cynnwys ailstrwythuro API sylweddol gyda'r nod o wella perfformiad, defnyddioldeb, cysondeb a chydnawsedd Γ’ C.
- Mae cefnogaeth i'r fformat Llun TVG (TVG) wedi'i ddileu. Gwnaed y penderfyniad hwn i baratoi ar gyfer y fformat Llun ThorVG newydd, a gynlluniwyd gydag animeiddio fel ei gysyniad craidd.
- Nifer o drwsiadau namau a gwelliannau sefydlogrwydd ar gyfer defnydd cynhyrchu.
Ffynhonnell: linux.org.ru
