计算机图形学概论
实用的学习方法

新闻

2015年9月15日
“耶鲁大学”课程“计算机图形学”的教科书(H.Rushmeier教授)

2015年2月3日
“因苏布利亚大学”课程“计算机制图”教材(M.Tarini教授)

2014年12月17日
“La Sapienza”课程“Grafica Computezionale”的教科书(M.Schaerf教授)

2014年12月17日
“比萨大学”课程“三维图形”教材(P.Cignoni教授)

2014年10月15日
这本书已经出版了

2014年10月3日
这本书的网站是在线的!

借阅资料

F、 加诺维利,M.科尔西尼,S.帕塔纳克,M.迪贝内代托,计算机图形学导论:一种实用的学习方法《几何建模》和《计算机建模》第1章,第1页,第14页。

这本书指导学生开发自己的交互式图形应用程序。作者将逐步展示如何使用EnvyMyCar(NVMC)框架作为贯穿全文的一致示例来实现计算机图形的概念和理论。他们使用WebGL图形API开发NVMC,一款简单的交互式赛车游戏。
每一章侧重于特定的计算机图形方面,如三维建模和照明。作者帮助学生了解如何处理三维几何变换、纹理、复杂的灯光效果等。这种实用的方法引导学生画出所需的元素和效果,最终创造出一个视觉上令人愉悦的赛车游戏。

作者

Fabio Ganovelli是视觉计算实验室的研究员,该实验室隶属于意大利国家研究委员会(CNR)的机构ISTI(科学技术研究所)。1995年毕业于比萨大学,2001年获得博士学位。他的研究兴趣包括可变形对象、多分辨率技术、真实感渲染和几何处理。

Massimiliano Corsini于2000年在佛罗伦萨大学获得信息工程学位,2005年在同一所大学获得信息和通信工程博士学位。目前,他是视觉计算实验室(ISTI-CNR,Pisa)常设研究人员的一员,在该实验室,他致力于外观采集和建模、2D/3D注册技术和基于图像的重新照明。

Sumanta Pattanaik是奥兰多中佛罗里达大学电子工程和计算机科学学院计算机科学副教授。此前,他曾是康奈尔大学计算机图形学康奈尔项目的研究助理(1995-2001年),法国雷恩市伊里萨/印度国际研究院(IRISA/INRIA)SIAMES小组的博士后助理(1993-1995年),以及孟买NCST图形系的高级研究员(1985-1995年)。1993年11月,他获得了BITS计算机科学和信息科学系的博士学位。

马可迪贝内代托的爱好是计算机绘图。顺便说一句,他也是视觉计算实验室的临时研究员。热情的软件开发人员,他的主要目标是实现渲染引擎,以实现复杂场景的实时可视化,无论是在功能强大的工作站上还是在现成的智能手机上。

代码

代码可以下载在这里. 仔细阅读随附文件说明书对它的有效利用。

以下是客户名单及简要说明。对于每一位客户,书中第一次解释的部分都是供参考的。

客户端2/0-第一个客户端

这是第一个工作客户。它做的不多,汽车是一个统一背景上的白色三角形。 学习如何进行初始设置是很有用的。
本书第120页第4.8节对该客户机进行了描述。

现场演示

绘制立方体

我们在这里学习如何定义立方体,用三角形网格表示它。这一基本形状将在稍后用于创建我们的第一个3D场景。
本书第XX页第XX节对该客户机进行了描述。

现场演示

画圆锥体

我们在这里学习如何定义圆锥体,用三角形网格表示它。这一基本形状将在稍后用于创建我们的第一个3D场景。
本书第XX页第XX节对该客户机进行了描述。

现场演示

绘制圆柱体

我们在这里学习如何定义圆柱体,用三角形网格表示它。稍后将首先使用基本形状创建3D场景。
本书第XX页第XX节对该客户机进行了描述。

现场演示

客户端4/0-我们的第一个3D客户端

我们使用先前定义的绘图原语来定义我们的第一个3D场景。请注意,3D效果是有限的,因为我们是从上面用正交投影来观察比赛的。
本书第128页第4章第10.1节对该客户机进行了描述。

现场演示

客户端4/1-Chaser视图

在这个客户机中,视图框架被表示为汽车框架的一个功能,在汽车移动过程中跟随汽车。
本书第131页第4章第11.2节对该客户进行了描述。

现场演示

客户端4/2-观察者摄像头

这种类型的相机可以让你在没有限制的情况下四处走动。使用W-A-S-D键 可以更改相机的位置,用鼠标可以四处查看 (就像在第一人称射击游戏中一样)。
本书第136页第4章第12节对该客户进行了描述。

现场演示

客户端5/0-从驱动程序角度查看

车内视图将添加到客户端。驾驶员透视图采用模板印刷,以避免重画车内。 混合技术用于挡风玻璃上部。
本书第159章第5.5节描述了客户。

现场演示

客户端6/0-添加Sun

在这个客户机中,用盒子和圆柱体制造的汽车已经不见了,取而代之的是汽车的三维模型。我们在这里学习如何添加一种简单的光源:平行光。我们使用平行光来模拟来自太阳的照明。
本书第193页第6章第7.2节对该客户进行了描述。

现场演示

客户6/1-添加路灯

我们在这里学习如何使用另一种类型的光:点光源。我们用这种路灯来模拟街边的照明。
本书第199页第6章第7.4节对该客户机进行了描述。

现场演示

客户的车灯和2号车的车灯

我们学习如何使用其他两种类型的光:聚光灯和区域光。我们使用聚光灯来模拟汽车头灯,这是我们拥有的第一个非静态灯(见第6.7.5节)。此外,我们在隧道中添加灯光,用多个点光源模拟区域光(见第6.7.6节)。
本书第203页第6章第7.7节对该客户进行了描述。

现场演示

客户6/3-Phong照明模型

在这个客户机中,我们提供了一个Phong照明模型的实现。
本书第211页第6章第9.3节对该客户进行了描述。

现场演示

客户端7/0-为地形、街道和建筑物添加纹理

这里我们开始使用纹理。街道、建筑物和地面的明暗器只是映射纹理而忽略照明。
本书第227页第7章第5节对该客户进行了描述。

现场演示

客户端7/1-添加后视镜

在这个客户端中添加了后视镜。为此,我们引入帧缓冲区。在第一个过程中,我们渲染从后视镜看到的场景,并将结果存储在帧缓冲区中。在第二个过程中,前一个图像用作纹理并应用于后视镜。
本书第230页第7章第6节对该客户进行了描述。

现场演示

客户7/2-添加沥青

在这个客户端对象空间中,法线贴图用于模拟道路的沥青。
本书第245页第7章第8.3节对该客户进行了描述。

现场演示

客户端7/3-为地平线添加Skybox

skybox是cubemaps的一个非常直接的用法,可以产生一个令人信服的环境。
本书第238页第7章第7.3节对该客户进行了描述。

现场演示

客户端7/4-为汽车添加反射

汽车上的反射是用6个渲染过程来生成立方体贴图的。如果反射环境足够远,这些反射看起来是正确的。
本书第240页第7章第7.4节对该客户机进行了描述。

现场演示

客户端8/0-添加阴影

基本的阴影映射和深度偏差技巧在第8.4节中解释。
本书第263页第8章第3节描述了这个客户机。

现场演示

客户端8/1-阴影映射(PCF)

采用百分比闭合滤波(PCF)技术,获得更好的阴影映射效果。
本书第三章第263章对客户进行了描述。

现场演示

客户端9/0-添加固定屏幕小工具

固定屏幕小工具是通过在NDC空间中绘制来添加的,这样它们就不会受到其他任何东西的影响。
本书第280页第9章第2.3节对该客户机进行了描述。

现场演示

客户端9/1-添加镜头光斑效果

这里我们使用纹理和混合来创建镜头光斑效果。事实上,现代镜头的效果并不普遍。
本书第281页第9章第2.4节对该客户进行了描述。

现场演示

客户9/2-更好的树木

在这个客户中,我们把用圆柱体和圆锥体做成的树留作广告牌。我们采用轴线对齐的广告牌,这样广告牌始终面向观众。
本书第286页第9章第2.5.1节对该客户进行了描述。

现场演示

客户9/3-更好的树

在这里,广告牌云被用来获得更好的树木。
本书第286页第9章第2.8.1节对该客户进行了描述。

现场演示

客户端10/0-一个更好的摄影师与景深

真实相机的景深效果是通过根据像素与观察者之间的距离来模糊像素来模拟的。
本书第300页第10章第1.2节对该客户机进行了描述。

现场演示

客户端10/1-卡通阴影

一个非常简单的卡通阴影视觉效果结合颜色量化和边缘检测。
本书第308页第10章第1.4节对该客户机进行了描述。

现场演示

客户端10/2-更好的摄影师与平移

在这个客户机中,我们使用两次渲染技术来模拟平移。在第一个过程中,每个像素的速度被放在一个缓冲区上,这个缓冲区将在第二个过程中被用来适当地模糊图像。
本书第311页第10章第1.5节对该客户进行了描述。

现场演示

学分与致谢

  • 这款车的型号是“三菱Eclipse GSX”的改进版潦草交换混合. 此模型以Creative Commons Attribution 3.0许可证发布。
  • 草的纹理来自尤弗兰基!(c) 2008年,搅拌机基金会. 此纹理根据Creative Commons Attribution 3.0许可证发布。
  • 建筑物使用的纹理是立面二、立面三和混凝土纹理包的一部分OpenFilters.net网站. 这些纹理是根据Creative Commons Attribution 3.0奥地利许可证发布的。
  • 使用的天箱是埃米尔·佩尔森的作品,又名腐殖质. 此立方体地图以Creative Commons Attribution 3.0 Unported许可证发布。
  • 镜头光斑纹理来自“无蟒蛇镜头光斑V2”穆罕默德·马迪克洛交换混合. 它们是在Creative Commons Attribution 3.0许可下发布的。
  • 树的广告牌云模型由布鲁诺·法尼尼.
  • 我们承认费德里科·庞奇奥感谢他对网站开发的有益建议。

联系我们

如有任何与本书有关的问题,请写信至以下电子邮件地址:

envymycarbook@gmail.com