1lookAt函数的格式为lookAt(eye,at,up),at与eye的差作为光线方向
2JavaScript中at与up必须定义为const常量,原因不明
3lookAt函数实则为模视变换的另一种写法
4在MV.js中lookAt的原型定义如下:
function lookAt( eye, at, up )
{
if ( !Array.isArray(eye) || eye.length != 3) {
throw “lookAt(): first parameter [eye] must be an a vec3”;
}
if ( !Array.isArray(at) || at.length != 3) {
throw "lookAt(): first parameter [at] must be an a vec3";
}
if ( !Array.isArray(up) || up.length != 3) {
throw "lookAt(): first parameter [up] must be an a vec3";
}
if ( equal(eye, at) ) {
return mat4();
}
var v = normalize( subtract(at, eye) ); // view direction vector
var n = normalize( cross(v, up) ); // perpendicular vector
var u = normalize( cross(n, v) ); // "new" up vector
v = negate( v );
var result = mat4(
vec4( n, -dot(n, eye) ),
vec4( u, -dot(u, eye) ),
vec4( v, -dot(v, eye) ),
vec4()
);
return result;
}
5要知道为什么这么定义第一步要搞清楚webGl中默认的投影方式是怎样的