Nem, sajnos még nem lehet kipróbálni az új VEGA vektorgrafikus motort. Addig is, amíg várakozunk rá, - jobb híján - olvassuk el, mit írtak róla az Opera fejlesztői, még idén februárban, a Core blogon. Akkor át is adnám nekik a szót...
Ez a bejegyzés a "Vega - Opera's vector graphics library" című cikk fordítása. Az eredeti cikk 2009. február 4-én jelent meg a Core blogon.
A korábbi bejegyzésemben írtam egy keveset az Opera hardveresen gyorsított vektorgrafikus könyvtáráról. Ebben az írásban további részleteket olvashattok róla.
A Vega története
A Vega-t nem sokkal az SVG támogatás fejlesztésének megkezdését követően alkottuk meg. Amikor implementáltuk az SVG támogatást az Operába, szükségünk volt egy vektorgrafikus könyvtárra. Körülnéztünk az akkori alternatívák között, hogy melyik felelne meg leginkább az igényeinknek (gyors, alacsony memóriaigény, telefontól kezdve a TV-n át a PC-ig sok platformon működjön). Mivel egyet sem találtunk, ami megfelelt volna, egy saját verzió megírása mellett döntöttünk.
Röviddel a Vega megalkotását követően implementáltuk a canvas
támogatást is, ami szintén a Vega-t használja.
A Vega legújabb funkciója, hogy képes a hardveresen gyorsított kimenetek (back-end) alkalmazására is. A pillanatnyilag használt két kimenet az OpenGL és a Direct3D.
HTML renderelés
A jelenleg [tehát a cikk megírásakor] fejlesztés alatt álló motorban, a Presto 2.3-ban [ami már készen van, most a 2.4-en dolgoznak] lehetővé tettük, hogy a Vega végezzen minden renderelést az Operában. A jövőben elképzelhető, hogy csak ez a megoldás lesz elérhető, de a Presto 2.3-ban még lehetőség van a korábbi megoldások használatára is.
Három okból döntöttünk így [mármint, hogy a Vega rendereljen mindent]. Az első, hogy az új CSS3 background
és borders
szabványokat sokkal könnyebb vektorgrafikusan implementálni. A Presto 2.3 már részlegesen támogatja ezeket az újításokat, de csakis a Vega renderelést használva.
A másik ok a hardveres gyorsítás lehetősége. Ahhoz ugyanis, hogy hardverből SVG-t és canvas
-t renderelhessünk, szükség van arra, hogy közvetlenül kirajzolhassuk a képernyőre a renderelt vektorábrát, mivel annak a videokártyából való visszaolvasása általában tovább tartana, mint egyszerűen szoftverből renderelni. [magyarul: vagy mindent hardverből csinálunk, vagy semmit, mert a vegyes megoldás lassabb és nyűgösebb]
A harmadik indok, hogy így lehetővé vált számunkra, hogy komplex grafikai effekteket rendelhessünk a felhasználói felülethez, illetve a honlapokhoz.
Hardverkövetelmények
A hardveres kimenet sajnos nem működik minden grafikus kártyán. Jó hír viszont, hogy a program futás közben kideríti, hogy a kártyád támogatott-e vagy sem, az utóbbi esetben a szoftveres megjelenítés aktivizálódik. Ez azt jelenti, hogy minden működni fog, a grafikus kártyád képességeitől függetlenül [csak ekkor nyilván nem lesz hardveres gyorsítás].
Az első követelmény a hardverrel szemben, hogy rendelkeznie kell gyors stencil bufferekkel. Ez a PC-n nem probléma [nagyjából az ezredforduló óta tudják a kártyák], a mobil eszközökön viszont igen. A használatát az indokolja, hogy ezt használjuk bizonyos komplex formák renderelésére ahelyett, hogy tesszellációt követően pusztán háromszögeket renderelnénk.
Mivel bizonyos szabványok (például az átlátszóság, az SVG és a canvas
) egy nem látható buffer használatát igényli (aminek tartalma aztán a képernyőre kerül), szükségünk van a textúrába renderelés képességére is ahhoz, hogy a hardveres kimenetet használhassuk. Ez DirectX9 kompatibilis grafikus kártyát jelent, vagy a framebuffer object
(FBO) támogatását OpenGL alatt. Mindez megoldható lenne a pbufferek használatával is, de ebben az esetben sok render target
váltásra lenne szükség, ami nagyon belassítaná a folyamatot.
A végső követelmény a 2.0 pixel árnyalók (pixel-shader - DirectX), vagy töredék-árnyalók (fragment shader - OpenGL) megléte. Erre a szűrők miatt van szükség, amik az SVG részei. Segítségükkel olyan hatások hozhatók létre, mint az elmosás (blur) vagy a színtranszformáció. A szűrők továbbá szükségesek a canvas
-hoz, a HTML-ben pedig támogatják a szövegárnyékolást, valamint a doboz-árnyékolást (box-shadows
).
A PC felhasználók esetén a DirectX 9 kompatibilis hardverek teljesítik a fenti követelményeket, tehát ha rendelkezel ilyennel, akkor megfelelő meghajtóprogram használatával [ami nyilván egy kellően friss ForceWare-t vagy Catalyst-ot jelent] képes leszel kihasználni a Vega hardveres kimenetét.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
penge™ · http://www.thevenusproject.com/ 2009.12.09. 18:33:57
De már nem bánnám ha jönne, de eddig még a 10.20-ból sincs új snapshot, csak egy alfa, ez pedig abba már nem kerül bele…
Na meg eddig még Karbonade sem dicsekedett vele, hogy már kapott egy top secret feljesztői előzetest és találjuk ki, hogy milyen új fícsör van benne. :D
Teddy Beer 2009.12.09. 20:06:11
penge™ · http://www.thevenusproject.com/ 2009.12.09. 20:22:23
A videokártyával meg főleg úgy vagyok, hogy mivel a játékigényemet kielégíti a passziánsz, vagy a flash alapú biliárd, így nem szívesen fejlesztem, ha nem muszáj.
cousin333 · http://magyaropera.blog.hu 2009.12.09. 21:12:31
"Legalább van valami előnye annak, hogy az Opera nem csak Windowsra fejleszt."
Sőt, mobilokra és más eszközökre is. Ugyanakkor hátrány, hogy emiatt csúsztat dolgokat, meg nem elég neki egyvalamire elkészülni, hanem mindenhova kell. Szerintem már régen lenne Carakan, ha csak PC-re kellene.
De ahogy néztem, a TraceMonkey bekerül a Firefox Mobile-ba i, szóval nem alaptalan a multiplatformra összpontosítás.
@penge™: Nekem ez nem DX10 pártiságnak tűnik. Inkább felbukkant egy új technika, IE támogatni fogja, akkor az FF sem maradhat el. Bár részleteket nem ismerek, de továbbra is tartom, hogy az FF megoldása elég primitív.
ui: állítólag a Presto 2.4 még szoftverből is gyorsabb... :D
Karbonade · http://magyaropera.blog.hu 2009.12.09. 23:02:48
penge™ · http://www.thevenusproject.com/ 2009.12.09. 23:13:13
Egyébként úgy értettem a titkot, hogy ha annyit tudnánk, hogy te már valami új buildet használsz, akkor lehetne sejteni, hogy hamarosan 1-1,5 hónapon belül megkapjuk mi is. De így márciusban majd valamikor végleges lesz a 10.20, aztán ha szerencsénk van áprilisban megkapjuk az első alfát a 10.5-ből, amiben már benne lesz remélhetőleg a Carakan és a VEGA is.
Cobalt 2009.12.10. 07:29:23
Karbonade · http://magyaropera.blog.hu 2009.12.10. 07:39:15
Dzsini 2009.12.10. 07:58:13
Ideális esetben az átlag user maximum annyit vesz észre, hogy 0.3 helyett 0.12 másodperc alatt jelenik meg az oldal, nincs hozzá felirat :)
Teddy Beer 2009.12.10. 09:21:25
Jah és egy kis emlékeztető: pcforum.hu/tudastar/37784/AGP+8x+VGA+4x-es+AGP+Slotban.html
Teddy Beer 2009.12.10. 09:24:03
cousin333 · http://magyaropera.blog.hu 2009.12.10. 10:08:21
penge™ · http://www.thevenusproject.com/ 2009.12.14. 10:17:35
cousin333 · http://magyaropera.blog.hu 2009.12.25. 15:50:31
penge™ · http://www.thevenusproject.com/ 2009.12.25. 17:15:11