博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【OpenGL 学习笔记01】HelloWorld演示样例
阅读量:6340 次
发布时间:2019-06-22

本文共 1868 字,大约阅读时间需要 6 分钟。

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比較踏实,哈哈。
我的主题是,好记性不如烂笔头。
================================================================

1. 下载glut库

glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
glut全称为:OpenGL Utility Toolkit。也就是OpenGL应用工具包。它建立在OpenGL基础之上。方便开发OpenGL的某些功能,比方我们后面要创建的Windows程序,就能够用glut来方便地构建起一个初始化的Windows程序。

2. 安装glut库

为了能使用glut库,我们解压开这个zip包,会发现当中包括例如以下几个文件。我们须要复制一下下面几个文件:
glut.h:头文件,拷贝到D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\gl文件夹下(须要自己来新建gl文件夹)
glut.lib,glut32.lib:静态链接库。拷贝到D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib文件夹下
glut.dll,glut32.dll:动态链接库。拷贝到C:\Windows\System32文件夹下。64位操作系统的,还须要拷贝到C:\Windows\SysWOW64文件夹下。

3.创建project

创建一个win32应用控制台project。

4.HelloWorld演示样例

#include 
void display(void){ glClear (GL_COLOR_BUFFER_BIT); //清除颜色缓冲区 glColor3f (1.0, 1.0, 1.0); //设置绘制的颜色为白色(红。绿,蓝,) glBegin(GL_POLYGON); //标志着一个顶点数据列表的開始。GL_POLYGON表示绘制简单的凸多边形 glVertex3f (0.25, 0.25, 0.0); glVertex3f (0.75, 0.25, 0.0); glVertex3f (0.75, 0.75, 0.0); glVertex3f (0.25, 0.75, 0.0); glEnd(); //标志着一个顶点数据列表的结束 glFlush ();}void init (void) { glClearColor (0.0, 0.0, 0.0, 0.0); //设置窗体将被清除成黑色 glMatrixMode(GL_PROJECTION); //将当前矩阵指定为投影矩阵 glLoadIdentity(); //把当前矩阵设为单位矩阵 glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);//指定绘制图像时使用的坐标系统 glOrtho(Xmin,Xmax,Ymin,Ymax,Zmin,Zmax); }int main(int argc, char** argv){ //初始化gult glutInit(&argc, argv); //指定使用RGBA模式还是颜色索引模式,单缓冲还是双缓冲。

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); //指定窗体大小(像素为单位) glutInitWindowSize (250, 250); //左上角位置 glutInitWindowPosition (100, 100); //创建窗体,glutMainLoop()之后才会显示 glutCreateWindow ("hello"); //初始化一次 init (); //显示回调函数,当glut确定窗体须要重绘时。回调函数会运行。

//因此场景重绘代码应该放在这里 glutDisplayFunc(display); //启动程序。 glutMainLoop(); return 0; }

5.效果图

你可能感兴趣的文章
Record && Limit
查看>>
nginx 502 bad gateway
查看>>
3.本地集群部署与压力测试
查看>>
ubuntu 下jdk安装配置
查看>>
C语言课设——电影院选票系统
查看>>
[转]Oracle Hidden Parameter:_allow_resetlogs_corruption
查看>>
Component类应用
查看>>
NYOJ289 苹果
查看>>
ASP.NET Web API Model-ParameterBinding
查看>>
在String()构造器不存在的情况下自定义一个MyString()函数,实现如下内建String()方法和属性:...
查看>>
痞子衡嵌入式:忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)
查看>>
HDU——4738 Caocao's Bridges
查看>>
函数名与函数指针
查看>>
gnuplot examples
查看>>
javascript高级编程3第二章:在html中使用javascript
查看>>
windows 操作各种快捷键
查看>>
jmap dump文件压缩后失效
查看>>
less和scss
查看>>
mariadb索引、视图、关联查询、备份恢复、外键
查看>>
为什么很多 Android 程序喜欢在存储卡根目录建文件夹来存储数据而不是 Android/data 目录下?...
查看>>