随笔分类 - 图形学
摘要:解决的主要问题是灰度图究竟在计算机中是怎么表示的。在讨论该问题之前,要知道这样一个事情。即显示器究竟是怎么没成像的,是有rgb三个通道,在三个通道中我们根据每个rgb的值,操纵硬件,点亮屏幕。因此,无论是什么图,如果要到显示出来这一步,一定要有一组rgb的值。所以要明确的一点是最终灰度还是要表示成rgb的形式进行存储。如0%的灰度RGB数值是255,255,255;1%灰度的RGB数值是253,253,253;2%灰度RGB值为250,250,250。而将一副彩色图转换成为一副灰度图。实质就是通过从 RGB 到 YUV 空间的 Y 转换公式为: Y = 0.299R+0.587G+0.114B
阅读全文
摘要:图像处理中,大部分的处理方法都需要事先把彩色图转换成灰度图才能进行相关的计算、识别。彩色图转换灰度图的原理如下:我们知道彩色位图是由R/G/B三个分量组成,其文件存储格式为BITMAPFILEHEADER+BITMAPINFOHEADER,紧跟后面的可能是:如果是24位真彩图,则每个点是由三个字节分别表示R/G/B,所以这里直接跟着图像的色彩信息;如果是8位(256色),4位(16色),1位(单色)图,则紧跟后面的是调色板数据,一个RGBQUAD类型的数组,其长度由BITMAPINFOHEADER.biClrUsed来决定。然后后面紧跟的才是图像数据(24位图是真实的图像数据,其他的则是调色板
阅读全文
摘要:讲到绘画、图像,自然离不开谈颜色,所有的图案都是由基本形状和颜色组成,颜色构成了我们图像处理的一个重要部分,下面我们将要了解颜色的原理,它将是我们美工的基础。 (一) 三基色原理 在中学的物理课中我们可能做过棱镜的试验,白光通过棱镜后被分解成多种颜色逐渐过渡的色谱,颜色依次为红、橙、黄、绿、青、蓝、紫,这就是可见光谱。其中人眼对红、绿、蓝最为敏感,人的眼睛就像一个三色接收器的体系,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生。同样绝大多数单色光也可以分解成红绿蓝三种色光。这是色度学的最基本原理,即三基色原理。三种基色是相互独立的,任何一种基色都不能有其它两种颜色合成。红绿蓝是三基色
阅读全文
摘要:OpenGL学习总结一.OpenGL是做什么的一种图形硬件的接口。而不是像C和C++一样的编程语言,更像是一个运行库,提供一些预先封装的函数。二.OpenGL的主要功能是什么建模,变换,颜色模式设置,光照和材质设置,纹理映射,位图显示和图像。三.OpenGL的体系结构是什么最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,第五层为应用软件。四.怎么样利用OpenGL来实现...
阅读全文
摘要:物体表面通常并不是具有简单颜色的平滑面,而是有着花纹图案等丰富细节的。计算机三维图形通过给面贴纹理来表现表面细节。OpenGL默认设置是关闭贴纹理的,所以必须先用命令打开纹理计算。前面提到过,可以给面指定材质来影响面上各点最终的颜色。能不能同时使用材质和纹理呢?当然是可以的,OpenGL允许你用glTexEnv(GL_TEXTUREN_ENV,GL_TEXTURE_ENV_MODE,mode);命...
阅读全文
摘要:几乎所有OpenGL应用目的都是在屏幕窗口内绘制彩色图形,所以颜色在OpenGL编程中占有很重要的地位。这里的颜色与绘画中的颜色概念不一样,它属于RGB颜色空间,只在监视器屏幕上显示。另外,屏幕窗口坐标是以象素为单位,因此组成图形的每个象素都有自己 的颜色,而这种颜色值是通过对一系列OpenGL函数命令的处理最终计算出来的。本章将讲述计算机颜色的概念以及OpenGL的颜色模式、颜色定义和两种模式应...
阅读全文
摘要:在OpenGL窗口中, 左下角的像素为(0, 0). 一般而言, 像素(x, y)占据的矩形区域左下角为(x, y), 右上角为(x+1, y+1).10.1 缓存及其用途 1) 颜色缓存, 左前,右前,左后,右后和任意数量的辅助颜色缓存;2) 深度缓存3) 模板缓存4) 累积缓存 注意:X窗口系统,RGBA模式至少保证1个颜色缓冲区,模板缓冲区,深度缓冲区,累计缓冲区颜色索引模式至少保证1个眼色...
阅读全文
摘要:在前面的章节中,已经讲述了几何数据(点、线、多边形)绘制的有关方法,但OpenGL还有另外两种重要的数据类:一是位图,二是图像。这两种数据都是以象素矩阵形式存储,即用一个矩形数组来表示某一位图或图像。二者不同之处是位图包含每个象素的一位信息,而图像数据一般包含每个象素的多位信息(如,红、绿、蓝和Alpha值);还有位图类似于掩码,可用于遮掩别的图像,而图像数据则简单地覆盖先前已经存在的数据或者与之...
阅读全文
摘要:今天我们先简单介绍Windows中常用的BMP文件格式,然后讲OpenGL的像素操作。虽然看起来内容可能有点多,但实际只有少量几个知识点,如果读者对诸如“显示BMP图象”等内容比较感兴趣的话,可能不知不觉就看完了。像素操作可以很复杂,这里仅涉及了简单的部分,让大家对OpenGL像素操作有初步的印象。学过多媒体技术的朋友可能知道,计算机保存图象的方法通常有两种:一是&ldqu...
阅读全文
摘要:在三维图形中,纹理映射(Texture Mapping)的方法运用得很广,尤其描述具有真实感的物体。比如绘制一面砖墙,就可以用一幅真实的砖墙图像或照片作为纹理贴到一个矩形上,这样,一面逼真的砖墙就画好了。如果不用纹理映射的方法,则墙上的每一块砖都必须作为一个独立的多边形来画。另外,纹理映射能够保证在变换多边形时,多边形上的纹理图案也随之变化。例如,以透视投影方式观察墙面时,离视点远的砖块的尺寸就会...
阅读全文
摘要:OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用这张显示列表时就依次执行表中所列出的函数语句。前面内容所举出的例子都是瞬时给出函数命令,则OpenGL瞬时执行相应的命令,这种绘图方式叫做立即或瞬时方式(immediate mode)。本章将详细地讲述显示列表的基本概论、创建、执行、管理以及多级显示列表的应用等内容。16.1、显示...
阅读全文
摘要:下载OpenGL库文件。 对相应库文件进行放置。把.h文件放到\Program Files\Microsoft Visual Studio 8\VC\Include\GL文件夹中,如果没有GL文件夹就自己建一个,我的就是自己建的。把.lib文件放到\Program Files\Microsoft Visual Studio 8\VC\lib文件夹中;把.dll文件放到system32文件夹中。 建...
阅读全文
摘要:当命令进入流程时,可以选用两种方法对它们进行处理:一种是通过流程立即执行这些命令;令一种是将其中一些命令组织到一个“显示列表”,过一段时间再执行它们。流程中的“求值器”阶段通过将输入值赋给多项式命令提供了一种非常有效的方法来生成几何曲面和曲面的近似值。接下来的“各顶点操作及图元集”阶段主要是处理OpenGL的几何图元&mdas...
阅读全文
摘要:在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho。glOrtho是创建一个正交平行的视景体。 一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为它的对立情况, glFrustum则产生一个透视投影。这是一种模拟真是生活中,人们视野观测物体的真实情况。例如:观察两条平行的火车到,在过了很远之后,这两条铁轨...
阅读全文
摘要:OpenGL是一套图形标准,它严格按照计算机图形学原理设计而成,符合光学和视觉原理,非常适合可视化仿真系统。首先,在OpenGL中允许视景对象用图形方式表达,如由物体表面顶点坐标集合构成的几何模型,这类图形数据含有丰富的几何信息,得到的仿真图像能充分表达出其形体特征;而且在OpenGL中有针对三维坐标表示的顶点的几何变换,通过该变换可使顶点在三维空间内进行平移和旋转,对于由顶点的集合表达的物体则可...
阅读全文
摘要:对象描述变换到观察坐标之后,下一阶段是将其投影到观察平面上。图形软件一般都支持平行投影和透视投影两种方式。平行投影(parallel projection),坐标位置沿平行线变换到观察平面上。平行投影保持对象的有关比例不变,这是三维对象计算机辅助绘图和设计中产生成比例工程图的方法。场景中的平行线在平行投影中显示成平行的。一般有两种获得对象平行视图的方法:沿垂直于观察平面的直线投影,或沿某倾斜角度投...
阅读全文
摘要:GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing application programming int...
阅读全文
摘要:第一步:下载OpenGL库Windows环境下的GLUT下载地址:(大小约为150k)http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip其实,也不是必须从这里下载,在你下载一些例子的时候,一般都会打包呆上OpenGL库的。这里顺便介绍一下OpenGL吧:OpenGL作为当前主流的图形API之一,它在一些场合具有比Dir...
阅读全文
摘要:实体几何模型主要通过组成该几何体的边界面所形成的半空间表示一个物体。物体内部的所有属性都是相同的。所谓平面或曲面的半空间是指一个空间平面或曲面将空间分为两部分,如果一部分位于物体的内部,则另一部分位于物体的外部。实体几何模型理论的发展可以追溯到20世纪70年代,最初是利用构造实体几何的(Constructive Solid Geometry CSG)方法,将所建立的实体先大致描述出来,然后再将这个...
阅读全文