OpenGL 入门基础教程 —— 基本术语篇【1】

从头开始,了解了解~~


1:OPENGL是图形硬件的软件接口,包含了很多函数,这些函数可以用于指定物体和操作,创建交互式的三维应用程序。


2:OPENGL中根据几何图元创建形状,从而建立物体的数学描述(点、直线、多边形等等)


3:颜色可以由三部分组成:程序明确RGB、特定光照条件、纹理贴图,可使用shader(着色器)来执行


4:把物体的数学描述以及与物体相关的颜色信息转换为屏幕上的像素,这个过程被称为光栅化(rasterization)


5:渲染(rendering)是计算机根据模型创建图像的过程


6:模型(model)是根据几何图元创建的,也称为物体(Object)


7:几何图元包括点、直线、多边形,他们是通过顶点指定的(vertex)


8:最终完成了渲染的图像是是由在屏幕上绘制的像素组成的,像素(Piexl)是显示硬件可以再屏幕上显示的最小可视元素


9:在内存中,和像素有关的信息(例如像素的颜色)组织成位平面(bitplane)的形式


10:位平面(bitplane)是一块内存区域,保存了屏幕上每个像素的一个位的信息,例如:一个特定像素的颜色中的R成分的强度


11:位平面又可以组成帧缓冲区(framebuffer)的形式,帧缓冲区保存了图形硬件为了控制屏幕上所有像素的颜色和强度所需要的全部信息


12:OPENGL是一个状态机,它控制当前视图和投影变换、直线、多边形绘图模式、光照位置等等,这些都是一个一个时刻的状态,每个状态都有自己的默认值


13:OPENGL的渲染管线:OPENGL处理数据的方法,几何数据(顶点、直线、多边形)所经历的处理阶段包括求值器和基于顶点的操作,而像素数据(像素、图像、位图)的处理过程则有所不同,但最终的像素数据写入到帧缓冲之前,这两种数据都会经过光栅化和基于片段的操作


OpenGL 入门基础教程 —— 基本术语篇【1】

14:任何数据,无论它是描述的几何图元还是像素,都可以保存在显示列表(display list)中,供当前使用或以后使用


15:所有的几何图形都需要通过顶点来描述,参数化曲线和表面最初可能是通过控制点以及叫做基函数(base function)的多项式函数进行描述的。求值器提供了一种方法,根据控制点计算表面的顶点。它是一种多项式映射,可以根据控制点产生表面法线、纹理坐标、颜色以及空间坐标值等


16:可以使用顶点着色器完全控制基于顶点的操作,如果使用了着色器,基于顶点的操作阶段中的所有操作都会由着色器取代,OPENGL3.1之后,都必须使用顶点着色器


17:光栅化就是把几何数据和像素数据转换为片断(fragment)的过程。每个片断方块对应于帧缓冲区的一个像素


18:片断操作,在数据实际存储到帧缓冲区之前,要执行一系列操作,这些操作可能会修改甚至丢弃这些片段:纹理处理等等一系列操作之后,完整处理的片段会被绘制到适当的缓冲区,最终成为一个像素达到屏幕


19:GLU:OPENGL的工具函数库,他们利用底层的OPENGL函数来执行一些特定的任务,例如设置特定的矩阵、多边形分格化以及表面渲染等等,GLU中函数都是用glu前缀


20:GLUT:OPENGL的实用工具库,隐藏不同窗口系统SPI所带来的复杂性,都使用glut前缀


21:几乎所有的OPENGL程序都是以下两行开始

#include <GL/gl.h>

#include <GL/glu.h>

在windows下,还需要在之前包含windows.h头文件,因为windows版本的gl.h和glu.h文件内部使用的一些宏实在windows.h中定义的


22:Glut的作用:虽然OPENGL中包含了许多的渲染函数,但是他们的设计目的是独立于任何窗口系统或操作系统。因此,他并没有包含打开窗口或者从键盘鼠标读取时间的函数,GLUT就是干这个的!~

       1:窗口管理 2:显示回调函数:窗口内容需要重新显示时,回调函数执行 3:运行程序

       4:处理输入事件 5:绘制三维物体