#include <windows.h> // windows系统要加这个。因为下面2个头文件的一些宏是在这个文件中定义的
#include <gl/Gl.h>
#include <gl/glut.h> //这两个头文件在OpenGL程序中几乎必加。//<<<<<<<<<<<<<<<<<<<<<<< myInit >>>>>>>>>>>>>>>>>>>> 初始化
void myInit(void)
{
glClearColor(1.0,1.0,0.0,0.9); // 设置背景色:白色。前三个参数分别代表红绿蓝分量。
glColor3f(1.0f, 0.0f, 0.0f); // set the drawing color
glPointSize(4.0); // 点的大小为4*4像素
glMatrixMode(GL_PROJECTION); //
glLoadIdentity();
gluOrtho2D(0.0, 640.0, 0.0, 480.0);// 指定绘图时采用的坐标系统
}
//<<<<<<<<<<<<<<<<<<<<<<<< myDisplay >>>>>>>>>>>>>>>>> 绘制
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); // 将屏幕清除为背景色glBegin(GL_POINTS);
glVertex2i(100, 50); // 这里我们画3个点。
glVertex2i(100, 130);
glVertex2i(150, 130);
glEnd();glBegin(GL_POLYGON);
glVertex2i(200, 50); // 这里我们画一个四边形
glVertex2i(200, 130);
glVertex2i(350, 230);
glVertex2i(350, 130);
glEnd();glFlush(); // send all output to display 把数据从缓冲区弄到屏幕上
}//<<<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>>
void main(int argc, char** argv)
{
glutInit(&argc, argv); // ***对GLUT进行初始化
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); // ***set display mode,单缓冲/双缓冲,颜色索引模式,深度等
glutInitWindowSize(640,480); // ***设置窗口大小
glutInitWindowPosition(0, 150); // ***设置窗口位置
glutCreateWindow("my first attempt"); // ***创建窗口
glutDisplayFunc(myDisplay); // 显示事件回调函数
myInit();
glutMainLoop(); // ***启动程序,检测事件并进行处理
}
目前我是根据以下2本书进行学习:
计算机图形学——用OpenGL实现 2nd edition
OpenGL编程指南 原书第6版
OpenGL学习笔记1 —— 画点