面试复习-计算机图形学

计算机图形学

线代基础

  1. 向量加法、投影
  2. 向量点乘、叉乘
  3. 矩阵乘法

变换

  1. 线性变换:缩放、对称、切变,旋转
  2. 齐次坐标(为了平移变换)仿射变换:线性变换+平移
  3. 复合变换从右向左应用(矩阵乘法的结合律)

投影

  1. MVP
  2. 正交投影 Mortho
  3. 透视投影 MorthoMpersp->ortho

光栅化

  1. 三角形的优势(在一个平面、内外可由叉乘判断、三角形内部插值)
  2. 采样(把函数离散化)在像素的中心判断,在不在三角形内(叉乘,分别在三条边的左/右侧)
  3. 锯齿、摩尔纹、车轮效应:采样的频率和函数的频率相差
  4. 傅里叶展开:周期函数写成常数+正余弦函数
  5. 傅里叶变换(时域->频域)-卷积(时域的卷积->频域的乘积)-逆傅里叶变换
  6. 反走样 增加采样率或者先做模糊(低通滤波-拿走高频信息/卷积)再做采样
  7. MSAA多重采样:像素内部多加采样点再平均
  8. FXAA快速近似抗锯齿:得到有锯齿的图,找到边界,替换成没有锯齿的边界
  9. TAA:对静态物体,复用上一帧的值
  10. DLSS:拉大分辨率+深度学习
  11. 深度测试:画家算法(从远到进做光栅化处理:互相遮挡的情况下不能使用)Z-buffer:z是距离摄像机的距离(一定是正的),处理不了透明物体

着色

  1. 着色是局部的,与其他物体无关(所以这里不考虑阴影)
  2. 漫反射:光照强度与表面的法线夹角的余弦有关,与距离有关;与观察角度无关
  3. 镜面反射:与半程向量与法向的夹角的余弦值,求p次幂有关,与距离有关
  4. 环境光照:是一个常数(颜色值),避免黑色
  5. 着色频率:着色应用在每一个三角形、顶点、像素上
  6. 求顶点的法线:附近三角形法线的加权平均(权和三角形的面积有关)求逐像素的法线:从顶点的法线插值
  7. 渲染管线(一系列不同的操作):点-投影到平面上(形成三角形)-光栅化-着色-输出
  8. 纹理映射:在纹理上定义坐标系UV,将三角形映射到uv上;纹理可以映射到不同的地方
  9. 插值:知道了三角形顶点的纹理位置,怎么知道三角形内部任意一点的位置(平滑过渡) 重心坐标(三角形内任意一点表示成对ABC三个顶点的线性组合,三个系数和为1;求法:面积比) 使用任意一个点的中心坐标进行插值 取三位空间的坐标,不能取投影之后的坐标:投影可能会改变重心坐标
  10. 纹理比较小的情况 双线性插值:在uv上插值(取周围四个) 双三次插值(取周围16个点)
  11. 纹理比较大的情况(一个像素显示很大一块纹理) 超采样(耗时) 范围查询(Mipmap:处理纹理,每层分辨率减半;额外的1/3存储) 由一个像素算出在uv上有多大面积->求出是第几层->不是整数层,在两层之间插值(三线性插值) Mipmap由于只能算正方形区域,所以还可以进行各向异性过滤(部分解决,而且开销变成三倍)EWA过滤:用圆形多次查询
  12. 纹理应用 环境光->记录在球上并展开->存在立方体的表面上(6张图) 凹凸贴图->记录相对高度->改变了法线(切线方向(导数)旋转90°、局部坐标系)->在任意方向给出了假的法线 位移贴图->与凹凸贴图相似->但是真的会移动点的位置(要求模型足够精细) 三维纹理->三维空间的噪声函数动态生成 记录已经计算好的东西(环境光遮蔽) 体渲染

几何

  1. 面表示方法 方程/函数(显式、隐式)、布尔运算、距离函数、水平集、分形
  2. 物体表示方法 点云、三角形面、定义法线,顶点坐标->描述连接关系
  3. 曲线 贝塞尔曲线 直观解释:递归 代数解释:Bernstein多项式对每个控制点的插值 性质:可以直接对控制点进行仿射变换;凸包性质:曲线在控制点的凸包内 逐段贝塞尔曲线(常用4个控制点)
  4. 样条线 B-样条线(一种扩展的贝塞尔曲线,复杂)
  5. 曲面 16个控制点,在两个方向上分别运用贝塞尔曲线,双线性插值
  6. 网格处理 细分(loop细分:分割产生新结点,调整顶点位置使更光滑;catmull-clark细分:对一般的有四边形和三角形面的细分,对每个面连接每条边中心和面中心,调整位置)、简化(边坍缩,二次误差度量选出误差最小的边,坍缩)、正规化
  7. 阴影图Shadow Mapping 从光源看到物体(z-buffer),生成图记录深度->从摄像机看到物体,把看到的图投影到刚才记录的图,深度是否一致

光线追踪

  1. 最原始的做法:拟光线传播的路径,从人眼出发(每个像素发出一根),求光线与物体的交点(面的显/隐式表示,三角形)
  2. 加速:使用包围盒,如果碰不到包围盒则肯定碰不到物体 对三个对面,计算光线进入和出去的时间,求交集 进入时间<离开时间&&离开时间>0:代表光线有交点
  3. 加速(不适合物体不均匀的情况):划分网格->有哪些网格有可能有交点->光线会穿过哪些格子
  4. 加速:空间划分 八叉树(有足够少的物体时停止切分)KD-Tree(切分时每次只在一轴分成两半,x-y-z轴交替划分:建立难,物体可能在多个格子里) BSP-Tree(每次取一个方向)
  5. 加速:划分物体 把盒子里的三角形分成两部分形成新的包围盒(新的包围盒可能相交)
  6. 辐射度量学: BRDF(光线打在物体上,向各个方向反射的分布)
  7. 渲染方程:反射光=自己发的光+(入射光*BRDF*夹角)的积分=光源+直接反射+2次反射+…
  8. 蒙特卡洛积分(采样求平均)
  9. 路径追踪 蒙特卡洛积分取N=1(噪声大)、一定条件下停止(俄罗斯轮盘赌) 改进:在光源上积分(从物体上积分,有很多情况打不到光源)

材质与外观

  1. 材质==BRDF
  2. 菲涅尔反射
  3. 微表面模型 物体表面由微小镜面组成

动画

  1. 关键帧动画:插值
  2. 物理仿真动画:受力模拟(质点弹簧系统)
  3. 粒子系统:定义个体和群体之间的关系
  4. 运动学:正运动学(给角度,算出位置) 逆运动学(给位置算出角度):应用-Rigging
  5. 欧拉方法:每一帧的位置=上一帧的位置+dx
  6. 改进-中点法:先用欧拉法,再用得到的结果做二次欧拉
  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值