GAMES101现代计算机图形学入门-第一节-图形学导论
最近在为之后找工作面试做准备,所以把大二学习的计算机图形学又拿出来重新学起来了,也推荐大家一起看闫大神的课!!!
然后笔记是在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现代计算机图形学入门-第一节-图形学导论相关推荐
- 语音识别入门第一节:语音识别概述
目录 语音识别的定义 语音识别的重要性 语音交互 语音识别的挑战性 语音识别的发展历史 语音识别的深度学习时代 现代语音识别框架 语料库与工具包 语音识别的定义 语音识别:Automatic Spee ...
- 现代计算机图形学入门ppt,计算机图形学完整课件.ppt
计算机图形学完整课件.ppt (326页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 计算机图形学 第一章.绪论第二章.基本图形生成原理第 ...
- pybullet入门第一节
pybullet第一节学习 pybullet的安装 首先安装pybullet,非常简单直接pip即可.在一台可渲染的ubuntu电脑食用更佳-因为本人没有遇到什么安装上的问题,故就不再这里细说. 安装 ...
- matlab 仿真入门,MATLAB/simulink仿真入门(第一节)
1前言 MATLAB/simulink是个强大的仿真工具,是电气工程专业从业人员必备软件,它可以完成数据分析.闭环控制设计.滤波器设计等功能,是一种比较偏理论的分析,需要自己先进行模型抽象,然后搭建电 ...
- 计算机图形学浙江大学第一章图形学概述
第一集 表示图形的方法: 1.点阵法.枚举图形中所有的点来表示图形,强调图形由点构成,及其点的属性(颜色):像素图或图像. 2.参数发:由图形的形状参数和属性参数来表示图形,简称图形 2.1形状参数: ...
- Java快速入门第一节
一.Java简介 1.安装JDK 因为Java程序必须运行在JVM之上,所以,我们第一件事情就是安装JDK.搜索JDK 14,确保从Oracle的官网下载最新的稳定版JDK找到Java SE 14的下 ...
- Java入门 第一节 计算机的基础概念+Java环境配置
文章目录 1 计算机基本知识了解 1.1 啥是计算机? 1.2 计算机硬件系统 1.3 计算机软件系统 1.3.1 程序 1.4 计算机语言 1.5 计算机快捷键介绍 1.6 常见的Dos命令操作 2 ...
- threejs入门第一节如何用threejs创建一个简单的场景
什么是threejs? threejs是一个用于在浏览器中绘制3D图像的JS库.它是基于webgl实现了,包括了webgl1和webgl2的渲染引擎.同时也包括了最新的webgpu.(部分浏览器基本不 ...
- Linux 入门第一节
注:默认采用的是Centos7.6的版本 一.Linux目录结构 Linux的文件系统是采用层级式的树状目录结构,在此结构最上层的是目录 "/",然后在此目录下再创建其它文件,在L ...
最新文章
- android Camera照相机技术(一)
- 如何用outlook express 收发邮件
- linux如何脚本监控tps,通过shell脚本监控日志切换频率
- mybatis是什么_深入解析:Mybatis接口没有实现类为什么可以执行增删改查?
- 2-11 支付宝集福卡_实现分析
- 【ffmpeg】不带透明通道的视频overlay
- SQL中的集合运算有必要存在的几个例子
- R语言安装包失败方案及DataExplorer包安装方法实践
- 电子邮件验证及部分常用正则表达式
- 关于LNK2005的错误
- 关于画法几何和机械制图有感
- 【毕业论文】分享当年使用过的一些好用网站,包括论文去重,翻译,作图神器,免费文献查找 | 第 1 期
- 成都国税打造全能“电子税务局”
- 三只松鼠网络营销成功之路
- Nginx搭建虚拟域名
- 在vue中二级页面返回一级页面
- CSS实现聊天气泡效果
- prolog学习_修道士野人问题
- 中科云网控制人与董事长反目
- 展厅安装摄像头优化问题