现代电子游戏的基石——计算机图形学(1)

0 阅读1分钟

前言:一些碎碎念

很多人认为战争是人类文明技术发展的催化剂,这个说法似乎有些过于武断,但是至少也对了七八成。从计算机到互联网,我们都可以在他们的早期发展中看到先进军事项目的影子。而计算机图形学早期的发展,更是和冷战密不可分。

正文:
50年代

时间回到 20 世纪 50 年代,二战硝烟刚刚散去,美国便要面对昔日盟友 —— 苏联及其 Tu-4 远程轰炸机群带来的核威慑。传统地面雷达防空站效率低下,依靠文职人员与电话线路进行防空指挥,已经难以招架。为此,美国开始寻求新一代防空指挥体系,其核心便是依托新兴计算机技术构建的自动化防空系统。最终成果,便是 SAGE(Semi-Automatic Ground Environment,半自动地面防空系统)。

这套由大型计算机与网络设备组成的系统,整合并处理来自多个雷达站的数据,生成大范围空域的统一空情图像。从 20 世纪 50 年代末直至 80 年代,SAGE 一直承担着为北美防空司令部(NORAD)提供苏联空袭预警与指挥响应的关键任务。

1951 年,麻省理工学院为美国海军研制的 Whirlwind I(旋风 I 号)计算机正式投入使用。作为早期真空管计算机,它是最早具备实时运算能力的数字电子计算机之一,也不再只是简单以电子方式替代传统机械运算。它率先采用位并行结构,并首次使用磁芯存储器,在计算机发展史上具有里程碑意义。

上图:旋风I计算机本体 

 旋风 I 号的技术积累直接推动了旋风 II 号的设计,后者成为美国空军 SAGE 防空系统的核心计算机,并间接影响了 20 世纪 60 年代几乎所有商用计算机与小型机的发展方向。 

 “旋风计划”最初是为了建造飞行模拟器,而SAGE则旨在为美国提供防空系统,以应对核攻击的威胁。SAGE工作站配备了矢量显示器和光枪,操作员可以使用光枪精确定位飞越美国地区的飞机。

上图:SAGE交互式操作台和配套的光枪【小盒子里那个枪形物】

​上图:SAGE子站的控制室投影屏

SAGE 做到了前所未有的事情:
计算机主动生成矢量图形(航线、区域边界、目标符号)
操作员用光笔在屏幕上直接选择、点击、标注目标
屏幕快速刷新,实现实时态势感知
从此,交互不再只是打字,而是 “看 + 点 + 控”,这差不多就是现代图形界面的简单雏形了。

在这之后,历史上最早的交互式视频游戏之一——双人网球(Tennis for Two)出现了

1958年,美国物理学家威廉·希金博瑟姆(William Higinbotham)在得知布鲁克海文国家实验室的唐纳30型模拟计算机能够模拟受风阻影响的运动轨迹后,设计了这款游戏,并计划在实验室的年度公开展览上展出。他在几个小时内完成了游戏的设计,之后与技术员罗伯特·V·德沃拉克(Robert V. Dvorak)合作,花了三周时间将其制作完成。游戏画面显示在示波器上,玩家使用两个定制的铝制控制器进行游戏。游戏画面呈现的是侧视的网球场,玩家可以通过控制器上的旋钮调整击球角度,并通过按下按钮将球击过球网。 

在为期三天的展览中,这款游戏非常受欢迎,玩家们排起长队观看,尤其是高中生。第二年,它再次展出,配备了更大的示波器屏幕和更复杂的设计,可以模拟不同的重力水平。之后,它被拆除,并逐渐被人遗忘,直到20世纪70年代末,希金博瑟姆在麦格纳沃克斯公司和拉尔夫·H·贝尔之间关于电子游戏专利的诉讼中出庭作证,才再次引起人们的关注。自此,它被誉为最早的电子游戏之一,布鲁克海文国家实验室也对原版设备进行了复刻。根据一些定义,《双人网球》被认为是第一款电子游戏,因为它虽然没有比之前的游戏带来任何技术创新,但却是第一款纯粹为了娱乐而非学术研究或商业技术推广而开发的电脑游戏。

 电子先驱惠普公司在十年前完成注册后,于1957年上市。由于其创始人是斯坦福大学的校友,惠普与斯坦福大学建立了紧密的联系。这开启了旧金山湾区南部长达数十年的转型,使其成为世界领先的计算机技术中心——如今的硅谷。随着计算机图形硬件的出现,计算机图形学领域也蓬勃发展起来。 

(此时的惠普标志还不是我们如今所熟悉经典蓝白色图标)

计算机技术的进一步发展推动了交互式计算机图形学的飞速进步。1959年,麻省理工学院林肯实验室研制出了TX-2计算机。TX-2集成了许多新型人机界面,而这将引出我们下面将要讲到的内容——伊万・萨瑟兰和他的Sketchpad。

上图:TX-2计算机

60年代

20世纪60年代初,IBM、Sperry-Rand、Burroughs和其他几家计算机公司已经存在。当时的计算机只有几千字节的内存,几乎没有操作系统,也没有图形显示器。外围设备包括Hollerith穿孔卡片机、行式打印机和卷纸绘图仪。当时支持的编程语言只有汇编语言、FORTRAN和Algol。 

 在这样的条件下,计算机能呈现的 “图形” 极其有限,函数曲线图和一些简单的日历图表,几乎是那个时代全部的图形输出。 

 1961年,麻省理工学院的另一位学生史蒂夫·罗素(Steve Russell )创作了电子游戏史上另一款重要的作品—— 《太空大战!》(Spacewar!) 。这款游戏专为DEC PDP-1电脑开发,一经推出便大获成功, PDP-1用户纷纷购买,最终DEC公司也获得了一份拷贝。 DEC的工程师们在每台新PDP-1电脑出厂前,都会用这款游戏作为诊断程序进行测试。

上图:PDP-1上的《太空大战!》 

 游戏中,两艘飞船“针”号和“楔”号在恒星引力井内进行空战。两艘飞船均由玩家操控。每艘飞船的武器和燃料都有限,即使玩家不加速,飞船也会保持运动。靠近恒星飞行以利用引力弹弓效应是一种常见的战术。飞船被鱼雷、恒星或彼此碰撞后都会被摧毁。玩家可以随时使用超空间跳跃功能,移动到屏幕上的随机新位置,但在某些版本中,每次使用超空间跳跃都有更高的概率导致飞船被摧毁。游戏最初使用PDP-1上的开关进行控制,但鲍勃·桑德斯(Bob Saunders)制作了一个早期游戏手柄,以降低游戏操控的难度和不便之处。 

 大约在同一时期(1961-1962 年),剑桥大学的伊丽莎白·沃尔德拉姆编写了代码,在阴极射线管上显示射电天文学地图。 

 1963 年,伊万・萨瑟兰(Ivan Sutherland)在夏季联合计算机会议上发表了他里程碑式的博士论文《Sketchpad》。Sketchpad 首次实现了以光笔为输入设备、在矢量显示器上完成实时交互式设计的系统。 

 Sketchpad 开创了人机交互(HCI) 的先河,被认为是现代计算机辅助设计(CAD) 程序的鼻祖,也是计算机图形学发展史上的一项重大突破。例如,Sketchpad 启发了图形用户界面(GUI) 和面向对象编程的诞生。萨瑟兰利用该程序证明了计算机图形学既可用于艺术创作,也可用于技术应用,并展示了一种全新的人机交互方法。

借助光笔,Sketchpad允许用户在计算机屏幕上绘制简单的形状,并保存这些形状,甚至在以后调用它们。光笔的笔尖内置一个小型光电管。当光笔置于计算机屏幕前,屏幕的电子枪直接照射到光电管时,光电管会发出一个电脉冲。只需将电脉冲与电子枪的当前位置进行计时,即可轻松精确地确定光笔在屏幕上的任何时刻的位置。一旦确定了位置,计算机就可以在该位置绘制光标。萨瑟兰似乎找到了解决他所面临的许多图形问题的完美方案。即使在今天,许多计算机图形界面标准仍然起源于早期的Sketchpad程序。一个例子体现在绘图约束上。例如,如果想要绘制一个正方形,用户无需费心绘制四条完美的直线来构成正方形的边。用户只需指定要绘制的正方形,然后指定其位置和大小即可。软件随后会自动构建一个尺寸和位置都完全正确的正方形。另一个例子是,萨瑟兰的软件能够对物体进行建模,而不仅仅是物体的图像。换句话说,对于汽车模型,用户可以更改轮胎的尺寸而不会影响汽车的其他部分。它可以拉伸车身而不会使轮胎变形。 

 贝尔电话实验室(BTL)的科学家 E.E. Zajac于 1963 年制作了一部名为《双陀螺仪重力姿态控制系统模拟》的影片。在这部计算机生成的影片中,Zajac 展示了如何改变卫星绕地球运行时的姿态。他使用IBM 7090大型计算机制作了这部动画。大约在同一时期,其他科学家也在制作计算机图形来展示他们的研究成果。在劳伦斯辐射实验室,Nelson Max 制作了《粘性流体的流动》和《固体中冲击波的传播》两部影片。波音飞机公司制作了一部名为《飞机振动》的影片。 

 同样在20世纪60年代初期,汽车行业也推动了这项技术的发展。这主要得益于皮埃尔·贝塞尔在雷诺汽车公司早期的工作。他运用保罗·德·卡斯特里奥的曲线——如今因贝塞尔在该领域的贡献而被命名为贝塞尔曲线——为雷诺汽车车身开发了三维建模技术。这些曲线为该领域大量的曲线建模工作奠定了基础,因为曲线——与多边形不同——在数学上是复杂的实体,难以绘制和建模。

上图:具有四个控制点的三次贝塞尔曲线。

如今你在绝大多数制图软件(尤其是Ai、XD或Figma这些用于绘制矢量图的软件)中见到的钢笔工具,最根本的基础就是贝塞尔曲线。

不久之后,各大公司便开始对计算机图形学产生兴趣。TRW 、洛克希德-乔治亚公司、通用电气公司和斯佩里兰德公司等众多公司在20世纪60年代中期就开始涉足计算机图形学领域。IBM迅速响应这一需求,推出了IBM 2250图形终端,这是第一台商用图形计算机。1966年,桑德斯联合公司的高级工程师拉尔夫·贝尔(Ralph Baer)开发了一款家用电子游戏,后来授权给麦格纳沃克斯公司(Magnavox),并命名为“奥德赛”(Odyssey)。这款游戏虽然非常简单,而且只需要相对廉价的电子元件,但它允许玩家在屏幕上移动光点。它是第一款面向消费者的计算机图形产品。大卫·C·埃文斯(David C. Evans)于1953年至1962年担任本迪克斯公司(Bendix Corporation)计算机部门的工程总监,之后在伯克利大学担任了五年的客座教授。在那里,他继续研究计算机及其与人类的交互方式。 1966年,犹他大学聘请埃文斯组建计算机科学系,计算机图形学很快成为他的主要研究方向。这个新系在20世纪70年代发展成为世界计算机图形学的主要研究中心

一个额外的分支:此外,1966年,伊万·萨瑟兰在麻省理工学院继续创新,发明了第一款计算机控制的头戴式显示器(HMD)。它能显示两个独立的线框图像,分别对应左右眼。这使得观看者能够以立体3D形式观看计算机场景。支撑显示器和追踪器所需的笨重硬件被称为“达摩克利斯之剑”,因为它一旦掉落可能会危及佩戴者。从麻省理工学院获得博士学位后,萨瑟兰成为美国高级研究计划署( ARPA )的信息处理主管,后来又成为哈佛大学的教授。1967年,萨瑟兰受埃文斯之邀加入犹他大学的计算机科学系——这一举措使该系在之后的近十年里成为图形学领域最重要的研究中心之一,并最终培养出该领域一些最重要的先驱。在那里,萨瑟兰完善了他的头戴式显示器;二十年后,美国国家航空航天局(NASA)在其虚拟现实研究中重新发现了他的技术。

1968年,戴夫·埃文斯和伊万·萨瑟兰创立了第一家计算机图形硬件公司——埃文斯-萨瑟兰公司。虽然萨瑟兰最初希望公司设在马萨诸塞州剑桥市,但由于盐湖城靠近犹他大学教授的研究小组,最终选择了盐湖城。

同样在 1968 年,亚瑟·阿佩尔描述了第一个光线投射算法,这是基于光线追踪的渲染算法中的第一个,该算法通过模拟光线从光源到场景中的表面再到摄像机的路径, 成为实现图形真实感的基础。

1969年,ACM成立了图形学特别兴趣小组(SIGGRAPH),负责组织计算机图形学领域的会议、制定图形标准和出版相关刊物。1973年,首届SIGGRAPH年会成功举办,此后年会成为该组织的核心活动之一。随着计算机图形学领域的不断发展,SIGGRAPH的规模和影响力也日益增强。

70年代

随后, 20世纪70年代犹他大学在该领域取得了一系列突破性进展。当时,伊万·萨瑟兰(Ivan Sutherland)受聘于该校。他与大卫·C·埃文斯(David C. Evans)合作开设了一门高级计算机图形学课程,该课程为该领域贡献了大量的奠基性研究,并培养了多位学生,他们后来创立了业内几家最重要的公司——例如皮克斯(Pixar )、硅谷图形公司(Silicon Graphics )和Adobe系统公司。汤姆·斯托克汉姆(Tom Stockham)领导着犹他大学的图像处理小组,该小组与计算机图形实验室密切合作。

这些学生中就包括埃德温·卡特穆尔。卡特穆尔刚从波音公司来到这里,正在攻读物理学学位。他从小就看迪士尼动画,热爱动画,但很快发现自己没有绘画天赋。卡特穆尔(和许多其他人一样)认为计算机是动画发展的必然趋势,他们渴望参与这场变革。卡特穆尔看到的第一部计算机动画就是他自己的作品。他制作了一段自己手部张合的动画。1974年,他还率先将纹理映射技术应用于三维模型,如今这项技术被认为是3D建模的基础技术之一。制作一部使用计算机图形技术的长篇动画电影成为了他的目标之一——20年后,在他创立皮克斯动画工作室之后,这个目标终于实现了。在同一门课上,弗雷德·帕克制作了一段他妻子面部的动画。这两部动画作品都被收录在1976年的电影《未来世界》中。

3D计算机图形学领域的一项重大突破是由这些早期先驱者在UU大学取得的——隐藏面检测。为了在屏幕上绘制3D物体的图像,计算机必须从观察者的视角确定哪些表面位于物体“后面”,因此在计算机创建(或渲染)图像时应该将其“隐藏”。3D核心图形系统(简称Core)是第一个被开发的图形标准。ACM特别兴趣小组SIGGRAPH的 25位专家开发了这个“概念框架”。该规范于1977年发布,并成为该领域许多后续发展的基础。

同样在 20 世纪 70 年代,亨利·古罗 (Henri Gouraud)、吉姆·布林 (Jim Blinn)和裴祥峰 (Bui Tuong Phong)通过开发古罗着色模型和布林-冯着色模型,为计算机图形图像 (CGI) 的着色技术奠定了基础,使图形不再局限于“平面”,而是能够更准确地表现深度。1978年,吉姆·布林进一步创新,引入了凹凸贴图技术,这是一种模拟不平整表面的技术,也是如今许多更高级贴图技术的先驱。

现代街机游戏诞生于20世纪70年代,最早的街机游戏采用实时 2D精灵图形。 1972年的《Pong》是最早的热门街机游戏之一。1974年的《Speed Race》以精灵沿着垂直滚动的道路移动为特色。 1975年的《Gun Fight》采用了拟人化的动画角色,而1978年的《Space Invaders》则在屏幕上呈现了大量动画人物;这两款游戏都使用了一种由分立芯片组成的专用换挡电路,以辅助其Intel 8080 微处理器处理帧缓冲图形。

结语:

纵观 50 到 70 年代,计算机图形学在冷战军事需求的催化下发轫于 SAGE 防空系统,从最初的矢量显示与光笔交互,到 Sketchpad 奠定交互式图形与 CAD 的基石;从贝塞尔曲线、矩阵变换、光线投射等核心算法的诞生,到犹他大学推动 3D 渲染、着色模型与纹理映射走向成熟。这三十年里,图形学走出实验室与军工领域,催生出电子游戏、商用图形终端、计算机动画等全新应用,更奠定了现代交互界面、三维建模与真实感渲染的整套技术骨架,为后续数十年的 CG、游戏、影视动画与虚拟现实发展,铺就了全部基础。