Steve Marschner, Peter Shirley. Fundamentals of Computer Graphics. ISBN: 978-1-4822-2941-7.

看书名就知道,这次读的是一本计算机图形学的基础读物。计算机本质上只能处理数字。通过将字符和数字进行映射,计算机就能获取处理字符串的能力。但是图像与字符不同,图像一般不会当作编程的基本数据类型。所以对于计算机来说,处理图像的能力不是必须的。而计算机图形学就是研究用计算机处理图像信息的学科之一。

“图像”是一个源自于人类视觉的概念,由光源发出或物体反射过的可见光经过瞳孔后投影于视网膜上,健康的人类视觉系统就会产生视觉感受。视觉所感受到的就可以称为“图像”。因而复制一幅人眼看到的图像,最根本的办法就是复制引起视觉感受的那些可见光。

投影到视网膜上的可见光经过简化可以看作是有限二维平面上的一组电磁波。将其直接转化为其他形式的连续物理量——例如把光照强度转化为电压高低——就得到了模拟图像数据。可惜的是,数字计算机本质上是没法处理模拟信号的,这就需要将模拟信号转化为数字信号。将模拟信号在时间、空间、信号种类、信号强度等方面做离散化采样就得到了用整型数矩阵表示的数字图像。这种图像被称为像素图。由于连续的二维光信号直接离散化采样后就可以得到像素图,像素图是计算机进行图像相关处理的基本数据形式。最基本的图形图像学问题都是基于二维像素图定义的,但随着研究深入,图像图像领域的研究对象逐渐扩展到了非可见光成像像素图、多通道像素图、三维像素图、像素图序列、双目像素图等。

像素图和字符串一样都是信息可能的编码方式之一。一张手稿的内容可以录入为纯文本文件,也可以拍摄为像素图。但不论怎样编码,手稿中的字面信息都能保存下来。类似的,图像虽然与文字的形式大相径庭,但信息是能在这两种编码方式之间来回转换的。从文字承载的语义到像素图像的转换是图形学的研究内容。反之从像素图像中提取文字形式语义的研究则是图像学的研究内容。

本书重在介绍图形学。目前的图形学研究一般不研究抽象语义到像素图的之间转化。从抽象语义到矢量图形或者三维模型的过程往往是由人工建模。自动生成矢量图或模型的研究则相对较少。从这本书的讲述来看,过去几十年,计算机图形学主要的研究内容是已有三维模型的前提下,渲染出其在观测位置的光栅化投影(通俗来说就是根据三维模型求某个角度下的像素图)。

由于最终的输出结果是给人看的,而人类视觉并不需要绝对的精确。这些光栅化的结果大都是数值计算的近似结果。所以,大部分计算机图形学算法的基本思想就是运用解析几何知识求出某个角度投影的解析式,然后使用具有并行化数值计算能力的 GPU (Graphics Processing Unit,通俗地说就是显卡)对解析式进行数值求解。

为了模拟现实中光的折射和反射路径,图形学使用一种名为 Ray Tracing 的基本方法。不论视线、反光还是折射,都能用它来解决。就连今年大热的英伟达动态光追其实也是 Ray Tracing 之下的一个细分领域。

除了这些理论性的介绍本书中也有一些实践指南。说到图形学的实践,自然是 OpenGL 首当其冲。而说到 OpenGL,就总让人想起手撸 Shader。其实我对 Shader 说不上了解,但是看了一个用 Shader 画三角函数曲线的例子后,我对这种号称啥都能写的东西产生了深深的怀疑——所谓 Shader 实际上是在把本应由编译器或者运行环境自动生成的代码暴露出来人工编写。而这背后的动机则是目前自动生成的代码效率太低,人们希望人工对渲染过程进行优化以加速渲染。

此外,本书的视野并不仅仅局限于图形学的内容。书中一些章节也涉及到了采样、去噪等信号处理的内容以及风格迁移等图像学的内容。


求点赞,求收藏,求分享

欢迎关注我的公众号,微信搜索:知则

读 Steve Marschner 之 Fundamentals of Computer Graphics相关推荐

  1. 【虎书】Fundamentals of Computer Graphics(Fourth Edition)第二章习题解答

    [虎书]Fundamentals of Computer Graphics(Fourth Edition)第二章章末习题解答 Exercises Exercise 1: Cardinality of ...

  2. 《Fundamentals Of Computer Graphics》虎书第三版翻译——第六章 矩阵变换

    线性代数的机制可以用来表达在3D场景中排列对象.用摄像机观察它们并将它们放到屏幕上所需的许多操作.几何变换,如旋转.平移.缩放和投影可以通过矩阵乘法来完成,而用于实现这一目的的变换矩阵是本章的主题.我 ...

  3. fundamentals of computer graphics

    这里是第1 2 6章 记录自己的阅读 Preface Chapter1 Introduction 1.1 Graphics Areas 1.2 Major Applications   1.3 Gra ...

  4. 《Fundamentals Of Computer Graphics》虎书第三版翻译——第五章 线性代数

    或许图形学程序最常用的工具就是能对点或者向量进行变换的矩阵.在下一章节,我们可以看到如何用矩阵表示一个向量,以及如何用向量与方阵相乘表示不同基.我们还将描述如何使用这种乘法来实现向量的变换,如缩放.旋 ...

  5. Fundamentals of Computer Graphics third/Fourth Edition

    计算机图形学基础第三/四版pdf 第三版链接: 链接:https://pan.baidu.com/s/1tSfEl3mByhZU7YaLxqnSLQ 提取码:6jam 第四版链接: 链接:https: ...

  6. Fundamentals of Computer Graphics, Fourth Edition 中文翻译

    第1章:Introduction 中文翻译 : https://www.stubbornhuang.com/1813/ 第2章:Miscellaneous Math 中文翻译:https://www. ...

  7. Fundamentals of Computer Graphics 4th目录

  8. 虎书Fundamentals of Computer Graphics 5th Edition个人学习思维导图分享-第八章 Viewing

    这章的知识点书上是按照从易到难的顺序安排的,但本文为了使变换的顺序符合逻辑,就按照渲染的顺序来阐明概念了.本文有许多概念都是根据个人对于概念的理解,以大白话的形式表达,如有不对,请及时纠正,谢谢各位大 ...

  9. GAMES101笔记_Lec01_计算机图形学概述 Overview of Computer Graphics

    作为一名想要了解图形学的学生,已经在无数地方看到有人推荐闫令琪老师的GAMES101课程,但由于自己是美术专业,在笼统看过这门课程之后认为这门课有一定学习难度,所以为了打下比较扎实的基础和方便自己日后 ...

最新文章

  1. boost::hana::alignof_用法的测试程序
  2. 深圳乐易网络有限公司机试题String to Integer (atoi)
  3. 我的世界服务器无限装备指令2020,我的世界区域保护指令_我的世界区域保护指令除了自己手机版刷屏2020_攻略...
  4. 【九度oj 1135】【OpenJ_Bailian - 2915】 字符串排序 (水)
  5. C语言核心技术-C语言概述与开发环境搭建
  6. 简约几何海报背景设计素材,可盐可甜
  7. SAP License:ERP对供应链管理和实施
  8. 用python爬取杭电oj的数据
  9. 【BZOJ 1052】 1052: [HAOI2007]覆盖问题 (乱搞)
  10. BIO | NIO | AIO (Java版)
  11. 20180602_Eclipse配置Maven的本地仓库和阿里云镜像
  12. unity开发微信小游戏1
  13. 初识:心血管磁共振(CMR)成像
  14. Revit二次开发资料汇总
  15. Mac OS下安装Photoshop CC 2017破解版
  16. 黑苹果简单的手动开启显示器HiDPI教程
  17. stable diffusion文字转图片(教程)
  18. luckysheet导出excel表格(使用exceljs,支持图片)
  19. 开源云笔记本开发构想
  20. Spring Gateway路由网关

热门文章

  1. 模板测试与镜面特效专场
  2. idea:Unresolved plugin
  3. 豌豆荚codis描述
  4. shell编程(二十)shell各种符号汇总
  5. 带你简单了解MySQL
  6. [西川善司]3D图形技术概念和渲染管线的处理
  7. VPP三层网络互联配置
  8. wps怎么关闭修改痕迹_[WPS文字如何设置保留修改痕迹] word保留修改痕迹
  9. MacWindows装机必备
  10. 使用PyCaret构建机器学习模型