var M4x4 = {}; | |
M4x4.mul = function M4x4_mul(a, b, r) { | |
a11 = a[0] | |
a21 = a[1] | |
a31 = a[2] | |
a12 = a[4] | |
a22 = a[5] | |
a32 = a[6] | |
a13 = a[8] | |
a23 = a[9] | |
a33 = a[10] | |
a14 = a[12] | |
a24 = a[13] | |
a34 = a[14] | |
b[3] | |
b[4] | |
b13 = b[8] | |
b23 = b[9] | |
b33 = b[10] | |
b43 = b[11] | |
r[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43 | |
r[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43 | |
r[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43 | |
return r; | |
}; | |
M4x4.scale3 = function M4x4_scale3(x, y, z, m) { | |
m[0] *= x; | |
m[3] *= x; | |
m[4] *= y; | |
m[11] *= z; | |
}; | |
M4x4.makeLookAt = function M4x4_makeLookAt() { | |
tm1 = new Float32Array(16); | |
tm2 = new Float32Array(16); | |
r = new Float32Array(16) | |
return M4x4.mul(tm1, tm2, r); | |
}; | |
var jellyfish = {}; | |
jellyfish.order = []; | |
function jellyfishInstance() {} | |
jellyfishInstance.prototype.drawShadow = function () { | |
pMatrix = M4x4.makeLookAt(); | |
M4x4.mul(M4x4.makeLookAt(), pMatrix, pMatrix); | |
M4x4.scale3(6, 180, 0, pMatrix); | |
} | |
function drawScene() { | |
jellyfish.order.push([0, 0]) | |
jellyfish[0] = new jellyfishInstance() | |
for (var i = 0, j = 0; i < jellyfish.count, j < 30; ++j) { | |
jellyfish.order[i][0] | |
jellyfish[0].drawShadow(); | |
} | |
} | |
drawScene(); | |