图形学笔记(二)图形学中的线性代数——向量、矩阵(转置、逆)、叉乘、点乘
1. 什么是图形学?
图形学是合成和操纵视觉信息的计算机应用。
2. 图形学的应用
2.1 游戏
Tips:什么才是好的画面(从技术角度)? 画面是不是足够亮(体现渲染中的全局光照)
2.2 电影
(1)特效(special effects):通过图形学技术合成出来并且和实际存在的东西完美结合,看起来真实。
(2)人的面部动作捕捉:由真人演员做出表情反应到虚拟的环境中。(不仅是图形学应用)。
2.3 动画
应用:毛发,毛发与光线作用。
怎么做:
(1)几何:描述复杂几何形体。
(2)渲染:把图形真正表现出来。
(3)计算:计算光线在几何形体之间的传递方式。
(4)烟雾 发光 粒子(模拟)
2.4 设计
应用: cad—computer aided design 计算机辅助设计
2.5 可视化:实际操纵视觉信息的方法
通过扫描获取三维空间的信息,通过一定的办法变成视觉信息。
2.6 虚拟现实:virtual reality
Tips:区分vr与ar(增强现实):vr看不见现实,全部是计算机生成的;ar可以看见现实,并能在现实的基础上看见一些新的东西。
2.7 数字插图:digital illustration
数字插图是一种使用计算机来生成艺术原画的技术。
应用:Photoshop,曲线、插值、显示透明
2.8 模拟:Simulation(也叫仿真、动画)
应用:特效(沙尘暴、木板断裂、沙子落到水里、黑洞、光线发生偏折)
2.9 图形用户接口:GUI
应用:Windows、Mac界面设计
2.10 字体:Typography
字体放大不会像图像一样模糊。
涉及点阵、矢量等的概念。
2. 图形学包含的内容
- Math of projections,curves,surfaces 投影、曲线、曲面数学
- Physics of lighting and shading 光照和阴影物理学
- Representing / operating shapes in 3D 3D中表示、操作形状
- Animation / simulation 动画/模拟(仿真)
- 3D graphics software programing and hardware 3D软件和硬件编程
3. 学习目录
3.1 光栅化 Rasterization(游戏和实时的图形学的主要应用)
定义:把三位空间的几何形体显示到屏幕上。
Tips:
实时和离线:每秒钟生成30帧,即30fps(图形学中的说法)称为实时,常会用到光栅化的方法。否则叫离线。
3.2 曲线和曲面 Curves and Meshes
如何表示曲线和曲面?得到更复杂的变化、保留物体的拓扑结构等。
3.3 光线追踪 Ray Tracing(动画电影中常用,比较慢,但是可以生成质量更高的画面)
Tips:注意trade off,权衡取舍,又快又得到光线追踪的效果(实时光线追踪)。
3.4 动画和模拟 Animation / Simulation
小球落地如何挤压和弹起?布料如何缓缓落下?
- Key frame Animation 关键帧动画
- Mass-spring System 质量弹簧系统
4. 计算机视觉和图形学的区别
Model:描述三维形状的几何形体、对于渲染来说是描述材质和光照。
Model->Image渲染(图形学):将模型的各种因素综合考虑转化成一张图。
Image->Model(视觉):从一张图识别出结构。
Model->Model (图形学):如何描述三维的形体?在三维空间中的仿真。
Image->Image (视觉):图像处理,涉及机器学习推断推理、涉及计算机视觉的知识。
图形学和视觉联系越来越紧密,界限也逐渐模糊。比如vr需要先用视觉分析,再用图形学显示。
5. 推荐读物
- 计算机图形学基础(虎书)
- 版本:推荐第四版、第三版,但中文只有第二版可以对照着中文版的读。
其他
Computer Graphics is Awesome
图形学不是图形学API,OpenGL / DirectX / Vulcan是API但不是原理。
计算机视觉(分析理解一切需要猜测的内容)不是图形学