通過OpenGL自己繪製按鈕,菜單,可以自己貼圖,可以自己構建很炫的GUI。我這裏只是做了一個最原始的模型, 沒有增加貼圖。
程序實現思路:通過正交變換繪製出按鈕cube, 然後重置投影視圖矩陣,轉入場景繪製。具體在display函數裏。
主要想想說一下幾個細節問題:
1,正交投影的座標系原點位於左下角, 而透視投影座標系原點位於窗口中心。
2,mouse函數參數x,y分別是鼠標的座標,鼠標的座標系是:窗口左上角爲原點。所以在驗證鼠標是否在按鈕上時,必須先進行座標變換。
3,按鈕被按下時,增加了反饋:按鈕會被縮小爲glScalef(0.9, 0.9, 1.0);
運行效果,按了白色小按鈕,線框cube會旋轉個角度。
下面是基於glut+OpenGL的程序源碼: