OpenGL實例教程12:攝像機移動
前面學習了如何放置相機。下一步是允許用戶控制它??刂葡鄼C將使用兩個輸入設備:
鍵盤,控制位置
鼠標,改變朝向
本節(jié)只介紹通過鍵盤控制位置,下一節(jié)將介紹如何通過鼠標控制朝向。最終將實現(xiàn)類似第一人稱視角射擊游戲的效果:

通過鍵盤移動位置
我們將以傳統(tǒng)的方式支持四個方向鍵。相機變換是由位置、目標和向上向量定義的。當使用鍵盤移動時,只改變了位置。不能傾斜相機或旋轉(zhuǎn)它,目標和向上向量將不受影響。
為了控制鍵盤,將使用另一個GLUT API: glutSpecialFunc()。該函數(shù)注冊了一個回調(diào)函數(shù),當單擊“特殊”鍵時觸發(fā)。特殊鍵包括:功能鍵、方向鍵、上頁鍵、下頁鍵、首頁鍵、結(jié)束鍵、插入鍵。如果想捕獲普通鍵(字符和數(shù)字),請使用glutKeyboardFunc()。
Camera庫:
camera.h
camera.cpp
前后移動比較簡單,左右移動將使用叉乘,通過右手法則可以判斷方向。

應用程序?qū)崿F(xiàn)代碼:
標簽: