这里是《Computer Graphics with OpenGL》英文原版第四版的读书笔记,预计每一章写一篇读书笔记。
本篇为第二章,简要介绍计算机图形学的相关软件。
图形学相关软件可分为两类——专业类、综合类。其中,专业类为非编程人员准备,可提供如美术、CAD绘图等功能。综合类为编程人员使用,可以通过代码直接控制绘图过程。
坐标表示
将放置好的物体显示在屏幕上要经历一系列复杂的步骤,进行若干次的坐标变换。主要步骤如下:
- 模型坐标空间:在其中设定好各个零部件内部的位置信息
- 世界坐标空间:将模型放置在世界中
- 观察坐标空间:将观察者(摄像机)位置设为原点,观察方向为正方向的坐标系中的顶点位置
- 标准坐标空间:将三维坐标转化为二维坐标,并归一化至0~1或-1~1,使其不受不同分辨率、纵横比的显示设备所影响
- 屏幕坐标空间:根据具体的屏幕设置将其转化为对应的像素位置信息
图形函数
一个图形包中有许多不同的功能,可以将其分类如下:
- 基础的图形输出:点、直线、曲线、球、圆柱等等的绘制
- 属性:用于控制如何绘制基础图形,如颜色、线型、填充方式等
- 几何变换:大小、位置、旋转
- (可选)模型变换:通常会提供针对复杂模型的构建功能,即使用树形结构将模型的各个零部件进行连接
- 显示变换:将图形显示到输出设备上,如更改场景视图、投射方式、相机位置、光照等
- 输入函数:控制输入
- 控制操作:如清空屏幕、初始化参数等
软件标准
为了保证在某一硬件设备上使用图形包所完成的工作在其他硬件上的可移植性,需要制定具体的标准。目前存在过的标准如下:
- Graphical Kernal System(GKS):第一个图形软件标准,主要为二维
- Programmer’s Hierarchical Interactive Graphic System(PHIGS):GKS的扩展
- PHIGS+:增加了三维渲染
- Graphics Library(GL):主要为快速的实时渲染所设计
- OpenGL:三维为主,当z=0时可表示二维,是当前最流行的图形软件包
其它图形包
这里简单列举,不做具体介绍:
Open Inventor、V