跳转到内容

计算机图形学概念/导论

来自维基教科书,开放世界中的开放书籍

本维基教科书旨在向非技术人员解释计算机图形学概念。大多数关于计算机图形学的书籍都是从程序员的角度编写的,他们试图完成某些算法的实现,无论是电脑游戏、光线追踪器还是动画系统。

相反,本维基教科书旨在向没有实现任何东西的意图,并且只有基本数学知识(和耐心)的人解释计算机图形学概念。这样的读者可能是寻求更好地理解其用来制作艺术作品或电子游戏内容的系统的艺术家,也可能是试图开始学习计算机图形学但没有之前经验的人,或者仅仅是希望更多了解构成我们体验的媒体的图形的好奇者。

由于我们从一开始就开始了,我们的第一步将是定义计算机图形学技术试图解决的问题。因此,为了开始我们的讨论,我们将首先尝试(笨拙地)解释这个问题,说计算机图形学中的主要问题是如何创建所需的图像

鉴于人们创建图像的不同原因,包含所有计算机图形学的陈述必然是模糊的。为了更好地理解我们试图理解的内容,我们将讨论计算机图形学试图解决的一些具体问题。

计算机图形学最常见的用途之一是创建看起来像真实照片的图像,但描绘了我们实际上无法拍摄的照片。例如,我们可能想为电影创建一个动画,描绘外星生物或地点,或者我们可能想创建一个建筑渲染,以便了解最终建筑的外观。我们将这种类型的计算机图形称为照片逼真。通常,创建这些图像需要花费大量时间,因此这些技术通常试图尽可能准确地捕捉灯光和表面的特性,以牺牲计算图像所需的时间为代价。

计算机图形学的另一个常见用途是创建图像非常快,以便它们可以在交互式动画中使用;大多数人熟悉的这些算法的应用是电脑游戏。当用户控制他们的角色时,我们希望非常快地创建一系列图像(希望每秒 30 张或更多),以响应他们的输入。我们将这种类型的计算机图形称为实时交互式。我们可能希望这些图像尽可能地逼真,但事实是,如果我们有更多时间用于计算,我们可以创建更好的结果。因此,实时计算机图形通常关注在帧之间可用的非常短的时间内创建最佳外观图片的技术。

计算机图形学还有许多其他应用。我们可能对自动化我们可以手工制作的复杂图片感兴趣,以方便起见,或者我们可能对创建抽象或随机的图像感兴趣。事实上,计算机图形学有许多应用介于上述两个极端之间,例如医学成像和可视化系统。但是,对于入门文本来说,介绍实践中混合和匹配以获得所需结果的两种主要技术就足够了。

在接下来的文本中,我们将首先尝试了解像素的概念以及计算机如何表示颜色,这是计算机图形算法输出的格式。之后,我们将考虑如何表示计算机图形学程序使用的输入数据,即要渲染的 3D 对象。在了解了这些基础知识之后,我们将深入探讨照片逼真和实时渲染的技术。

华夏公益教科书