首先然我们看一下 Camera 的定义:
class _OgreExport Camera : public MovableObject
{
protected:
/// Camera orientation, quaternion style
Quaternion mOrientation;
/// Camera position - default (0,0,0)
Vector3 mPosition;
/// Stored versions of parent orientation / position
mutable Quaternion mLastParentOrientation;
mutable Vector3 mLastParentPosition;
/// Derived positions of parent orientation / position
mutable Quaternion mDerivedOrientation;
mutable Vector3 mDerivedPosition;
/// Camera y-direction field-of-view (default 45)
Real mFOVy;
/// Far clip distance - default 10000
Real mFarDist;
/// Near clip distance - default 100
Real mNearDist;
/// x/y viewport ratio - default 1.3333
Real mAspect;
/// Whether to yaw around a fixed axis.
bool mYawFixed;
/// Fixed axis to yaw around
Vector3 mYawFixedAxis;
/// The 6 main clipping planes
mutable Plane mFrustumPlanes[6];
/// Orthographic or perspective?
ProjectionType mProjType;
/// Rendering type
SceneDetailLevel mSceneDetail;
Camera 的主要作用:Camera control、特定的拍摄手法(聚焦等^_^,这主要是通
过改变投影方式的)、Frustum Cull,上面的代码中用了三种不同的颜色来表示三种功
能的数据结构。
Camera Control 用于控制摄影机的轨迹(例如:平移、旋转等,想象一下在拍电
影的时候,摄影机是怎么移动的);特定的拍摄手法主要是改变距离来改变成像的大小