3.6 屏幕 & 2D 图形显示 - Screens & 2D Graphics

2022-10-02
4分钟阅读时长

1960s 的 PDP-1 的电脑、屏幕、电传打字机是分开的,因为早期的文本任务和图形任务是分开的。早期的屏幕无法显示清晰的文字,打印到纸上会有更高的对比度和分辨率。

PDP-1

屏幕早期的典型用途是跟踪程序运行的情况,显示寄存器中临时存储的值等。此时屏幕还很少用于输出计算结果,其会打印到纸上或是更永久的媒介中。

3.6.1 阴射射线管(CRT)

阴射射线管(Cathode Ray Tubes, CRT)的原理是将电子发射到有磷光体图层的屏幕上,当带电粒子的电子撞击图层时,其会发光几分之一秒。

CRT

而电子的撞击路径可以通过磁场控制,在屏幕内使用线圈或是板子引导电子即可,主要有两种绘制图形的方式:

  1. 矢量扫描(Vector Scanning): 引导电子束描绘出形状,就算发光只持续一小会,但只要重复得够快,就可以得到清晰图像。
  2. 光栅扫描(Raster Scanning): 按照固定路径逐行从上向下、从左到右地不断重复,只在某行特定点打开电子束,从而绘制图形。

液晶显示器(Liquid Crystal Display, LCD)可以显示清晰的像素点,其使用光栅扫描,每秒更新多次单个像素中红绿蓝的颜色,但早期计算机因像素占用太多内存而弃用。

3.6.2 字符生成器

字符生成器(character generator)基本算是第一代显卡,是一种用于从内存中读取字符转换为光栅图形的硬件。

为了节约内存,早期计算机不存储大量像素值,而是存储最典型的 80×25 = 2000 个符号。在字符生成器中的内部 ROM (Read-Only Memory, 只读程序存储器) 中,存储着每个符号的图形,称为「点阵图案」(dot matrix pattern)。

当某 8 位二进制被解读为字符,则会将字母生成器中的点阵图案写进计算机内存中的特殊区域——「屏幕缓冲区」(screen buffer)。程序在显示文字时,修改这个区域里的值即可。

扩展后的 ASCII(比如 IBM CP437 字符集)再加上某些可以用额外比特定义字体颜色和背景颜色的系统,可以实现用字符模仿图形界面,比如 DOS。

DOS

3.6.3 矢量模式(vector mode)

矢量模式(vector mode)使用矢量指令绘制出线条来组成所有东西,比如早期的矢量系统 Vectrex,使用笛卡尔坐标系来标注电子枪的绘图点,修改相应强度。

矢量模式

这些矢量模式的命令可以按序存储在屏幕缓冲区中被读取,程序可以随时间更新这些值做出动画效果。

最早的电子游戏之一 Spacewar 是 1962 年在 PDP-1 上使用矢量图形制作的。其启发了许多后来的游戏,比如《爆破彗星》(Asteroids),甚至是第一个商业游戏《太空大战》(Computer Space)。

3.6.4 Sketchpad

1962 年,Sketchpad 出于计算机辅助设计(Computer-Aided Design, CAD)的愿景制作出了交互式图形程序(interactive graphical applications)。Sketchpad 被广泛认为是第一个完整的图形程序,其发明人伊万·萨瑟兰(Ivan Sutherland)后来因此获得图灵奖。

Sketchpad 代表着人机交互的关键点,改变了人们对电脑的观念。电脑不仅可以用于计算,还能够帮助人们进行设计或其他事情。

Sketchpad 提供了光笔和各种按钮来使用户可以划线和其他简单形状。光笔的笔尖使用光线传感器,其通过检测判断显示器刷新时间来让电脑知道笔的位置。

在 Sketchpad 上绘制的线可以完美平行、长度相同、正交垂直、动态缩放,实现保存复用和修改,并且提供了图库可以直接拖拽使用。

3.6.5 位图显示(bitmapped displays)

位图显示(bitmapped displays)是指内存中的位(bit)可以对应屏幕上的像素。

绘制任意图形,就像是在修改一个巨大像素值矩阵中的值,这些像素数据存在帧缓冲区(frams buffer)。该区域早期位于电脑内存(computer’s RAM)中,现在存储在高速视频缓存(high-speed Video RAM, VRAM)中。

在 8 位灰度屏幕上,可用的颜色范围为 0(黑)到 255(白)。白色会更偏向绿色或橙色,因为早期显示器不能显示白色。假设低分辨率的位图屏幕分辨率为 60×35,则可以根据坐标系定位像素后把其设为不同颜色。

VRAM

这种绘制矩形的代码也可以包装成函数进行复用,还有其他绘制直线、曲线、图形、文字等内容的函数可以调用。

这种位图的灵活性为交互式操作开启了全新可能,但其成本高昂直至几十年后才有所降低。1971 年,整个美国只有 7w 电传打字机和 7w 终端,而拥有交互式图形屏幕的电脑大约只有 1000 台。