【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.效果图

时间: 2024-10-11 10:38:50

【OpenGL 学习笔记01】HelloWorld演示样例的相关文章

【opengl 学习笔记01】HelloWorld示例

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit

c语言学习之结构篇代码演示样例-输入n个同学的姓名,数学英语成绩,依照平均分从低到高排序并输出

#include<stdio.h> void main(){ const int count = 5;//定义数量 struct student{ char name[80]; float math,eng; float aver; }stu[count],temp; //输入 for (int i = 0; i < count; i++){ scanf("%s%f%f", stu[i].name, &stu[i].math, &stu[i].eng)

OpenGL 学习笔记 01

OpenGL太可怕了...必需得把学的记下来,不然绝壁忘. 首先贴出代码,然后分析创建一个OpenGL程序都需要什么 1 #include <cstdio> 2 #include <cstdlib> 3 4 #include <GL/glew.h> 5 6 #include <GLFW/glfw3.h> 7 8 #include <glm/glm.hpp> 9 #include <glm/gtc/matrix_transform.hpp&g

Android利用Volley异步载入数据完整具体演示样例(二)

MainActivity例如以下: package cc.y; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.util.LruCache; import android.widget.ImageVie

最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)

===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样例

最简单的视音频播放演示样例7:SDL2播放RGB/YUV

===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样例

Java 8 时间日期库的20个使用演示样例

除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务演示样例来学习怎样使用Java 8的这套API.Java对日期,日历及时间的处理一直以来都饱受诟病.尤其是它决定将java.util.Date定义为可改动的以及将SimpleDateFormat实现成非线程安全的. 看来Java已经意识到须要为时间及日期功能提供更好的支持了,这对已经习惯使用Joda时间日期库的社区而言也是件好事. 关于这个新的时间日期库的最

OpenGL学习笔记:拾取与选择

转自:OpenGL学习笔记:拾取与选择 在开发OpenGL程序时,一个重要的问题就是互动,假设一个场景里面有很多元素,当用鼠标点击不同元素时,期待作出不同的反应,那么在OpenGL里面,是怎么知道我当前鼠标的位置是哪一个物体呢? OpenGL有一套机制,叫做Picking, 里面涉及到几个核心概念: 1. selection mode. 选择模式 2. name stack. 名字栈 3. hit record. 命中记录 4. viewing volume. 视角范围 在OpenGL的pick

java设计模式演示样例

创建模式 1.工厂方法模式(Factory Method)  将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到详细的子类.大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式. public class TestFactoryMethod { public static void main(String[] args) { AnimalFactory af=new DogFactory(); Animal1 a=af.getAnima