【OpenGL 学习笔记01】HelloWorld演示样例
<<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 <GL/glut.h> 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.效果图
【OpenGL 学习笔记01】HelloWorld演示样例的更多相关文章
- openWRT学习之LUCI之中的一个helloworld演示样例
备注1:本文 讲述的是原生的openWRT环境下的LUCI 备注2:本文參考了诸多资料.感谢网友分享.參考资料: http://www.cnblogs.com/zmkeil/archive/2013/ ...
- OpenGL 学习笔记 01 环境配置
以下教程仅适用于Mac下的Xcode编程环境!其他的我也不会搞. 推荐教程:opengl-tutorial 本项目Github网址 OpenGL太可怕了...必需得把学的记下来,不然绝壁 ...
- Solr 6.7学习笔记(03)-- 样例配置文件 solrconfig.xml
位于:${solr.home}\example\techproducts\solr\techproducts\conf\solrconfig.xml <?xml version="1. ...
- c语言学习之结构篇代码演示样例-输入n个同学的姓名,数学英语成绩,依照平均分从低到高排序并输出
#include<stdio.h> void main(){ const int count = 5;//定义数量 struct student{ char name[80]; float ...
- 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV
===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...
- Android利用Volley异步载入数据完整具体演示样例(二)
MainActivity例如以下: package cc.y; import android.app.Activity; import android.content.Context; import ...
- 模式识别 - 处理多演示样例学习(MIL)特征(matlab)
处理多演示样例学习(MIL)特征(matlab) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27206325 多演示样例学习( ...
- Tuxedo安装、配置、以及演示样例程序 (学习网址)
Tuxedo安装.配置.以及演示样例程序 (学习网址): 1.http://liu9403.iteye.com/blog/1415684 2.http://www.cnblogs.com/fnng/a ...
- 一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用演示样例
了解sql的朋友都知道,我们在查询的时候能够採用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理.这个联合查询的方式挺方便的.跟我们现实生活中的托人找关系类似,我们想要完毕一件 ...
随机推荐
- SQL Server 中使用 Try Catch 处理异常
CREATE TABLE ErrorLog( errNum INT, ErrSev ), ErrState INT, ErrProc ), ErrLine INT, ErrMsg ) ) CREATE ...
- 通过OpenGL ES在iOS平台实践增强现实
http://www.cnblogs.com/elvisyzhao/p/3398250.html 本文采用OpenGL ES 1固定渲染管线实现,目标为在设备拍摄到的现实世界中,绘制世界坐标轴,并根据 ...
- Sqlite 约束条件 Constraints
一.约束 Constraints 我们在数据库中存储数据的时候,有一些数据有明显的约束条件. 比如一所学校关于教师的数据表,其中的字段列可能有如下约束: 年龄 - 至少大于20岁.如果你想录入一个小于 ...
- 基于Xen实现一种domain0和domainU的应用层数据交互高效机制 - 3
继续 上一篇 的研究,结合 xen4.2.3 的代码分析,发现 xen4.2.3 的应用层工具库 tools 包含一个工具叫 libvchan ,其头文件描述如下: * This is a libra ...
- 将本地访问ip映射成域名
通过修改以下地址 C:\WINDOWS\system32\drivers\etc\hosts 加进你自己的如: 192.168.1.101 www.helloworld.com 配置nginx代理u ...
- 使用jquery实现省市二级列表
这里讲用到 jquery 的 each 遍历方法 追加 节点或元素方法 append appendTO 以及 remove 清除节点 <script> $(function( ...
- MVC中路由器程序
MVC中路由器程序编写方式如下例子 把地址:/home/add?id=1 改写成:/home/add/1 把地址:/home/edit?id=1&sid=2 改写成:/home/edit/1_ ...
- C# Quartz 整理
因项目需要,在C#中使用了定时程序.自然就使用了Quartz了 但是使用的时候,经过一段时间后,发现了两个重大问题,结果导致的是一样的,就是都导致了定时不会继续执行了. 第一个问题是,定时程序发布在I ...
- Guava源码学习(二)Ordering
基于版本:Guava 22.0 Wiki:Ordering 0. Ordering简介 Guava的Ordering提供了链式风格的比较器的实现,我们可以用Ordering轻松构建复杂的比较器. 1. ...
- centos 部署web项目
Linux下安装Tomcat服务器和部署Web应用 一.上传Tomcat服务器