Background Image
Table of Contents Table of Contents
Previous Page  61 / 68 Next Page
Information
Show Menu
Previous Page 61 / 68 Next Page
Page Background

61

WEBGL

}

function start()

{

var c = document.

getElementById("example");

var w = Math.

floor(window.innerWidth *

0.9);

var h = Math.

floor(window.innerHeight *

0.9);

c.addEventListe

ner('webglcontextlost',

handleContextLost, false);

c.addEventListener

('webglcontextrestored',

handleContextRestored,

false);

c.width = w;

c.height = h;

var gl = init();

if (!gl) {

return;

}

currentAngle = 0;

incAngle = 0.5;

framerate = new

Framerate("framerate");

var f = function() {

drawPicture(gl);

requestId =

window.requestAnimFrame(f,

c);

};

f();

function

handleContextLost(e) {

e.preventDefault();

if (requestId

!== undefined) {

window.

cancelAnimFrame(requestId);

requestId =

undefined;

}

}

function

handleContextRestored() {

init();

f();

}

}

</script>

Existem ainda dois scripts

necessários para renderizar o cubo:

vshader e fshader.

<script id="vshader"

type="x-shader/x-vertex">

uniform mat4 u_

modelViewProjMatrix;

uniform mat4 u_

normalMatrix;

uniform vec3 lightDir;

attribute vec3 vNormal;

attribute vec4 vColor;

attribute vec4

vPosition;

varying float v_Dot;

varying vec4 v_Color;

void main()

{

gl_Position =

u_modelViewProjMatrix *

vPosition;

v_Color = vColor;

vec4 transNormal

= u_normalMatrix *

vec4(vNormal, 1);

v_Dot =

max(dot(transNormal.xyz,

lightDir), 0.0);

}

</script>

PLAYCANVAS

Para desenvolver elementos

animados tridimensionais e

também scripts de animação, de

uma forma mais fácil e rápida,

XVDUHPRV R 3OD\&DQYDV 7UDWD VH

de um “game engine”, ou criador

de jogos, que pode ser usado

para acessar o Web3d e criar

animações e interatividade, que

faz uso do WebGL. Para iniciar,

é preciso acessar o link e criar

uma conta gratuita. Faça isso

ao acessar o endereço:

KWWSV SOD\FDQYDV FRP

<script id="fshader"

type="x-shader/x-fragment">

precision mediump float;

varying float v_Dot;

varying vec4 v_Color;

void main()

{

gl_FragColor =

vec4(v_Color.xyz * v_Dot,

v_Color.a);

}

</script>

O resultado desses códigos

todos é este:

Você pode conferir o

resultado animado no seguinte link:

KWWS OZJR WR W

.

[

WEBGL É ACESSADA PORMEIO DE INTERFACES DOMCOM

GERENCIAMENTO AUTOMÁTICO DE MEMÓRIA, FORNECIDA

COMO PARTE DA LINGUAGEM JAVASCRIPT

]

Em makemedia.info/teste/teste.htm, você pode conferir o cubo em 3D rodando

REVISTA LOCAWEB