HTML GL - возьмите столько FPS, сколько вам нужно!

35
Render HTML/CSS in WebGL

Transcript of HTML GL - возьмите столько FPS, сколько вам нужно!

Page 1: HTML GL - возьмите столько FPS, сколько вам нужно!

Render HTML/CSS in WebGL

Page 2: HTML GL - возьмите столько FPS, сколько вам нужно!

ChallengingNative.comFast web applications development, profiling and optimization

Page 3: HTML GL - возьмите столько FPS, сколько вам нужно!

@PixelsCommander

[email protected]

Page 4: HTML GL - возьмите столько FPS, сколько вам нужно!
Page 5: HTML GL - возьмите столько FPS, сколько вам нужно!
Page 6: HTML GL - возьмите столько FPS, сколько вам нужно!

DOM is slowSince it is a quite complex model

Page 7: HTML GL - возьмите столько FPS, сколько вам нужно!

Display image: DOM vs Canvas

Create IMG tagLoad fileAppend IMG tagCalc. stylesCalc. positionDisplay image

Load filecanvas.drawImage

Page 8: HTML GL - возьмите столько FPS, сколько вам нужно!

Even GPU DOM is slowIt changes the last step only

Page 9: HTML GL - возьмите столько FPS, сколько вам нужно!

DOM is hardly predictable

Page 10: HTML GL - возьмите столько FPS, сколько вам нужно!

HTML GL means No DOMBut only when animating

Page 11: HTML GL - возьмите столько FPS, сколько вам нужно!

Also

Page 12: HTML GL - возьмите столько FPS, сколько вам нужно!

Recoginze?

Page 14: HTML GL - возьмите столько FPS, сколько вам нужно!

Modern GPU can handle millions of textured surfaces

May treat this as“millions of HTML elements”

Page 15: HTML GL - возьмите столько FPS, сколько вам нужно!

Why so many?For some things it is still not

enough

Page 16: HTML GL - возьмите столько FPS, сколько вам нужно!

What OpenGL can do

Games are much heavier and much

impressive

Page 18: HTML GL - возьмите столько FPS, сколько вам нужно!

Because GPU is not involved and DOM is complex (ok, ok, we remember that)

HTML image slides janky in meanwhile

???

Page 19: HTML GL - возьмите столько FPS, сколько вам нужно!

Let`s release bunnies!

OpenGL is also available in WEB via

WebGL

Page 20: HTML GL - возьмите столько FPS, сколько вам нужно!

Why do not we use WebGL for content?Imperative, verbose, no layout

Page 21: HTML GL - возьмите столько FPS, сколько вам нужно!

<img src=”back.png”>

WebGL: The bad partsvar renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight);

document.body.appendChild(renderer.domElement);

var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);

camera.position.z = 500;

var scene = new THREE.Scene();

var material = new THREE.MeshLambertMaterial({

map: THREE.ImageUtils.loadTexture('http://www.html5canvastutorials.com/demos/assets/crate.jpg')

});

var plain = new THREE.Mesh(new THREE.Plain(200, 200), material);

scene.add(plain);

Page 22: HTML GL - возьмите столько FPS, сколько вам нужно!

Renders HTML/CSS in WebGL

Page 23: HTML GL - возьмите столько FPS, сколько вам нужно!

<img src=”back.png”>

HTML GL

<htmlgl>

<img src=”back.png”>

</htmlgl>

Page 24: HTML GL - возьмите столько FPS, сколько вам нужно!

Easy to useJust wrap content you want to animate with <html-gl> tag or execute $(myNode).htmlgl()

Page 25: HTML GL - возьмите столько FPS, сколько вам нужно!

How it works?

Page 26: HTML GL - возьмите столько FPS, сколько вам нужно!

The flow

Page 27: HTML GL - возьмите столько FPS, сколько вам нужно!

Relies on:DOM Mutation Observers, html2canvas, Pixie.js

Page 30: HTML GL - возьмите столько FPS, сколько вам нужно!

HTML GL / Sorry you can not do this in DOM

Some GL

Page 31: HTML GL - возьмите столько FPS, сколько вам нужно!

Filter as a plugin, add your one!

Page 32: HTML GL - возьмите столько FPS, сколько вам нужно!

Framework agnostic, but expecting React-GL

Page 33: HTML GL - возьмите столько FPS, сколько вам нужно!

No new conceptions. You do HTML/CS.

Just add <html-gl>

The best thing

Page 35: HTML GL - возьмите столько FPS, сколько вам нужно!

@PixelsCommander

[email protected]