Javascript 尝试在webGL中实现glulookat但失败
好的,我有一个画在0,0,0的块,我有这个Javascript 尝试在webGL中实现glulookat但失败,javascript,jquery,math,webgl,Javascript,Jquery,Math,Webgl,好的,我有一个画在0,0,0的块,我有这个 function ugluLookAtf(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz){ var forward = new Array(3); var side = new Array(3); var up = new Array(3); var m = new Array(4); for(va
function ugluLookAtf(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz){
var forward = new Array(3);
var side = new Array(3);
var up = new Array(3);
var m = new Array(4);
for(var i = 0; i < m.length; i++){
m[i] = new Array(m.length)
}
forward[0] = centerx - eyex;
forward[1] = centery - eyey;
forward[2] = centerz - eyez;
var f = Math.sqrt(forward[0]*forward[0]+forward[1]*forward[1]+forward[2]*forward[2]);
forward[0] = forward[0]/f;
forward[1] = forward[1]/f;
forward[2] = forward[2]/f;
up[0] = upx;
up[1] = upy;
up[2] = upz;
side[0] = forward[1] * up[2] - up[1] * forward[2];
side[1] = forward[2] * up[0] - up[2] * forward[0];
side[2] = forward[0] * up[1] - up[0] * forward[1];
var f = Math.sqrt(side[0]*side[0]+side[1]*side[1]+side[2]*side[2]);
side[0] = side[0]/f;
side[1] = side[1]/f;
side[2] = side[2]/f;
up[0] = forward[1] * side[2] - side[1] * forward[2];
up[1] = forward[2] * side[0] - side[2] * forward[0];
up[2] = forward[0] * side[1] - side[0] * forward[1];
__identf(m[0][0]);
m[0][0] = side[0];
m[1][0] = side[1];
m[2][0] = side[2];
m[0][1] = up[0];
m[1][1] = up[1];
m[2][1] = up[2];
m[0][2] = -forward[0];
m[1][2] = -forward[1];
m[2][2] = -forward[2];
glMultMatrixf(m[0][0]);
glTranslatef(-eyex, -eyey, -eyez);
}
函数ugluLookAtf(eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz){
var forward=新阵列(3);
var侧=新阵列(3);
var up=新阵列(3);
var m=新数组(4);
对于(变量i=0;i
被调用时使用:ugluLookAtf(0,0,-10,0,0,0,0,1,0)代码>
但我什么也看不到,所以我认为这是我的glulookat函数
我的问题是,我是否正确地计算了glulookat?因为这是javascript,glMultMatrixf(m[0][0])
没有意义。只有左上角的数字,glMultMatrixf
能做什么
C版本接受一个指针,它可以通过增加指针来获取矩阵的其他元素。在Javascript中,这不起作用