對攝象機的抽象。成員函式說明如下:
標準建構函式
camera(string name, scenemanager* sm);
標準析構函式
virtual ~camera();
返回渲染該攝像機的
scenemanager
的指標scenemanager* getscenemanager(void) const;
取得攝像機的名字
virtual const string& getname(void) const;
設定投影模式(正射或透視),預設為透視
void setprojectiontype(projectiontype pt);
取得使用的投影模式的資訊
projectiontype getprojectiontype(void) const;
設定該攝像機需要的渲染細節級別
void setdetaillevel(scenedetaillevel sd);
取得該攝像機的渲染細節級別
scenedetaillevel getdetaillevel(void) const;
設定攝像機的位置
void setposition(real x, real y, real z);
void setposition(const vector3& vec);
取得攝像機的位置
const vector3& getposition(void) const;
移動攝像機
void move(const vector3& vec);
void moverelative(const vector3& vec);
設定攝像機的方向向量
void setdirection(real x, real y, real z);
void setdirection(const vector3& vec);
取得攝像機的方向
vector3 getdirection(void) const;
這是乙個輔助方法用來自動計算攝像機的方向向量,在當前位置和所看的點,引數
targetpoint
是乙個向量指明所看的點。
void lookat( const vector3& targetpoint );
void lookat(real x, real y, real z);
將攝像機繞
z軸逆時針旋轉指定角度
void roll(real degrees); 繞
y軸逆時針旋轉指定角度
void yaw(real degrees); 繞
x軸上下逆時針旋轉
void pitch(real degrees);
旋轉任意角度
void rotate(const vector3& axis, real degrees);
使用四元組繞任意軸旋轉
void rotate(const quaternion& q);
指定攝像機是繞本地
y軸還是指定的固定軸旋轉
void setfixedyawaxis( bool usefixed, const vector3& fixedaxis = vector3::unit_y ); 設定
y方向的視野域,水平方向的視野域將依此計算
void setfovy(real fovy); 取得
y方向的視野域
real getfovy(void) const;
設定到近裁減面的距離
void setnearclipdistance(real neardist);
取得到近裁減面的距離
real getnearclipdistance(void) const;
設定到遠裁減面的距離
void setaspectratio(real ratio);
取得當前縱橫比
real getaspectratio(void) const;
內部使用,取得該攝像機的投影矩陣
const matrix4& getprojectionmatrix(void);
內部使用,取得該攝像機的觀察矩陣
const matrix4& getviewmatrix(void);
取得平截台體的特定面
const plane& getfrustumplane( frustumplane plane );
測試給定的包容器是否在平截台體中
bool isvisible(const axisalignedbox& bound, frustumplane* culledby = 0);
bool isvisible(const sphere& bound, frustumplane* culledby = 0);
測試給定的頂點是否在平截台體中
bool isvisible(const vector3& vert, frustumplane* culledby = 0);
返回攝像機的當前方向
const quaternion& getorientation(void) const;
設定攝像機的方向
void setorientation(const quaternion& q);
輸出流功能
friend std::ostream& operator<<(std::ostream& o, camera& c);
取得攝像機繼承的方向,包括從附著節點繼承的任何旋轉
quaternion getderivedorientation(void);
取得繼承的位置,包括從附著節點繼承的任何平移
vector3 getderivedposition(void);
取得繼承的方向向量
vector3 getderiveddirection(void); 覆蓋
movableobject
的方法void _notifycurrentcamera(camera* cam);
const axisalignedbox& getboundingbox(void) const;
void _updaterenderqueue(renderqueue* queue);
const string getmovabletype(void) const; 使能
/使不能自動跟蹤
scenenode
void setautotracking(bool enabled, scenenode* target = 0,
const vector3& offset = vector3::zero);
Android呼叫Camera攝像機拍照
我們可以使用兩類方法 一是借助intent 和mediastroe 呼叫系統 程式來實現拍照和攝像功能 二是根據 camera api 自寫camera 程式 如360的拍照軟體 這裡主要記錄第二點 1.新增許可權 必須在manifest 內宣告使用許可權,通常由以下三項 一般拍照和攝像的時候需要寫...
Unity3D 攝像機 Camera 屬性詳解
相機對於將你的遊戲顯示給玩家是必不可少的。它們可以被定製 被指令碼化 或被子類化以實現幾乎任何可以想象的效果。對於乙個益智遊戲,你要保持相機處於靜態顯示全部視角。對於第一人稱射擊遊戲,你應該將相機作為玩家角色的子物件,並將其放置在與角色的眼睛等高水平上。對於乙個賽車遊戲,你可能更希望讓相機跟隨玩家的...
Ogre學習筆記2 光源攝像機和陰影
mcamera mscenemgr createcamera playercam 同樣你也可以通過名稱獲取攝像機的指標,通過呼叫getcamera 函式 下面 我們移動攝像機的位置並且規定攝像機往 看。mcamera setposition ogre vector3 0,300,500 mcamer...