首页 / 资讯中心 / 文章详情

计算机图形学入门笔记_GAMES101_Lecture01-02

计算机图形学入门笔记_GAMES101_Lecture01-02 ★ FEATURED ARTICLE
计算机图形学入门笔记 | GAMES101 Lecture 01 02 学习总结本文基于 UCSB 闫令琪老师 GAMES101 课程B站播放量384万的前两讲内容整理而成结合个人学习笔记与网上资料适合图形学初学者阅读。一、课程简介GAMES101现代计算机图形学入门是由加州大学圣塔芭芭拉分校UCSB的闫令琪老师主讲的一门计算机图形学公开课。闫老师本科毕业于清华大学博士毕业于UC Berkeley2018年凭借在视觉特效领域的贡献获得奥斯卡技术奖提名。这门课在B站上有超过384万播放量是中文互联网上最受欢迎的图形学入门课程之一。课程涵盖23讲内容系统介绍了现代计算机图形学的四大支柱光栅化、几何表示、光线传播理论、动画与仿真。课程主页https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html参考教材Fundamentals of Computer Graphics (4th Edition)俗称Tiger Book二、Lecture 01计算机图形学概述2.1 什么是计算机图形学计算机图形学Computer Graphics简称CG的核心定义是使用计算机来合成并操控视觉信息。简单来说CG 和计算机视觉Computer VisionCV是一对镜像关系方向输入输出任务计算机图形学 (CG)3D模型/场景描述2D图像Rendering渲染计算机视觉 (CV)2D图像/视频3D模型/理解Modeling / Understanding用一句话概括CG 是从模型生成图像CV 是从图像理解模型。2.2 图形学的应用领域图形学已经渗透到我们的日常生活方方面面视频游戏从《只狼》的全局光照到《无主之地3》的漫画风格渲染电影特效《阿凡达》的面部捕捉、《疯狂动物城》的毛发模拟动画制作《冰雪奇缘2》的布料与粒子模拟工业设计奔驰概念车的CAD设计、家装效果图数据可视化将抽象数据转化为直观的图形展示虚拟现实VR与增强现实AR完全虚拟 vs 虚实结合数码插画与字体设计用电脑进行艺术创作仿真模拟物理碰撞、流体、爆炸等特效闫令琪老师在课上说了一句很经典的话“Forget about the previous reasons. Computer Graphics is AWESOME!”2.3 课程四大核心主题GAMES101 课程围绕以下四大模块展开光栅化Rasterization将3D三角形/多边形投影到屏幕分解为像素片段——这是游戏等实时应用的金标准曲线与网格Curves and Meshes如何用数学方法表示三维几何形状光线追踪Ray Tracing模拟光线传播路径实现逼真的全局光照效果动画与仿真Animation / Simulation物体运动、物理碰撞、布料/流体模拟等注意本课程不涉及图形API如OpenGL/DirectX、建模软件、游戏引擎或计算机视觉的具体实现。2.4 技术挑战实现一个完整的图形学系统面临诸多挑战透视投影的数学原理光照与着色的物理建模三维形状的表示与操作动画与物理仿真3D图形编程与硬件实现三、Lecture 02线性代数回顾图形学的底层数学基础主要是线性代数。这一讲快速回顾了图形学中最常用的向量与矩阵知识。3.1 向量Vector在图形学中向量是一个具有方向和长度的量。几个关键性质图形学中统一使用列向量表示向量没有绝对的起点——平移不改变向量本身只要方向和长度相同就是同一个向量单位向量长度为1的向量仅表示方向。任意向量 a 可单位化â a / |a|向量加法遵循平行四边形法则和三角形法则代数上就是对应坐标相加。3.2 点乘Dot Product点乘也叫数量积、内积的结果是一个标量数值定义公式a · b |a| |b| cos θ由此可以计算两个向量的夹角cos θ (a · b) / (|a| |b|)如果是单位向量则简化为â · b̂ cos θ点乘的性质交换律a · b b · a分配律a · (b c) a · b a · c结合律(ka) · b a · (kb) k(a · b)笛卡尔坐标系下的计算二维a · b xₐ·xᵦ yₐ·yᵦ三维a · b xₐ·xᵦ yₐ·yᵦ zₐ·zᵦ点乘在图形学中的重要应用(1) 向量投影计算向量 b 在向量 a 方向上的投影长度projₐ(b) (a · b) / |a| |b| cos θ投影向量 ((a · b) / |a|²) · a通过投影可以将任意向量分解为平行于 a 的分量和垂直于 a 的分量。(2) 判断方向关系a · b 0两向量方向基本一致夹角 90°a · b 0两向量方向基本相反夹角 90°a · b 0两向量垂直正交3.3 叉乘Cross Product叉乘的结果是一个向量这个新向量与参与运算的两个向量都正交垂直。定义公式|a × b| |a| |b| sin θ方向由右手螺旋定则确定右手四指从 a 转向 b大拇指指向的方向就是 a × b 的方向。叉乘的性质反交换律a × b −(b × a)分配律a × (b c) a × b a × c结合律a × (kb) k(a × b)笛卡尔坐标系下的展开a × b (yₐ·zᵦ − yᵦ·zₐ, zₐ·xᵦ − xₐ·zᵦ, xₐ·yᵦ − yₐ·xᵦ)叉乘的矩阵形式a × b 可以写成矩阵乘法的形式a × b [a]× · b其中 [a]× 是由 a 的分量构成的反对称矩阵。叉乘在图形学中的关键应用(1) 判断左右方向在三维空间中给定两个共面的向量 a 和 b计算 a × b结果的 z 分量 0b 在 a 的左侧结果的 z 分量 0b 在 a 的右侧结果的 z 分量 0两向量共线(2) 判断点在三角形内部Barycentric 思想给定三角形 ABC 和任意点 P分别计算AB × APBC × BPCA × CP如果三个叉乘结果的第三分量同号全部向上或全部向下则点 P 在三角形内部否则在外部。这个方法在光栅化中至关重要——用来判断一个像素点是否被三角形覆盖从而决定是否着色。3.4 矩阵Matrix矩阵是图形学中实现变换的核心工具。矩阵乘法前提第一个矩阵的列数 第二个矩阵的行数若 A 是 M×N 矩阵B 是 N×P 矩阵则 AB 是 M×P 矩阵计算方式新矩阵第 i 行第 j 列的元素 A 的第 i 行向量 · B 的第 j 列向量矩阵运算性质不满足交换律AB ≠ BA这是最重要的区别满足结合律(AB)C A(BC)满足分配律A(B C) AB AC矩阵转置(AB)ᵀ BᵀAᵀ单位矩阵Identity Matrix对角线全为1其余为0的矩阵。任何矩阵乘以单位矩阵等于自身AI IA A逆矩阵AA⁻¹ A⁻¹A I(AB)⁻¹ B⁻¹A⁻¹矩阵在图形学中的核心应用——坐标变换通过矩阵乘法可以实现平移、旋转、缩放等变换操作。例如二维空间中沿 y 轴翻转x 变号的变换矩阵为| -1 0 || 0 1 |作用于列向量 [x, y]ᵀ 得到 [-x, y]ᵀ。3.5 正交标准坐标系Orthonormal Frame在图形学中我们常用三个互相正交的单位向量 (a, b, w) 来定义一个坐标系a · b 0, a · w 0, b · w 0正交|a| |b| |w| 1单位长度a × b w右手系任意向量 p 可以用这个坐标系表示为p (p · a)a (p · b)b (p · w)w这就是向量在正交基下的分解是后续坐标变换的理论基础。四、学习心得与资源推荐4.1 学习心得通过前两讲的学习我对计算机图形学有了全新的认识图形学不只是画图它融合了数学线性代数、微积分、物理光学、力学、计算机科学等多个学科的知识数学是基石向量运算点乘、叉乘和矩阵变换是贯穿整个课程的核心工具理论与实践结合GAMES101 的特色在于每讲都配合编程作业C通过实际代码加深理解4.2 推荐资源资源说明GAMES101 课程主页https://sites.cs.ucsb.edu/~lingqi/teaching/games101.htmlB站视频合集https://www.bilibili.com/video/BV1X7411F744参考教材Fundamentals of Computer Graphics (4th Edition)GAMES平台http://games-cn.org计算机图形学与混合现实在线平台本文是个人学习笔记的整理分享欢迎交流讨论。如有错误欢迎指正参考资料GAMES101课程课件、The Tiger Book第四版、CSDN/博客园相关笔记等。
阅读完成 · 觉得有帮助?
咨询建站