beating canvas 2 d in its own territory webgl+tesspathy

17
Beating Canvas 2D in Its Own Territory WebGL + Tesspathy Guangyao Liu twitter:@brilliun , github:@brilliun GREE, Inc.

Upload: greetech

Post on 13-Aug-2015

145 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: Beating canvas 2 d in its own territory  webgl+tesspathy

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

What We Do

Page 3: Beating canvas 2 d in its own territory  webgl+tesspathy

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

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

Canvas 2D WebGL

● 2D● Vector data

● 3D (mainly)● Mesh data● Hardware

acceleration

Page 6: Beating canvas 2 d in its own territory  webgl+tesspathy

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

HTML5 Game/Animation

<canvas>

Canvas 2D WebGL

Content2D Vector 2/3D Mesh

Page 8: Beating canvas 2 d in its own territory  webgl+tesspathy

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

Canvas 2D WebGL

● 2D● Vector data

● 3D (mainly)● Mesh data

Hardware acceleration

Page 10: Beating canvas 2 d in its own territory  webgl+tesspathy

HTML5 Game/Animation

<canvas>

WebGL

Content2D Vector 2/3D Mesh

Page 11: Beating canvas 2 d in its own territory  webgl+tesspathy

Only one problem

WebGL Just Can’t Handle Vector Graphics

Page 12: Beating canvas 2 d in its own territory  webgl+tesspathy

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

No need to pre-process your vector data

Page 14: Beating canvas 2 d in its own territory  webgl+tesspathy

Remember the Demo?

Now let’s try it with WebGL + Tesspathy

Page 15: Beating canvas 2 d in its own territory  webgl+tesspathy

<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

<canvas>

Canvas 2D Tesspathy

Tessellation

Hardware Acceleration

skia/src/gpu/*.cpp

WebGL

Hardware Acceleration

your/self/code.js

Page 17: Beating canvas 2 d in its own territory  webgl+tesspathy

Thank You

Tesspathygithub.com/gree/tesspathy