OpenGL简介

原创 2005年02月27日 00:12:00

OpenGL简介

OpenGL是目前用于开发可移植的、可交互的2D3D图形应用程序的首选环境,也是目前应用最广泛的计算机图形标准。OpenGLSGI公司开发的一套的计算机图形处理系统,是图形硬件的软件接口,GL代表图形库(Graphics Library)。OpenGL具有可移植性,任何一个OpenGL应用程序无须考虑其运行环境所在平台与操作系统,在任何一个遵循OpenGL标准的环境下都会产生相同的可视效果。

OpenGL不是一种编程语言,而是一种APIApplication Programming Interface,应用程序编程接口)。当我们说某个程序是基于OpenGL的或者说它是个OpenGL程序是,意思是说它是用某种编程语言如CC++编写的,其中调用了一个或多个OpenGL库函数。作为一种APIOpenGL遵循C语言的调用约定。

OpenGL主要包括三个函数库,它们是核心库、实用函数库和编程辅助库。核心库中包含了OpenGL最基本的命令函数。核心库提供了一百多个函数,这些函数都以”gl”为前缀,用来建立各种各样的几何模型、进行坐标变换、产生光照效果、进行纹理映射、产生雾化效果等所有的二维和三维图形操作。实用函数库是比核心库更高一层的函数库,它提供四十多个函数,这些函数都以”glu”为前缀。由于OpenGL是一个图形标准,是独立于任何窗口系统或操作系统的,在OpenGL中没有提供窗口管理和消息事件响应的函数,也没有鼠标和键盘读取事件的功能,所以在编程辅助库提供了一些基本的窗口管理函数、事件处理函数和简单的事件函数。这类函数以”aux”作为前缀。值得一提的是,目前AUX编程辅助库已经很大程度上被GLUT库取代了。以下介绍以GLUT库为例。

      GLUT代表OpenGL应用工具包(OpenGL Utility Toolkit),是一个与窗口系统无关的工具包。它作为AUX库的功能更强的替代品,用于隐藏不同窗口系统API的复杂性。GLUT的子程序的前缀使用”glut”

一、下面以windowsvisualC++为例介绍使用预编译库进行安装的过程:

1)将gult32.dll复制到windows系统system32

2)将gult32.lib复制到vclib目录下

3)将gult.h复制到vcinclude/GL

二、一个简单的OpenGL程序

#include <windows.h>

#include <gl/glut.h>

 

//绘图子程序

void display( void ) {

       glClearColor( 1.0f,1.0f,1.0f,1.0f );              // 设置清除窗口时将窗口设为白色

       glClear( GL_COLOR_BUFFER_BIT );// 执行窗口清理

       glFlush();       // 刷新OpenGL中的命令队列和缓冲区,使所有尚未被执行的命令执行

}

 

void main( int argc,char** argv ) {

       glutInit( &argc, argv );         // 初始化GLUT

       glutInitDisplayMode( GLUT_SINGLE| GLUT_RGB ); // 显示模式

       glutCreateWindow( "Hello OpenGL!" ); // 创建一个窗口,参数为窗口的标题

       glutDisplayFunc( display );           // 绘制当前窗口

       glutMainLoop();//通常用于程序的结尾,表示开始运行程序.显示出所有创建的窗口

}

 

【Modern OpenGL】OpenGL简介

在早些时候,使用OpenGL意味着使用立即渲染模式(immediate mode,也被叫做固定功能流水线),这是一种简单易用的图形绘制模式。在这种模式中,大多数OpenGL的功能都被隐藏在库中,而(使...
  • aganlengzi
  • aganlengzi
  • 2015年12月18日 20:51
  • 1141

OpenGL学习(一) OpenGL简介

OpenGL简介 OpenGL主要特点和功能 OpenGL的工作流程 OpenGL开发库的基本组成 一个简单的OpengGL程序 OpenGL函数的语法 OpenGL是一个状态机 OpenGL渲染管线...
  • u011251225
  • u011251225
  • 2016年03月23日 21:32
  • 544

OpenGL 库 简介

OpenGL 库 简介       OpenGL库函数的命名方式为:。库前缀有gl、glu、aux、glut、wgl、glx、agl等等,表示该函数属于OpenGL哪个库。参数的类型:I代表int型,...
  • Augusdi
  • Augusdi
  • 2014年04月17日 11:00
  • 1680

OpenGL---GLUT教程(一) GLUT简介,体系

                                            GLUT 教程                                            体系 GL...
  • xie_zi
  • xie_zi
  • 2007年12月02日 00:36
  • 11634

SPH算法简介(四):Hello,SPH

SPH算法简介(四):Hello,SPH 2011年04月2日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com     上几节,我们推导出一大推复杂无比的公式,似...
  • changbaolong
  • changbaolong
  • 2013年11月06日 15:12
  • 3217

OpenGL es 流水线与驱动

一、OpenGL ES Pipeline的概念: OpenGL es 流水线就是将用户输入的3D数据经过一系列的处理最终生成用户在屏幕上看到的3D图像。这一过程由一系列专业的模块组成,如下图所示。 ...
  • hudfang
  • hudfang
  • 2015年12月08日 09:46
  • 1061

OpenGL开发工具

OpenGL是由SGI公司开发的一套3D图形软件接口标准,由于具有体系结构简单合理、使用方便、与操作平台无关等优点,OpenGL迅速成为一种3D图形接口的工业标准,并陆续在各种平台上得以实现。作为一个...
  • yqxx
  • yqxx
  • 2005年06月05日 10:17
  • 3845

OpenGL API简介

转自http://blog.csdn.net/menguio/article/details/6112733
  • zjccoder
  • zjccoder
  • 2014年10月13日 11:27
  • 1931

opengl介绍

OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include 吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然...
  • dongshengzou95
  • dongshengzou95
  • 2015年08月27日 11:18
  • 1041

OpenGL缓冲区对象之VAO

OpenGL VAO缓冲区介绍
  • csxiaoshui
  • csxiaoshui
  • 2016年11月17日 15:34
  • 1509
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenGL简介
举报原因:
原因补充:

(最多只允许输入30个字)