OpenGl环境搭建容易劝退新手,那就找一条最简单的路
msvc里面有管理NuGet程序包
打开后搜索nupengl,安装下面两个库,在后续编程中就可以直接使用opengl的一些库,而不用配置其他额外的东西
在源文件中创建一个新的Cpp文件
粘贴如下代码,该代码实现了一个小块在屏幕上面的移动,按方向键操控,注释我尽量已经写的详细:
#include<Gl/glut.h>
GLfloat xoffset = 0.0f, yoffset = 0.0f;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0, 0, 1);
glViewport(xoffset, yoffset, 400, 400); //前面两个变量为偏移量,后面的位置是在窗体的坐标
glRectf(200,200,240,240);
glutSwapBuffers(); //交换缓冲区指针或者地址
}
void SpecialKey(GLint key, GLint x, GLint y) //GLint的原定义为int
{
if(key==GLUT_KEY_UP)
{
yoffset += 10;
}
if (key == GLUT_KEY_DOWN)
{
yoffset -= 10;
}
if (key == GLUT_KEY_LEFT)
{
xoffset -= 10;
}
if (key == GLUT_KEY_RIGHT)
{
xoffset += 10;
}
display();
}
//glClear函数的使用
//GL_COLOR_BUFFER_BIT:当前可写的颜色缓冲
//GL_DEPTH_BUFFER_BIT:深度缓冲
//GL_ACCUM_BUFFER_BIT:累计缓冲
//GL_STENCIL_BUFFER_BIT:模板缓冲
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); //第一个参数为双缓冲窗口,第二个参数为颜色模式,GLUT_SINGLE是开启单缓冲模式
//单缓冲直接在屏幕上面绘图较慢,双缓冲开到缓冲区比较快,最后开启深度缓存,被遮挡像素也在缓存中渲染
glutCreateWindow("MAXOpenGlTEST");
glutInitWindowPosition(80, 80);
glutInitWindowSize(800, 600);
glClearColor(1, 1, 1, 1);//用白色刷新缓存区
glMatrixMode(GL_PROJECTION);//对投影矩阵应用随后的矩阵操作
glLoadIdentity();//重定义单位矩阵
gluOrtho2D(0, 400, 0, 400); //绘制模型的显示范围
glutDisplayFunc(&display);
glutSpecialFunc(&SpecialKey);
glutMainLoop();
}
然后程序直接运行,就可以看到如下画面,可用方向键操控移动: