Lesson10-相机


官方效果展示

例子中的节点结构 请参考 第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() );
    }
},

这里相机变换主要是通过矩阵赋值进行