
opengl学习
文章平均质量分 72
yanziguilai
这个作者很懒,什么都没留下…
展开
-
用MFC实现OpenGL编程
一、OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口。但最近几年它成为一个非常优秀的开放式三维图形接口。实际上它是图形软件和硬件的接口,它包括有120多个图形函数,"GL"是"GRAPHIC LIBRARY"的缩写,意思是“图形库”。OpenGL的出现使大多数的程序员能够在PC机转载 2013-04-29 17:41:24 · 1083 阅读 · 0 评论 -
OpenGL入门学习[十一 02]OPENGL的纹理续
OPENGL的纹理在3D图形中,纹理映射是广泛使用的。纹理映射也是相当复杂的过程: 一 定义纹理 二 控制滤波 三 说明映射方式 四 绘制场景给出顶点的纹理坐标和几何坐标 注意!!纹理映射只能在RGBA模式下使用,不适用于颜色索引模式 1.纹理定义 void glTexImage2D( GLenum target, GLint level, GLi转载 2013-05-23 16:10:55 · 937 阅读 · 0 评论 -
OpenGL入门学习[十二] 片断测试
OpenGL入门学习[十二] 片断测试其实就是测试每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制。OpenGL提供了多种测试操作,利用这些操作可以实现一些特殊的效果。我们在前面的课程中,曾经提到了“深度测试”的概念,它在绘制三维场景的时候特别有用。在不使用深度测试的时候,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距转载 2013-05-24 09:51:20 · 927 阅读 · 0 评论 -
OpenGL入门学习[七] 光照的基本知识
OpenGL入门学习[七]今天要讲的是OpenGL光照的基本知识。虽然内容显得有点多,但条理还算比较清晰,理解起来应该没有困难。即使对于一些内容没有记住,问题也不大——光照部分是一个比较独立的内容,它的学习与其它方面的学习可以分开,不像视图变换那样,影响到许多方面。课程的最后给出了一个有关光照效果的动画演示程序,我想大家会喜欢的。从生理学的角度上讲,眼睛之所以看见各种物体,是因为光转载 2013-05-01 20:36:09 · 1716 阅读 · 0 评论 -
OpenGL入门学习[十一 01] OpenGL纹理映射功能
OpenGL入门学习[十一 01]我们在前一课中,学习了简单的像素操作,这意味着我们可以使用各种各样的BMP文件来丰富程序的显示效果,于是我们的OpenGL图形程序也不再像以前总是只显示几个多边形那样单调了。——但是这还不够。虽然我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求。例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放转载 2013-05-20 09:58:54 · 2313 阅读 · 0 评论 -
OpenGL入门学习[十一 03]bmp纹理
1.1 位图纹理 纹理可以映射到平面上,也可以映射到曲面上,并且还可以多层映射。多层映射使用的是多重纹理。 使用纹理映射时,首先要定义一个纹理,然后控制纹理的滤波,说明映射的方式,在绘制顶点时同时给出其纹理坐标即可。 理论上来说,只要是图形文件都可以作为纹理贴图,不过最常用的还是BMP、JPEG、TGA文件。BMP文件处理方便,JPEG文件压缩率高,而转载 2013-05-23 19:55:45 · 1301 阅读 · 0 评论 -
OpenGL入门学习[十一 04]jpeg纹理
1.1 JPEG纹理 大型的应用程序特别是游戏程序使用的贴图非常多,如QuakeIII使用的JPEG和TGA文件就有将近2000个,其中JPEG文件超过一半,占用近30MB。如果都使用BMP格式的话,因为没有压缩,占用的空间将大大增加,至少达到180MB。因此,JPEG文件作为贴图也是大型程序的选择。因为JPEG文件是压缩的,使用JPEG文件,必须先进行解码。因为JPEG格转载 2013-05-23 20:03:48 · 1466 阅读 · 0 评论 -
OpenGL Vertex Buffer Object (VBO)
OpenGL Vertex Buffer Object (VBO)http://www.songho.ca/opengl/gl_vbo.htmlOpenGL Vertex Buffer Object (VBO)Related Topics: Vertex Array, Display List,Pixel Buffer ObjectDownload: vbo.zip转载 2013-07-17 08:56:17 · 991 阅读 · 0 评论 -
opengl错误解决方法 unresolved unresolved external symbol ___glutInitWithExit@12
初学opengl遇到下面错误::error LNK2001: unresolved external symbol ___glutInitWithExit@12: error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8在网上搜了N久,试了好多方法,都不行,问一高手,终解决:原因:glut.h的文原创 2013-07-04 09:39:05 · 1871 阅读 · 1 评论 -
opegl 坐标系
今天看3D模型动画代码中,发现用四元组来进行插值和旋转,了解了使用欧拉角做旋转会有万向锁的问题存在。但这个是建立在对模型坐标系进行旋转的基础上,于是又对OGL中矩阵变化的部分再次学习了一下。发现了一篇好文章,转发学习,留供查阅。 openGL使用右手坐标从左到右,x递增从下到上,y递增从远到近,z递增--------------------------------转载 2013-07-29 17:24:41 · 866 阅读 · 0 评论 -
ogldev 教程环境配置
1 .右键工程→"Properties"→"C/C++"下,"General"→"Additional Include Directories"填入"X:\ImageMagick-6.8.5";"X:\ImageMagick-6.8.5\Magick++\lib",2 ","Preprocessor"→"Preprocessor Definitions"增加填入";_VISUALC_;原创 2013-08-03 13:40:36 · 3270 阅读 · 1 评论 -
窗口-视区变换
窗口-视区变换在将窗口中的图形信息送到视区去输出之前,必须进行坐标变换,即将用户坐标系的坐标值转化为设备坐标系的坐标值,即窗口-视区变换。从窗口到视口的映射世界窗口用其左、上、右和下边界描述,分别是W.l,W.t,W.r和W.b。视口在屏幕窗口坐标系中描述,使用V.l,V.t,V.r,V.b,单位是像素。窗口到视口的映射是基于一个公式生成的,这个公式在世界窗口中对每个给转载 2013-08-23 16:46:26 · 4299 阅读 · 0 评论 -
OpenGL中逆变换和模拟变换gluUnProject
逆变换和模拟变换 几何处理管线擅长于使用视图和投影矩阵以及用于裁剪的视口把顶点的世界坐标变换为窗口坐标.但是,在有些情况下,需要逆转这个过程.一种常见的情形是: 应用程序的用户利用鼠标选择三维空间中的一个位置.鼠标只返回一个二维值,也就是鼠标光标的屏幕位置.因此,应用程序必须逆转变换工程,确定这个屏幕位置源于三维空间的什么地方. OpenGL工具库函数gluUnP转载 2013-04-29 18:01:02 · 945 阅读 · 0 评论 -
第一个OpenGL程序
学习OpenGL前的准备工作 第一步,选择一个编译环境选择Visual Studio 2005作为学习OpenGL的环境。 第二步,配置OpenGL环境具体做法在前一篇中。建议将相应文件放到VC的文件夹下,而不是PlatformSDK中。 第三步,安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。转载 2013-04-29 18:26:58 · 994 阅读 · 0 评论 -
OpenGL入门学习[五]
看一篇转一篇 记录这生活 初学opengl OpenGL入门学习[五]今天要讲的是三维变换的内容,课程比较枯燥。主要是因为很多函数在单独使用时都不好描述其效果,我只好在最后举一个比较综合的例子。希望大家能一口气看到底了。只看一次可能不够,如果感觉到迷糊,不妨多看两遍。有疑问可以在下面跟帖提出。我也使用了若干图形,希望可以帮助理解。在前面绘制几何图形的时候,大家是否觉转载 2013-04-30 18:12:37 · 986 阅读 · 0 评论 -
OpenGL入门学习[三]
OpenGL入门学习[三]在第二课中,我们学习了如何绘制几何图形,但大家如果多写几个程序,就会发现其实还是有些郁闷之处。例如:点太小,难以看清楚;直线也太细,不舒服;或者想画虚线,但不知道方法只能用许多短直线,甚至用点组合而成。这些问题将在本课中被解决。下面就点、直线、多边形分别讨论。1、关于点点的大小默认为1个像素,但也可以改变之。改变的命令为glPointSize,其函转载 2013-04-30 12:14:59 · 850 阅读 · 0 评论 -
OpenGL视景台
很多刚学OpenGL的朋友,都会对视景台的定义有很大的迷惑,这里以我的经验来解释一下,希望对大家有所帮助,void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);在这个函数中,有六下参数,这六个参数,都不是真实的世界坐标(虽然有些书转载 2013-04-29 18:13:31 · 1035 阅读 · 0 评论 -
OpenGL两种投影方式
投影变换是一种很关键的图形变换,OpenGL中只提供了两种投影方式,一种是正射投影,另一种是透视投影。不管是调用哪种投影函数,为了避免不必要的变换,其前面必须加上以下两句: glMAtrixMode(GL_PROJECTION); glLoadIdentity();事实上,投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终图像只是视景体内的有关部分。本节将转载 2013-04-30 11:07:23 · 1085 阅读 · 0 评论 -
OPENGL中GLU和GLUT工具箱收藏
OPENGL中GLU和GLUT工具箱收藏GLUT工具箱提供几种图形3维图形的函数:[cpp] view plaincopyprint?void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); 丝状球 void glutSolidSphere(GLdouble radius, GLint转载 2013-04-30 11:16:45 · 1360 阅读 · 0 评论 -
OpenGL入门学习[二] 绘制简单的几何图形
OpenGL入门学习[二]本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念。一、点、直线和多边形我们知道数学(具体的说,是几何学)中有点、直线和多边形的概念,但这些概念在计算机中会有所不同。数学上的点,只有位置,没有大小。但在计算机中,无论计算精度如何提高,始终不能表示一个无穷小的点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出转载 2013-04-30 11:48:18 · 1923 阅读 · 0 评论 -
OpenGL入门学习[四]颜色的选择。
OpenGL入门学习[四]本次学习的是颜色的选择。终于要走出黑白的世界了~~OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式。无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接就代表了颜色;而颜色索引模式中,数据代表的是一个索引,要得到真正的颜色,还必须去查索引表。1. RGBA颜色RG转载 2013-04-30 17:11:19 · 967 阅读 · 0 评论 -
OpenGL入门学习[六]动画制作
OpenGL入门学习[六]今天要讲的是动画制作——可能是各位都很喜欢的。除了讲授知识外,我们还会让昨天那个“太阳、地球和月亮”天体图画动起来。缓和一下枯燥的气氛。本次课程,我们将进入激动人心的计算机动画世界。想必大家都知道电影和动画的工作原理吧?是的,快速的把看似连续的画面一幅幅的呈现在人们面前。一旦每秒钟呈现的画面超过24幅,人们就会错以为它是连续的。我们通常转载 2013-05-01 19:57:50 · 874 阅读 · 0 评论 -
OpenGL入门学习[八]OpenGL显示列表的知识
OpenGL入门学习[八]今天介绍关于OpenGL显示列表的知识。本课内容并不多,但需要一些理解能力。在学习时,可以将显示列表与C语言的“函数”进行类比,加深体会。我们已经知道,使用OpenGL其实只要调用一系列的OpenGL函数就可以了。然而,这种方式在一些时候可能导致问题。比如某个画面中,使用了数千个多边形来表现一个比较真实的人物,OpenGL为了产生这数千个多边形转载 2013-05-15 20:00:49 · 890 阅读 · 0 评论 -
OpenGL入门学习[九] OpenGL混合的基本知识
OpenGL入门学习[九]今天介绍关于OpenGL混合的基本知识。混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过转载 2013-05-15 21:10:23 · 1023 阅读 · 0 评论 -
OpenGL入门学习
OpenGL入门学习说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合转载 2013-04-29 18:36:14 · 929 阅读 · 0 评论 -
OpenGL入门学习[十]OpenGL的像素操作、BMP文件
OpenGL入门学习[十]今天我们先简单介绍Windows中常用的BMP文件格式,然后讲OpenGL的像素操作。虽然看起来内容可能有点多,但实际只有少量几个知识点,如果读者对诸如“显示BMP图象”等内容比较感兴趣的话,可能不知不觉就看完了。像素操作可以很复杂,这里仅涉及了简单的部分,让大家对OpenGL像素操作有初步的印象。学过多媒体技术的朋友可能知道,计算机保存图象的方法通常转载 2013-05-16 11:46:30 · 1814 阅读 · 0 评论