beating canvas 2 d in its own territory webgl+tesspathy
TRANSCRIPT
![Page 1: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/1.jpg)
Beating Canvas 2D in Its Own Territory
WebGL + Tesspathy
Guangyao Liutwitter:@brilliun, github:@brilliunGREE, Inc.
![Page 2: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/2.jpg)
What We Do
![Page 3: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/3.jpg)
JS Animation Engine <canvas>
2D Vector
Contents
e.g. SWF
Contents Provider
User’s Browser
![Page 4: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/4.jpg)
JS Game/Animation
<canvas>
Canvas 2D WebGL
We used to use this only
![Page 5: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/5.jpg)
Canvas 2D WebGL
● 2D● Vector data
● 3D (mainly)● Mesh data● Hardware
acceleration
![Page 6: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/6.jpg)
Canvas 2D WebGL
● 2D● Vector data● Hardware
acceleration
● 3D (mainly)● Mesh data● Hardware
acceleration
Browser Vendor
![Page 7: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/7.jpg)
HTML5 Game/Animation
<canvas>
Canvas 2D WebGL
Content2D Vector 2/3D Mesh
![Page 8: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/8.jpg)
Canvas 2D WebGL
● 2D● Vector data● Hardware
acceleration
● 3D (mainly)● Mesh data● Hardware
accelerationStill Not Enough
![Page 9: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/9.jpg)
Canvas 2D WebGL
● 2D● Vector data
● 3D (mainly)● Mesh data
Hardware acceleration
![Page 10: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/10.jpg)
HTML5 Game/Animation
<canvas>
WebGL
Content2D Vector 2/3D Mesh
![Page 11: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/11.jpg)
Only one problem
WebGL Just Can’t Handle Vector Graphics
![Page 12: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/12.jpg)
TesspathyA JS library converting vector graphics for GL-
like APIs
● Convert on the fly● Resolution-independent Curves● Almost no assumption of input data
github.com/gree/tesspathy
![Page 13: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/13.jpg)
No need to pre-process your vector data
![Page 14: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/14.jpg)
Remember the Demo?
Now let’s try it with WebGL + Tesspathy
![Page 15: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/15.jpg)
<canvas>
Canvas 2D WebGL
Tessellation
Hardware Acceleration
Newly added this year
skia/src/gpu/*.cpp
![Page 16: Beating canvas 2 d in its own territory webgl+tesspathy](https://reader033.vdocument.in/reader033/viewer/2022042819/55cc5088bb61eb35638b467b/html5/thumbnails/16.jpg)
<canvas>
Canvas 2D Tesspathy
Tessellation
Hardware Acceleration
skia/src/gpu/*.cpp
WebGL
Hardware Acceleration
your/self/code.js