例子中的节点结构 请参考 第8课-多光源
知识点
相机变换
cameraUpdate: function ( /*currentTime, node, nv*/) {
if ( orientationInfo.deviceOrientation ) {
this._deviceMatrix = computeMatrix();
var m = this._deviceMatrix;
// [ m11, m12, m13, m21, m22, m23, m31, m32, m33 ]
//to
// [ m11, m12, m13, 0.0, m21, m22, m23, 0.0, m31, m32, m33, 0.0, 0.0, 0.0, 0.0, 1.0]
this._inv = [ m[ 0 ], m[ 1 ], m[ 2 ], 0.0, m[ 3 ], m[ 4 ], m[ 5 ], 0.0, m[ 6 ], m[ 7 ], m[ 8 ], 0.0, 0.0, 0.0, 0.0, 1.0 ];
osg.Matrix.inverse4x3( this._inv, this._inverseDeviceMatrix );
osg.Matrix.copy( this._inverseDeviceMatrix, viewer.getCamera().getViewMatrix() );
// osg.Matrix.copy( this._inv, viewer.getCamera().getViewMatrix() );
}
},
这里相机变换主要是通过矩阵赋值进行