最近在为之后找工作面试做准备,所以把大二学习的计算机图形学又拿出来重新学起来了,也推荐大家一起看闫大神的课!!!
然后笔记是在lengyueling大佬的版本上进行的修改,总体还是大佬的模板。
希望大家一起在图形学的路上越走越远!

GAMES101-现代计算机图形学入门-闫令琪

图形学应用场景

  • 电子游戏:

  • PBR:之狼

  • 卡通渲染:无主之地

  • 电影:黑客帝国

  • 动画:疯狂动物城、冰雪奇缘

  • 设计:概念图

  • 可视化:虚拟现实

  • 数码插画:模拟仿真

  • GUI图形用户接口

  • 字体设计:矢量图

全局光照做的好不好影响游戏美术品质,同时体现在场景的亮度

图形学的技术挑战

光栅化(rasterization):

将三维空间中的几何形体显示在屏幕上

实时:30fps 否则被称为离线

曲线和网格(Curves and Meshes) :各种细分方法

光线追踪(ray tracing):动画电影广泛使用,但是速度较慢**(重点)**

目前使用游戏使用的是实时光线追踪

仿真和模拟(animation/simutatoin)

OpenGL、dx是图形学API不是图形学

计算机图形学与计算机视觉

  • 图形学不是计算机视觉。
  • 计算机视觉:猜测、预测、分析处理
  • 计算机视觉是理解这个世界(图像识别),计算机图形学是创造这个世界(CG)

线性代数复习

图形学默认使用列向量,课程默认为右手系(DirectX为左手系)

点乘在图形学的应用

AB=|A||B|cosθ

  • 点乘主要应用于求两个单位向量的夹角,
  • 判定前后:A·B>0,代表B与A的夹角小于90度(同向),<0则大于90度小于180度(反向)
  • 观察两个向量之间是同向、垂直还是反向,可以观察两个向量的接近,若两个向量的点乘接近1则离得很近,若接近0则离得很远
  • 利用投影可将一个向量分解成两个(多个)向量和

叉乘在图形学的应用

  • AxB=-BxA
  • 叉乘的数值上=|A||B|sinθ
  • 判定左右(内外)
  • 若AxB为正则点A在点B在A左侧,若点P在点A、B、C内,则ABxAP,BCxBP,CAxCP结果相同则P在ABC内(判断点在三角形内部,后文会提及)
  • 若任意一个结果不同则P在ABC外
  • 定义坐标系
  • 要求:单位向量、互相垂直(点乘为0且叉乘结果为另外一轴)
  • 可以获得任意一个向量分解为多个投影

矩阵知识点

  • (MxN)(NxP)=(MxP),M行N列的矩阵与N行P列的矩阵相乘会得到M行P列的矩阵
  • 矩阵没有交换律,只有结合律
  • 转置:(AB)T=BT AT,AB的转置等于B的转置乘A的转置
  • 单位矩阵I(对角阵I):可以算出矩阵A-1(A逆),可以用于返回变换前的结果。(知识点:矩阵乘矩阵的逆矩阵等于单位矩阵
  • 向量的点乘、叉乘都可以转换为矩阵相乘
  • 点乘:A·B=ATB
  • 叉乘:AxB=A*B

A*是对偶矩阵

概率论复习(用于路径追踪)

X:随机变量

pi一定是非负的,所有pi相加等于1

EX:数学期望

X~P(X):概率密度函数,概率的连续分布情况

变换

2D 变换

缩放

  • X’=Sx
  • Y=Sy

X轴翻转

  • X’=-X
  • Y’=Y

R-θ=RθT

齐次坐标

为了解决平移产生必须要用加法的问题,加入齐次坐标。

  • 矩阵没有交换律:同时需要平移和线性变换的时候,需要先线性变换再平移
  • 仿射变换=线性变换+平移

仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。

仿射变换是在几何上定义为两个向量空间之间的一个仿射变换或者仿射映射(来自拉丁语,affine,“和…相关”)由一个非奇异的线性变换(运用一次函数进行的变换)接上一个平移变换组成。

3D 变换

齐次坐标

3D点:(x,y,z,1)T

3D向量:(x,y,z,0)T

旋转向量与欧拉角

RXYZ(α,β,γ)=RX(α)Ry(β)Rz(γ)

利用右手螺旋定则

在三维坐标系中:

XxY=Z XxZ=-Y YxZ=X

因此RY(α)中为X或Y的转置

同时,去掉分别代表XYZ运算的行列即可变换为最基本的旋转式

罗德里格旋转公式

这是一种可以表示任意旋转后的向量

四元数解决了两个旋转角度中插值的问题,本课中不具体讲解

GAMES101现代计算机图形学入门-第一节-图形学导论相关推荐

  1. 语音识别入门第一节:语音识别概述

    目录 语音识别的定义 语音识别的重要性 语音交互 语音识别的挑战性 语音识别的发展历史 语音识别的深度学习时代 现代语音识别框架 语料库与工具包 语音识别的定义 语音识别:Automatic Spee ...

  2. 现代计算机图形学入门ppt,计算机图形学完整课件.ppt

    计算机图形学完整课件.ppt (326页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 计算机图形学 第一章.绪论第二章.基本图形生成原理第 ...

  3. pybullet入门第一节

    pybullet第一节学习 pybullet的安装 首先安装pybullet,非常简单直接pip即可.在一台可渲染的ubuntu电脑食用更佳-因为本人没有遇到什么安装上的问题,故就不再这里细说. 安装 ...

  4. matlab 仿真入门,MATLAB/simulink仿真入门(第一节)

    1前言 MATLAB/simulink是个强大的仿真工具,是电气工程专业从业人员必备软件,它可以完成数据分析.闭环控制设计.滤波器设计等功能,是一种比较偏理论的分析,需要自己先进行模型抽象,然后搭建电 ...

  5. 计算机图形学浙江大学第一章图形学概述

    第一集 表示图形的方法: 1.点阵法.枚举图形中所有的点来表示图形,强调图形由点构成,及其点的属性(颜色):像素图或图像. 2.参数发:由图形的形状参数和属性参数来表示图形,简称图形 2.1形状参数: ...

  6. Java快速入门第一节

    一.Java简介 1.安装JDK 因为Java程序必须运行在JVM之上,所以,我们第一件事情就是安装JDK.搜索JDK 14,确保从Oracle的官网下载最新的稳定版JDK找到Java SE 14的下 ...

  7. Java入门 第一节 计算机的基础概念+Java环境配置

    文章目录 1 计算机基本知识了解 1.1 啥是计算机? 1.2 计算机硬件系统 1.3 计算机软件系统 1.3.1 程序 1.4 计算机语言 1.5 计算机快捷键介绍 1.6 常见的Dos命令操作 2 ...

  8. threejs入门第一节如何用threejs创建一个简单的场景

    什么是threejs? threejs是一个用于在浏览器中绘制3D图像的JS库.它是基于webgl实现了,包括了webgl1和webgl2的渲染引擎.同时也包括了最新的webgpu.(部分浏览器基本不 ...

  9. Linux 入门第一节

    注:默认采用的是Centos7.6的版本 一.Linux目录结构 Linux的文件系统是采用层级式的树状目录结构,在此结构最上层的是目录 "/",然后在此目录下再创建其它文件,在L ...

最新文章

  1. android Camera照相机技术(一)
  2. 如何用outlook express 收发邮件
  3. linux如何脚本监控tps,通过shell脚本监控日志切换频率
  4. mybatis是什么_深入解析:Mybatis接口没有实现类为什么可以执行增删改查?
  5. 2-11 支付宝集福卡_实现分析
  6. 【ffmpeg】不带透明通道的视频overlay
  7. SQL中的集合运算有必要存在的几个例子
  8. R语言安装包失败方案及DataExplorer包安装方法实践
  9. 电子邮件验证及部分常用正则表达式
  10. 关于LNK2005的错误
  11. 关于画法几何和机械制图有感
  12. 【毕业论文】分享当年使用过的一些好用网站,包括论文去重,翻译,作图神器,免费文献查找 | 第 1 期
  13. 成都国税打造全能“电子税务局”
  14. 三只松鼠网络营销成功之路
  15. Nginx搭建虚拟域名
  16. 在vue中二级页面返回一级页面
  17. CSS实现聊天气泡效果
  18. prolog学习_修道士野人问题
  19. 中科云网控制人与董事长反目
  20. 展厅安装摄像头优化问题

热门文章

  1. 树莓派+腾讯连连,打造智能鱼缸,养鱼从未如此简单
  2. 用于Arduino、esp32或esp8266的Ebyte LoRa E32(SX1278)设备:省电和发送结构化数据 - 第五部分
  3. 把文件夹中的文件名快速导出到excel表格里
  4. 往事岂堪回首(选自网络)
  5. quartus虚价破戒的一种解决办法
  6. cfiledialog对话框大小_文件选择对话框:CFileDialog
  7. 使用SDWebImage加载多个图片内存崩溃的问题
  8. 简单获取各大视频网站的flash地址
  9. Andorid系统架构
  10. 驱动精灵升级后电脑卡死、连不上网