Errata
Nota:* Os números de página referem-se à edição americana do livro. Entre parêntesis estão os números de página na edição global do livro.
Changes:
- pg. 100 (130), os vértices do primeiro triângulo da fita eram especificados na ordem dos ponteiros do relógio, o que tem o significado atribuído em WebGL de estarmos a olhar para a face posterior do mesmo, sendo o significado propagado para os restantes triângulos (apenas um neste caso). Em certas situações (remoção das faces posteriores ligada), poderia causar problemas. A ordem correta é:
var vertices = [
vec2(0, 1),
vec2(-1, 0),
vec2(1, 0),
vec2(0, -1)
];
- pg. 101 (131), o código do vertex shader deveria ser:
...
gl_Position.x = -sin(theta) * vPosition.y + cos(theta) * vPosition.x;
gl_Position.y = sin(theta) * vPosition.x + cos(theta) * vPosition.y;
...
pg. 102 (132), o código a meio da página não deveria ser recursivo. Retirar a chamada
render()
no final da função.pg. 105 (135), na frase antes do código no final da página deveria estar "setTimeout" em vez de "setInterval".
pg. 126 (156), a variável "t1" no exemplo deveria ser global.
pg. 164 (194), o comentário da 3ª linha do primeiro pedaço de código deveria ser "criar vec3 c por cópia de vec3 b".
pg. 172 (202), na linha de texto imediatamente abaixo da última linha de código da página, mudar "gl.drawElements" para "gl.drawArrays".
pg. 194 (224), no último exemplo de código da página deveria ler-se:
...
var e = scalem(scaleVector);
...
pg. 195 (225), remover do primeiro parágrafo "sets the matrix mode, then"
pg. 195 (225), no primeiro parágrafo alterar "Using the example from Section 4.11" para "Using the example from Section 4.10".
pg. 195 (225), o código do exemplo deveria ser:
var R = mat4();
var ctm = mat4();
var thetaX = Math.acos(3.0/Math.sqrt(14.0));
var thetaY = Math.sqrt(13.0/14.0);
var d = vec3(4.0, 5.0, 6.0);
R = mult(R, rotateX(-thetaX));
R = mult(R, rotateY(-thetaY));
R = mult(R, rotateZ(45));
R = mult(R, rotateY(thetaY));
R = mult(R, rotateX(thetaX));
ctm = translate(ctm, d);
ctm = mult(ctm, R);
ctm = mult(ctm, translate(negate(d)));