通过OpenGL自己绘制按钮,菜单,可以自己贴图,可以自己构建很炫的GUI。我这里只是做了一个最原始的模型, 没有增加贴图。
程序实现思路:通过正交变换绘制出按钮cube, 然后重置投影视图矩阵,转入场景绘制。具体在display函数里。
主要想想说一下几个细节问题:
1,正交投影的坐标系原点位于左下角, 而透视投影坐标系原点位于窗口中心。
2,mouse函数参数x,y分别是鼠标的坐标,鼠标的坐标系是:窗口左上角为原点。所以在验证鼠标是否在按钮上时,必须先进行坐标变换。
3,按钮被按下时,增加了反馈:按钮会被缩小为glScalef(0.9, 0.9, 1.0);
运行效果,按了白色小按钮,线框cube会旋转个角度。
下面是基于glut+OpenGL的程序源码: