
OpenGL
文章平均质量分 88
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
OpenGL中逆变换和模拟变换gluUnProject
逆变换和模拟变换 几何处理管线擅长于使用视图和投影矩阵以及用于裁剪的视口把顶点的世界坐标变换为窗口坐标.但是,在有些情况下,需要逆转这个过程.一种常见的情形是: 应用程序的用户利用鼠标选择三维空间中的一个位置.鼠标只返回一个二维值,也就是鼠标光标的屏幕位置.因此,应用程序必须逆转变换工程,确定这个屏幕位置源于三维空间的什么地方. OpenGL工具库函数gluUnProject原创 2010-05-10 15:59:00 · 7143 阅读 · 1 评论 -
OpenGL视景台
很多刚学OpenGL的朋友,都会对视景台的定义有很大的迷惑,这里以我的经验来解释一下,希望对大家有所帮助,void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);在这个函数中,有六下参数,这六个参数,都不是真实的世界坐标(虽然有些转载 2010-05-10 16:04:00 · 2520 阅读 · 0 评论 -
OpenGL基础图形编程 - Windows NT环境下的OpenGL
3.1、Windows NT下的OpenGL函数 如前面的章节所述,Windows NT下的OpenGL同样包含100多个库函数,这些函数都按一定的格式来命名,即每个函数都以gl开头。Windows NT下的OpenGL除了具有基本的OpenGL函数外,还支持其他四类函数:相应函数具体说明OpenGL实用库43个函数,每个函数以glu开头。Open转载 2010-05-10 18:50:00 · 1726 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL数据类型和函数名
OpenGL基础图形编程 - OpenGL数据类型和函数名OpenGL的数据类型定义可以与其它语言一致,但建议在ANSI C下最好使用以下定义的数据类型,例如GLint、GLfloat等。具体类型见表5-1。前缀 数据类型 相应C语言类型 OpenGL类型 ========================转载 2010-05-10 19:02:00 · 1968 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL颜色
几乎所有OpenGL应用目的都是在屏幕窗口内绘制彩色图形,所以颜色在OpenGL编程中占有很重要的地位。这里的颜色与绘画中的颜色概念不一样,它属于RGB颜色空间,只在监视器屏幕上显示。另外,屏幕窗口坐标是以象素为单位,因此组成图形的每个象素都有自己 的颜色,而这种颜色值是通过对一系列OpenGL函数命令的处理最终计算出来的。本章将讲述计算机颜色的概念以及OpenGL的颜色模式、颜色定义和两种模式应转载 2010-05-10 20:27:00 · 2225 阅读 · 0 评论 -
用MFC实现OpenGL编程
一、OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口。但最近几年它成为一个非常优秀的开放式三维图形接口。实际上它是图形软件和硬件的接口,它包括有120多个图形函数,"GL"是"GRAPHIC LIBRARY"的缩写,意思是“图形库”。OpenGL的出现使大多数的程序员能够在PC机上转载 2010-05-10 15:40:00 · 3588 阅读 · 0 评论 -
在vs2005下的第一个OpenGL程序
学习OpenGL前的准备工作 第一步,选择一个编译环境选择Visual Studio 2005作为学习OpenGL的环境。 第二步,配置OpenGL环境具体做法在前一篇中。建议将相应文件放到VC的文件夹下,而不是PlatformSDK中。 第三步,安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 W转载 2010-05-10 16:15:00 · 1879 阅读 · 0 评论 -
OpenGL两种投影方式
投影变换是一种很关键的图形变换,OpenGL中只提供了两种投影方式,一种是正射投影,另一种是透视投影。不管是调用哪种投影函数,为了避免不必要的变换,其前面必须加上以下两句: glMAtrixMode(GL_PROJECTION); glLoadIdentity(); 事实上,投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终图像只是视景体内的转载 2010-05-10 16:23:00 · 2457 阅读 · 0 评论 -
OPENGL中GLU和GLUT工具箱收藏
OPENGL中GLU和GLUT工具箱收藏GLUT工具箱提供几种图形3维图形的函数:void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); 丝状球void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); 实心球void glutWire转载 2010-05-10 16:26:00 · 2634 阅读 · 0 评论 -
基于MFC的OpenGL绘图
一、简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC)。一旦在一个线程中指定 了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC。虽然在单一窗口中可以转载 2010-05-10 16:32:00 · 2539 阅读 · 0 评论 -
OpenGL的工作步骤和OpenGL命令的语法规则
OpenGL的工作步骤OpenGL在屏幕上显示图形的主要步骤如下:1.构造几何要素(点、线、面、多边形、位图),创建对象的数学描述。2.在3D空间中放置对象,并选择适当的观察点。3.直接定义或由光照条件和贴图纹理给出对象的颜色。4.将对象的数学描述和颜色信息转换为屏幕上的像素。OpenGL命令的语法规则OpenGL的函数虽然多达几百个,但由于有一套非常规范的语法规则,应转载 2010-05-10 17:36:00 · 2045 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL基本程序结构
用OpenGL编写的程序结构类似于用其他语言编写的程序。实际上,OpenGL是一个丰富的三维图形函数库,编写OpenGL程序并非难事,只需在基本C语言中调用这些函数,用法同Turbo C、Microsoft C等类似,但也有许多不同之处。 本指南所有的程序都是在Windows NT的Microsoft Visual C++集成环境下编译连接的,其中有部分头文件和函数是为这个环境所用的,例如判别操转载 2010-05-10 18:52:00 · 2128 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL辅助库的基本使用
OpenGL是一个开放的系统,它是独立于任何窗口系统或操作系统的。尽管它包含了许多图形函数,但它却没有窗口函数,也没有从键盘和鼠标读取事件的函数,所以要初学者写出一个完整的图形程序是相当困难的。另外,OpenGL图形函数中只提供基本的几何原形:点、线、多边形,因此要创建基本的三维几何体如球、锥体等,也很不容易。而OpenGL辅助库就是为解决这些基本问题专门设计的,它提供了一些基本的窗口管理函数和三转载 2010-05-10 19:07:00 · 1781 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL建模
OpenGL基本库提供了大量绘制各种类型图元的方法,辅助库也提供了不少描述复杂三维图形的函数。这一章主要介绍基本图元,如点、线、多边形,有了这些图元,就可以建立比较复杂的模型了。7.1、描述图元 OpenGL是三维图形的函数库,它所定义的点、线、多边形等图元与一般的定义不太一样,存在一定的差别。对编程者来说,能否理解二者之间的差别十分重要。一种差别源于基于计算机计算的限制。OpenGL中所有浮点转载 2010-05-10 19:19:00 · 4287 阅读 · 0 评论 -
OpenGL基础图形编程 - 位图和图像
11.1、位图 11.1.1 位图(Bitmap)与字符(Font) 位图是以元素值为0或1的矩阵形式存储的,通常用于对窗口中相应区域的绘图屏蔽。比如说,当前颜色设置为红色,则在矩阵元素值为1的地方象素用红色来取代,反之,在为0的地方,对应的象素不受影响。位图普遍用于字符显示,请看下面例子: 例11-1 位图字符例程(font.c) #include #include #i转载 2010-05-10 21:28:00 · 2274 阅读 · 0 评论 -
OpenGL基础图形编程 - 纹理映射
12.1 基本步骤 纹理映射是一个相当复杂的过程,这节只简单地叙述一下最基本的执行纹理映射所需的步骤。基本步骤如下: 1)定义纹理、2)控制滤波、3)说明映射方式、4)绘制场景,给出顶点的纹理坐标和几何坐标。 注意:纹理映射只能在RGBA方式下执行,不能运用于颜色表方式。下面举出一个最简单的纹理映射应用例子: 例12-1 简单纹理映射应用例程(texsmpl.c) #includ转载 2010-05-11 09:51:00 · 4052 阅读 · 0 评论 -
OpenGL基础图形编程 - 复杂物体建模
13.1 图元扩展 13.1.1 点和线 下面分别介绍点和线的扩展形式及用法。 1)点。OpenGL中定义的点可以有不同的尺寸,其函数形式为: void glPointSize(GLfloat size); 设置点的宽度(以象素为单位)。参数size必须大于0.0,缺省时为1.0。 2)线。OpenGL能指定线的各种宽度和绘制不同的虚点线,如点线、虚线等。相应的函数形式如下: voi转载 2010-05-11 13:33:00 · 4811 阅读 · 2 评论 -
OpenGL基础图形编程 - 效果处理
15.1、融合 15.1.1 Alpha值与融合(Blending) Alpha值在前面几章中已经提到过,但是几乎所有例程都将它设置为1.0,没有详细讨论它为其它值时的情况。融合,是本章的重点,它是透明技术、数字合成和计算机绘画技术的核心。固名思义,融合就是指两种颜色各分量依据一定的比例混在一起合二为一。而这种比例就来源于Alpha值,即RGBA中的A或(r、g、b、a)中的a值,通常称a为不转载 2010-05-11 13:35:00 · 3016 阅读 · 0 评论 -
OpenGL入门学习
OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。2、强大的可移植性。微软的Direct3D虽然也是十分优秀的图形API,但它只用于Win转载 2010-05-10 16:20:00 · 1981 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL与3D图形世界
1.1、OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用一种最直接的形式来表示这些信息。 最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技术使我们能够再现三维世界中的物体,能够用三维形转载 2010-05-10 18:49:00 · 1726 阅读 · 2 评论 -
OpenGL基础图形编程 - OpenGL概念建立
2.1、OpenGL基本理解 OpenGL是一个与硬件图形发生器的软件接口,它包括了100多个图形操作函数,开发者可以利用这些函数来构造景物模型、进行三维图形交互软件的开发。正如上一章所述,OpenGL是一个高性能的图形开发软件包。OpenGL支持网络,在网络系统中用户可以在不同的图形终端上运行程序显示图形。OpenGL作为一个与硬件独立的图形接口,它不提供与硬件密切相关的设备操作函数,同时,它转载 2010-05-10 18:49:00 · 2069 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL变换
OpenGL变换是本篇的重点内容,它包括计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换,以及针对OpenGL的特殊变换概念理解和用法,如相机模拟、矩阵堆栈等。学好了这章,才开始真正走进三维世界。8.1、从三维空间到二维平面 8.1.1 相机模拟 在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世界中却必须以二维平面物体的形式表现出来。那么,这些物体是怎样转载 2010-05-10 19:39:00 · 4414 阅读 · 0 评论 -
OpenGL基础图形编程 - OpenGL光照
10.1、真实感图形基本概念 真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其它科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。一般说来,用计算机在图形设备上生成真实感图形必须完成以下四个步骤:一是用建模,即用一定的数学方法建立所需三维场景的几何描述,场景的几何描述直接影响图形的复杂性和图形绘制的计算耗费;二是将三维几何模型经过一定变换转为二转载 2010-05-10 20:39:00 · 4058 阅读 · 0 评论 -
OpenGL基础图形编程 - 特殊光处理
14.1、光照模型 OpenGL光照模型的概念由一下三部分组成:1)全局泛光强度、2)视点位置在景物附近还是在无穷远处、3)物体的正面和背面是否分别进行光照计算。 14.1.1 全局环境光 正如前面基础篇中所提到的一样,每个光源都能对一个场景提供环境光。此外,还有一个环境光,它不来自任何特定的光源,即称为全局环境光。下面用参数GL_LIGHT_MODEL_AMBIENT来说明全局环境光的RG转载 2010-05-11 13:35:00 · 2339 阅读 · 0 评论 -
OpenGL基础图形编程 - 显示列表
16.1、显示列表概论 16.1.1 显示列表的优势 OpenGL显示列表的设计能优化程序运行性能,尤其是网络性能。它被设计成命令高速缓存,而不是动态数据库缓存。也就是说,一旦建立了显示列表,就不能修改它。因为若显示列表可以被修改,则显示列表的搜索、内存管理的执行等开销会降低性能。 采用显示列表方式绘图一般要比瞬时方式快,尤其是显示列表方式可以大量地提高网络性能,即当通过网络发出绘图命令时,转载 2010-05-11 13:36:00 · 2443 阅读 · 0 评论 -
windows下搭建OpenGL ES开发环境
硬件上需要兼容OpenGL 2.0的显卡, Windows XP or Windows Vista 。1。 安装vc2005或更高版本,安装后会有opengl的库。2。 安装shader分析工具 http://developer.amd.com/GPU/SHADER/Pages/default.aspx3。 安装OpenGL ES模拟器: http://developer.amd.co转载 2010-05-12 15:53:00 · 6811 阅读 · 2 评论 -
OpenGL常用API
glAccum 操作累加缓冲区glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形glAlphaFunc允许设置alpha检测功能glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中glArrayElement 定义一个被用于顶点渲染的数组成分glBegin,glEnd 定义一个或一组原始的顶点glBindTexture 允许建立一个原创 2010-05-28 13:16:00 · 2485 阅读 · 0 评论 -
OpenGL函数
开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL图形库一共有100多个函数,它们分别属于OpenGL的基本库、实用库、辅助库等不同的库。 OpenGL 全称"开放式图形库",是由SGI公司开发的低层三维图形API,目前在图形开发领域已经成为工业标准。现今市面上关于OpenGL方面的书籍不在少数原创 2010-05-28 13:51:00 · 4291 阅读 · 1 评论 -
OpenGl核心函数库
OpenGl核心函数库glAccum 操作累加缓冲区 glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形 glAlphaFunc允许设置alpha检测功能 glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中 glArrayElement 定义一个被用于顶点渲染的数组成分 glBeginglEnd 定义一个或一组原始的顶点 gl原创 2010-05-28 13:55:00 · 1972 阅读 · 0 评论 -
MFC+OpenGL 编程入门
MFC+OpenGL 编程入门 下面介绍如何在 VC++ 上进行 OpenGL 编程,下面以画一条 Bezier 曲线为例,详细介绍VC++ 上 OpenGL 编程的方法。这里实际上也给出了个 C++ 良好封装性编程的范例。文中给出了详细注释,以便给初学者明确的指引。一步一步地按所述去做,你将顺利地画出第一个 OpenGL 平台上的图形来。转载 2010-05-28 14:19:00 · 4178 阅读 · 0 评论 -
游戏开发精品站列表
游戏开发精品站列表 http://www.gameres.com/ 游戏资源网老牌的游戏开发综合性的网站,资源丰富,教程优秀,国内游戏站点开发首推! http://www.ogdev.net/cooperate/ 网络游戏开发网也是一个综合性的网站,内容也很丰富! http://www.gamedev.net/ 游戏开发网英文站点,英文好的朋友可以好好享受一下哦! http://www.gepoint.cn GE点游戏开发网适合初学者的站点,搜集了不原创 2010-07-24 11:42:00 · 1870 阅读 · 0 评论 -
投影矩阵 视图模型矩阵
<br /> OpenGL在设置场景时,要用到两个矩阵:投影矩阵 和 模型视图矩阵通过glMatrixMode来指定下面的矩阵操作是针对哪一个矩阵进行的。<br /> gluLookatup,glTranslate, glRotate, glScale, glOrtho ,gluPerspective 等函数只根据其参数计算出一个矩阵M,然后与当前的栈顶元素T相乘;但这些函数本身不能自动找到应该对应的矩阵堆栈,你可以将它们放在任何矩阵堆栈操作中,比如可以将gluLookatup放在glMat转载 2010-06-02 14:51:00 · 5476 阅读 · 0 评论 -
搭建Open Inventor开发环境——手动安装Coin3D
<br />简介:<br />目前世界上比较成熟的Open Inventor(以下简称OIV)开发包有三个,它们分别由SGI(http://www.sgi.com),TGS(http://www.tgs.com)和SIM(http://www.coin3d.org)公司开发的。SGI是最早提出并开发OIV的公司。但SGI的OIV主要用在UNIX操作系统下,没有提供对Microsoft Windows操作系统的支持。TGS公司是最早将OIV由Unix系统移植到Microsoft Windows下的公司。TGS转载 2010-07-28 15:03:00 · 2227 阅读 · 0 评论 -
NeHe OpenGL教程(中英文版附带VC++源码)中英文系列
<br />NeHe OpenGL教程(中英文版附带VC++源码)中英文系列<br />Lesson 01-lesson 02<br />创建一个OpenGL窗口:<br />如何创建三角形和四边形<br />http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53679<br /> <br />Lesson 03-lesson 04<br />添加颜色<br />旋转<br />http://ieee.org.cn/dispbbs.asp?boardID=61&ID=转载 2010-08-13 08:37:00 · 12029 阅读 · 1 评论 -
OpenGL怎么用
<br /> [OPENGL怎么用]OPENGL编程类似C编程,实际接口就是C,所以熟悉C是必要的一般编程可用到的函数库包括:OPENGL实用库:函数以glu开头OPENGL辅助库:函数以aux开头Windows专用函数库:函数以wgl开头Win32API:无专用前缀OPENGL中有115个核心函数,可以在任何OPENGL平台上使用OPENGL实用库比上面这115个函数高一级,提供高级调用OPENGL辅助库本来是提供初学者入门的原创 2011-05-20 11:15:00 · 6529 阅读 · 0 评论 -
OpenGL编程入门
<br /> [编程入门]这里我将给出一个小例子让大家熟悉用辅助库的编程结构://////////////////////////////////////////////////////////// This is an OS specific header file//判别操作系统的基本头文件#include // disable data conversion warnings#pragma warning(di原创 2011-05-20 11:19:00 · 2571 阅读 · 0 评论 -
OpenGL坐标变换
<br />上回书说道有个reshape需要进一步讲解,这个函数功能是对用户改变窗口大小的操作进行一些重绘的动作(类似VC中的OnResize)。其中用到了一些变换的概念我希望大家已经具备初步的计算机图形学的知识,这将有利于这部分的理解。如果还没有,也没关系,我尽量讲解的通俗一些.对于3D绘图,把其中3D坐标写成齐次坐标系后,是4*4的矩阵形式(详细可以参阅相关文献,后面也会讲到。)任何投影、旋转...操作都可以看成是矩阵相乘的操作。矩阵操作----这个概念一定要形成!!例如在2D中普通的旋原创 2011-05-20 11:27:00 · 1961 阅读 · 0 评论 -
OpenGL键盘操作和动画
<br />前面三篇文章已经把OPENGL的编程基本结构描述完毕。以后会在这个基础上逐渐深化,不断增添新内容。这一篇是讲述键盘操作和动画基础(实际还差的远哪)。只是个简单的能由用户控制的动画,让物体前后移动,左右旋转。是我们自己的第一个QUAKE!当然这个版本谁买谁上当,呵呵。这篇的另一个目的就是加深前面对于CALLBACK函数的认识以及对于变换的直观解释,任何变换你都可以从屏幕上通过自己的操作看出来:我只把和以前变化的部分标记中文解释//////////////////////原创 2011-05-20 11:33:00 · 3476 阅读 · 0 评论 -
用Visual C++ 6实现OpenGL编程
<br />一、OpenGL简介<br /> 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口。但最近几年它成为一个非常优秀的开放式三维图形接口。实际上它是图形软件和硬件的接口,它包括有120多个图形函数,"GL"是"GRAPHIC LIBRARY"的缩写,意思是“图形库”。OpenGL的出现使大多数的程序员能够在PC机上用C语言开发复杂的三维图形。微软在Visual C++ 5中已提供了三个OpenGL的函数库(转载 2011-04-01 14:57:00 · 3611 阅读 · 1 评论 -
OPENGL中GLU和GLUT工具箱收藏
OPENGL中GLU和GLUT工具箱收藏GLUT工具箱提供几种图形3维图形的函数: void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); 丝状球void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); 实心球void glutWireCube(GLdouble size); 丝状立方体void glutSolidCube(GLd转载 2011-04-01 16:30:00 · 2210 阅读 · 0 评论