假期作业:用OpenGL做一个飞机大战小游戏。
于是开始了OpenGL的学习之旅。
但是在网上找资料时,发现都是深入研究OpenGL的,而做一个简单的小游戏不需要用得过于深入,如果一直跟着学下去,最后可能会精通OpenGL,但做游戏,似乎不太可能。于是就一边摸索一边记录,希望对初学OpenGL的人,以及和我一样目标的同学,有所帮助,同时也巩固自己的知识。
虽说是要做游戏,但OpenGL的基础还是要学会的,所以先学习一些OpenGL的基本内容。
最开始的一些知识,就看这位大神的博客吧,写得非常好,可惜只写了前面一部分,后面的只能自己摸索了,https://www.cnblogs.com/gl5773477/p/4007350.html
链接中包含OpenGL部分的内容如下:
坐标变换这一部分后来我自己写了一点,有兴趣也可以看我的,嘻嘻。
一些小点:
1.glPointSize不能放在glBegin和glEnd里,否则画不出点来。
代码解释:
错误示例:
glBegin(GL_POINTS);
glPointSize(6);
glColor3f(1,1,0);
for(int i=0;i<19;i++){
glColor3f(0,1-i*0.01,0);
glVertex2f(0.1+i*0.01,0.5-0.02*i);
}
glEnd();
正确示例:
glPointSize(6);
glBegin(GL_POINTS);
glColor3f(1,1,0);
for(int i=0;i<19;i++){
glColor3f(0,1-i*0.01,0);
glVertex2f(0.1+i*0.01,0.5-0.02*i);
}
glEnd();
2.GL_POINTS,写成GL_POINT的话界面上不会画点出来。
GL_LINES也是如此。
千万记得s,千万记得s,千万记得s。
代码直接用上面的
glBegin(GL_POINTS);//GL_POINTS,写成GL_POINT就没点了,千万记得s,千万记得s,千万记得s
glColor3f(1,1,0);
for(int i=0;i<19;i++){
glColor3f(0,1-i*0.01,0);
glVertex2f(0.1+i*0.01,0.5-0.02*i);
}
glEnd();
3.之后遇到再补充。