很早打算系统的学习一下opengl,但是由于课程以及学习算法占据了时间,一直没能开始,现在这段时间开始弄opengl了,这几天看正在看《Opengl 编程指南 第8版》,首先看了GLSL写shader。这里先使用固定管线写个简单的小例子试试,然后开始进行可编程管线。
这个小例子很简单,就是在2D平面画个正方形,然后左右移动。
思路很简单,主要是两个函数,draw 和 move,draw负责绘制,move负责移动的控制,然后设置两个回调函数,glutDisplayFunc和glutIdleFunc,这样在空闲的时候就会调用move函数,设置移动信息,然后发送一个重新显示的信号,这样就能回调draw函数进行在移动后的新位置重新绘制。
#include <gl/glew.h>
#include <gl/glut.h>
#include <iostream>
#include <cstdlib>
using namespace std;
GLfloat rtx = 0, rty = 0, rtz = 0;
void init()
{
glLoadIdentity();
glClearColor(0.0, 0.0, 0.0, 0.0);
}
void draw(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glTranslatef(rt