Ogre攝像機Camera類

2021-06-16 03:58:08 字數 3269 閱讀 9798

對攝象機的抽象。成員函式說明如下:

標準建構函式

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...