一直想要学习的但是没有学习的东西,大学一直在等待这个时间,终于可以闲下来研究一下这个部分的内容了。

计算机图形学,让计算机处理各种图像的东西,里面也存在很多算法和数学知识,很值得研究的一个领域,之前一直混迹在各种Web和服务器之中,终于可以学一些感觉很酷的东西。其实Web服务器也很酷。

我准备的运行环境还是比较简单的,是Win10操作系统,VS2015的开发环境。因为这种方式配置简单一些,之前试过使用GCC作为编译器和CFree作为开发环境,一直不成功,于是就用开了VC开发。

环境配置的过程是在网上百度的,内容没有什么技术含量,那么久开始看第一个代码吧。

一般都是从Hello World开始的,但是OpenGL还是从画一个方框开始吧:

 1 #include <GL/glut.h>
 2 void myDisplay() {
 3     glClearColor(0.0, 0.0, 0.0, 0.0);
 4     glClear(GL_COLOR_BUFFER_BIT);
 5
 6     glColor3f(1.0f, 1.0f, 1.0f);
 7     glRectf(-0.5, -0.5, 0.5, 0.5f);
 8
 9     glBegin(GL_TRIANGLES);
10     glColor3f(1.0f, 0.0f, 0.0f);
11     glColor3f(0.0f, 1.0f, 0.0f);
12     glColor3f(0.0f, 0.0f, 1.0f);
13     glEnd();
14
15     glPointSize(3);
16     glBegin(GL_POINT);
17     glColor3f(1.0f, 0.0f, 0.0f);
18     glColor3f(0.0f, 1.0f, 0.0f);
19     glColor3f(0.0f, 0.0f, 1.0f);
20     glEnd();
21
22     glFlush();
23 }
24
25 int main(int argc,char* argv[]) {
26     glutInit(&argc, argv);
27     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
28     glutInitWindowPosition(100, 100);
29     glutInitWindowSize(400,400);
30     glutCreateWindow("hello world");
31     glutDisplayFunc(&myDisplay);
32     glutMainLoop();
33     return 0;
34 }

这个程序的作用是画一个白色的方框,下面分析一下这个代码:

在对于OpenGL中会有下面几个操作,比较基础和固定:

 1 int main(int argc,char* argv[]) {
 2     //对GLUT进行初始化,函数必须在其他GLUT使用之前调用一次,固定格式。
 3     glutInit(&argc, argv);
 4     //设置显示方式,RGB为RGB颜色,还有INDEX索引颜色,SINGLE单缓冲,DOUBLE双缓冲
 5     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
 6     //在屏幕出现的位置
 7     glutInitWindowPosition(100, 100);
 8     //窗口的大小
 9     glutInitWindowSize(400,400);
10     //创建窗口,标题为“helloworld”,而且这个窗口创建之后不会立即显示在屏幕上,必须调用了glutMainLoop()才会显示在屏幕上
11     glutCreateWindow("hello world");
12     //设置一个函数,画图是调用这个函数
13     glutDisplayFunc(&myDisplay);
14     glutMainLoop();
15     return 0;
16 }

 1 //画图的函数
 2 void myDisplay() {
 3     //清空颜色为黑色,就是不显示图像的地方为黑色
 4     glClearColor(0.0, 0.0, 0.0, 0.0);
 5     //设置背景为清空颜色
 6     glClear(GL_COLOR_BUFFER_BIT);
 7
 8     glColor3f(1.0f, 1.0f, 1.0f);
 9
10     //画图,画一个矩形
11     glRectf(-0.5, -0.5, 0.5, 0.5f);
12
13
14
15     /*
16     glBegin(GL_TRIANGLES);
17     glColor3f(1.0f, 0.0f, 0.0f);
18     glColor3f(0.0f, 1.0f, 0.0f);
19     glColor3f(0.0f, 0.0f, 1.0f);
20     glEnd();
21
22     glPointSize(3);
23     glBegin(GL_POINT);
24     glColor3f(1.0f, 0.0f, 0.0f);
25     glColor3f(0.0f, 1.0f, 0.0f);
26     glColor3f(0.0f, 0.0f, 1.0f);
27     glEnd();
28
29     */
30
31
32     //保证前面的命令立即执行
33     glFlush();
34 }

转载于:https://www.cnblogs.com/Summer7C/p/5922515.html

OpenGL的简单研究-开端相关推荐

  1. OpenGL simpletexture简单的纹理的实例

    OpenGL simpletexture简单的纹理 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <vmath.h> #includ ...

  2. OpenGL ES 简单教程

    OpenGL ES 简单教程 2014-04-24 13:35 佚名 apkbus 字号:T | T 什么是OpenGL ES?OpenGL ES (为OpenGL for Embedded Syst ...

  3. 简单研究用于监控数通设备的Zabbix模板:Template Module Interfaces SNMP与Template Module EtherLike-MIB SNMP

    本人的工作环境中已经有一套Zabbix平台用于监控1000台数量以上的交换机,该运维平台主要有如下作用: 查找某个区域的某台设备IP地址以方便管理员远程登录.查看/修改设备配置: 通过SNMP检测设备 ...

  4. [转载]3721驻留机制简单研究

    [转载]3721的驻留机制简单研究 Quaful@水木清华 简单研究了一下3721的机制,写在这里,作为心得笔记吧.大部分收获都来自 Softice + 反汇编,不一定适用于某些版本. 1. CnsM ...

  5. 泰山OFFICE技术讲座:竖排时中文标点的简单研究

    中文标点有两类,横排和竖排.那么,在竖排时,会产生什么差异呢?是否会因为竖排标点,产生布局的差异?于是进行了简单研究: 横排时,竖排标点,作为普通字符对待,没有特殊处理. 竖排时,竖排标点还是作为普通 ...

  6. 实验二:OpenGL的简单动画

    实验二:OpenGL的简单动画 一.实验目的 1.掌握OpenGL的闲置函数. 2.掌握OpenGL的时间函数. 3.掌握OpenGL的简单动画功能. 4.了解OpengGL裁剪窗口.视区.显示窗 口 ...

  7. OpenGL之简单渲染一个三角形

    一.资源准备 环境准备:本文是基于OpenGL的开发环境搭建完成的情况下,进行一些简单图形的渲染和显示(macOS的OpenGL环境搭建,详情可参考我之前的文章:OpenGL在macOS上的环境搭建) ...

  8. 对List.Sort的简单研究

    最近一直忙着修改项目中的bug,特别是一些绑定的列表排序,因为是中途加入的,所以我一般不改变别人的存储过程或者类方法,只在需要的时候帮其排序一下,不过非常郁闷...... 为什么呢???存储过程用得是 ...

  9. 使用cle 调用opengl的简单例子(android)

    使用Using common language extension(cle)作为接口组件,编程能够得到很大简化.下面是一个调用opengl的例子,是从ndk example hello-gl2.修改而 ...

最新文章

  1. php数组的奇数_用php输出一个数组中的偶数或奇数的方法
  2. JQuery自定义插件详解之Banner图滚动插件
  3. Leetcode1694. 重新格式化电话号码[C++题解]:字符串模拟题
  4. Hadoop2.6.0子项目hadoop-mapreduce-examples的简单介绍
  5. Oracle 外连接和 (+)号的用法
  6. 多年前的树莓派 B+ 重新工作
  7. Markdown简单上手
  8. 2017.9.6 外星人 思考记录
  9. 马云后悔创办阿里:想停根本停不下来;人民日报评“滴滴顺风车争议”;jQuery 曝漏洞|极客头条...
  10. ubuntu 安装nvidia 驱动后无法进入桌面(循环进入登录界面 )
  11. SharePoint Designer 2010中的外部内容类型-SQL Server
  12. Maven 设置本地仓库的地址
  13. Silverlight学习笔记四BusyIndicator控件(进度条)
  14. 计算机英语词汇带音标,常用计算机英语词汇3000例(含音标)
  15. 网页数据提取----网络投票软件开发
  16. Python计算经济距离权重矩阵
  17. 看我拿下域控-cve2020-1472-Netlogon
  18. opencv 提取彩色图像轮廓
  19. shawl.qiu Javascript 前景色背景色调色类 / BgColorScheme v1.0
  20. 果园大二下英方课学习姿势

热门文章

  1. HDU4084 插头dp
  2. Java系列: JAVA字符串格式化-String.format()的使用(zz)
  3. 看清上市公司的财务分析
  4. 工作中用到的java反射机制_(转)JAVA-反射机制的使用
  5. leetcode算法题--二叉树中和为某一值的路径
  6. leetcode算法题--对称的二叉树
  7. OpenStack Neutron浅析(二)
  8. java ocr识别pdf_如何知道PDF是否仅包含图像还是已经过OCR扫描以进行搜索?
  9. Machine Learning-Introduction
  10. Squid正向代理矩阵