现在的位置: 首页 > 综合 > 正文

计算机图形学第二章—概论(OpenGL简介)

2013年12月10日 ⁄ 综合 ⁄ 共 3180字 ⁄ 字号 评论关闭

液晶显示器——原理
液晶分子的排列在微弱的外部电场、磁场或者应力、温度变化等作用下非常容易改变。当液晶分子的某种排列状态在电场作用下变为另一种状态时,液晶的光学性质随之改变,这

种产生光被电场调制的现象称为液晶的电光效应。

液晶显示的机理是通过能阻塞或传递光的液晶材料,传递来自周围的或内部光源的偏振光。

 

液晶显示器——类型
NW(Normal White)型的LCD:在液晶面板不施加电压时,我们所看到的面板是透光的画面,也就是亮的画面。
NB(Normal Black)型的LCD:当对液晶面板不施加电压时,面板无法透光。

液晶显示器——彩色
液晶显示器利用在一侧的玻璃基板上加上一个彩色滤光片(CF,Color Filter)实现彩色。
彩色滤光片上均匀分布着红、绿、蓝色小点,每个小点有各自不同的灰度,相邻的一组RGB小点构成一个基本的彩色显示单元,即一个像素。

液晶显示器——分类
扭曲向列型(TN,Twisted Nematic)
超扭曲向列型(STN,Super TN)
双层超扭曲向列型(DSTN,Dual Scan TN)
薄膜晶体管型(TFT,Thin Film Transistor)

 

相关概念


分辨率
光点----一般是指电子束打在显示器的荧光屏上,显示器能够显示的最小的发光点。
像素点----是指图形显示在屏幕上时候,按当前的图形显示分辨率所能提供的最小元素点。
屏幕分辨率,也称为光栅分辨率,它决定了显示系统最大可能的分辨率,任何显示控制器所提供的分辨率也不能超过这个物理分辨率。
通常用水平方向上的光点数与垂直方向上的光点数的乘积来表示。
显示分辨率是计算机显示控制器所能够提供的显示模式分辨率,实际应用中简称为显示模式。
对于文本显示方式,显示分辨率用水平和垂直方向上所能显示的字符总数的乘积表示。
对于图形显示方式,则用水平和垂直方向上所能显示的象素点总数的乘积表示。
显示分辨率不同,它所对应的象素点大小也不同。
图形的存储分辨率是指帧缓冲区的大小,一般用缓冲区的字节数表示。
存储分辨率不仅与显示分辨率有关,还与像素点的色彩有关。
帧缓存大小的计算:
x方向的像素点数×y方向的像素点数×log2n/8(BYTE)
  其中:n为颜色数或灰度等级数
屏幕分辨率决定了所能显示的最高分辨率。
显示分辨率和存储分辨率对所能显示的图形分辨率有控制作用。
显示器中的分辨率
   带宽 = A*水平像素点数*垂直像素点数*刷新频率 A常取1.344

 

像素与帧缓存
屏幕上一个象素点就对应帧缓存中的一组信息。
组合像素法(Packed Pixel Method)
颜色位面法(Color Plane Method)
在组合像素法中,一个图形象素点的全部信息被编码成一个数据字节,按照一定方式存储到帧缓存中,编码字节的长度与点的属性(如颜色、灰度等)有关。
在颜色位面法中,帧缓存被分成若干独立的存储区域,每一个区域称为一个位面(Bit Plane),每个位面控制一种颜色或者灰度,每一个图形象素点在每个位面中占一位,通过几

个位面中的同一位组合成一个象素。

 

颜色查找表
颜色查找表也称调色板,是由高速的随机存储器组成,用来储存表达象素色彩的代码。此时帧缓冲存储器中每一象素对应单元的代码不再代表该象素的色彩值,而是作为查色表的

地址索引。

 

显示长宽比
显示长宽比,即水平点数与垂直点数之比。要求在屏幕两个方向上相同像素点数产生同样长度的线段,以使图形不至发生畸变。

 

屏幕坐标系(略)

OpenGL图形软件包:
OpenGL是SGI(Silicon Graphics Inc.)公司对IRIS GL进行改进,扩展可移植性,形成的一个跨平台开放式图形编程接口。
目前,OpenGL标准由1992年成立的独立财团OpenGL Architecture Review Board(ARB)以投票方式产生,并制成规范文档公布。

 

OpenGL的主要功能:
模型绘制
模型观察
颜色模式
光照应用
图像效果增强
位图和图像处理
纹理映射
实时动画
交互技术

 

OpenGL的绘制流程:
一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件。
OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段

OpenGL的基本语法---相关库
OpenGL核心库:gl
OpenGL实用程序库: glu
OpenGL编程辅助库:aux
OpenGL实用程序工具包(OpenGL utility toolkit,GLUT):glut
Windows专用库:wgl
OpenGL的基本语法——命名规则
OpenGL函数都遵循一个命名约定,即采用以下格式:

<库前缀><根命令><可选的参数个数><可选的参数类型>
  
            例如函数glColor3f(…),gl表示这个函数来自库gl.h,color表示该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。

OpenGL的基本语法——数据类型
 

OpenGL数据类型
内部表示法
定义为C类型
C字面值后缀
GLbyte
8位整数
signed char
B
GLshort
16位整数
short
S
GLintGLsizei
32位整数
long
L
GLfloatGLclampf
32位浮点数
float
F
GLdoubleGLclampd
64位浮点数
double
D
GLubyteGLboolean
8位无符号整数
unsigned char
Ub
GLshort
16位无符号整数
unsigned short
Us
GLuintGLenumGLbitfield
32位无符号整数
unsigned long
Ui

OpenGL程序实例——头文件包含
利用OpenGL实现图形绘制,首先要引入OpenGL核心库以及其他需要使用的库的头文件。
GLUT保证了gl.h和glu.h被正确包含。
           #include <gl/glut.h>
           #include <windows.h>
OpenGL程序实例——窗口管理
初始化( glutInit )
创建窗口( glutCreateWindow)
设定窗口的显示模式( glutInitDisplayMode)
指定窗口的位置和大小( glutInitWindowPosition和glutInitWindowSize )
指定窗口的显示内容函数( glutDisplayFunc)
运行框架( glutMainLoop)

OpenGL程序实例——绘制图形
指定窗口背景色( glClearColor)
颜色管理,使用RGB颜色模型。一种颜色用红、绿、蓝三种颜色成分混合而成,每种颜色成分使用0.0到1.0之间的任意有效浮点数来表示颜色值。
 

混合色
红色成分(R
绿色成分(G
蓝色成分(B
0.0
0.0
0.0
1.0
0.0
0.0
绿
0.0
1.0
0.0
1.0
1.0
0.0
0.0
0.0
1.0
1.0
0.0
1.0
0.0
1.0
1.0
深灰
0.25
0.25
0.25
浅灰
0.75
0.75
0.75
0.60
0.40
0.12
南瓜橙
0.98
0.625
0.12
粉红
0.98
0.04
0.70
紫红
0.60
0.40
0.70
1.0
1.0
1.0

刷新窗口的缓冲区( glClear)
设定投影参数
         glMatrixMode(GL_PROJECTION);
         gluOrtho2D(0.0,200.0,0.0,150.0);
绘制图形
        glRectf(50.0f, 100.0f, 150.0f, 50.0f);

 

#include <gl/glut.h>
void Initial(void)
{
  glClearColor(1.0f, 1.0f, 1.0f, 1.0f);      //设置窗口背景颜

抱歉!评论已关闭.