
计算机图形学笔记GAMES101系列(已完结)
文章平均质量分 92
个人初学计算机图形学的笔记包含知识点和作业,以后做复习笔记用,对应闫令琪老师GAMES101课程,链接:https://www.bilibili.com/video/BV1X7411F744?p=1。
Magic__Conch
这个作者很懒,什么都没留下…
展开
-
GAMES101作业(08)- 质点弹簧系统(编译坑)
这个比较坑,卡了好长时间,作业PDF里面不全。总之在运行之前,我在终端运行了以下代码来安装各种库。若出现下载不了的情况,可以`sudo apt-get update`更新一下列表。原创 2021-12-17 19:28:33 · 2528 阅读 · 1 评论 -
图形学笔记(二十)粒子、刚体、流体的模拟—— 欧拉方法、Errors 和 Instability、中点法、自适应步长、隐式欧拉方法、Runge-Kutta方法、刚体与流体模拟(质点法、网格法、MPM)
1 Single Particle Simulation 单个粒子模拟 1.1 单个粒子的运动 1.2 Euler's Method 欧拉方法 1.2.1 欧拉方法的errors(误差) 1.2.2 欧拉方法的instability(不稳定性) 1.2.3 Errors 和 Instability 1.3 克服不稳定性的方法 1.3.1 Midpoint M原创 2021-12-17 15:08:05 · 3796 阅读 · 1 评论 -
图形学笔记(十九)动画 —— 动画的历史、关键帧插值、物理仿真、质点弹簧系统、粒子系统、(反向IK)动力学、Rigging 绑定、Blend Shapes、动作捕捉
1 Animation的理解 2 Historical Point in Animation 3 动画技术 3.1 Keyframe Interpolation 关键帧插值 3.2 Physical Simulation:物理仿真 3.2.1 概览 3.2.2 质点弹簧系统 Mass Spring System 3.2.3 Particle System 粒子系统 4 Kinematics原创 2021-12-14 17:37:31 · 1743 阅读 · 0 评论 -
图形学笔记(十八)光场、颜色和感知—— 光场相机(全光函数、光线和光场的定义)、可见光谱、谱功率密度、颜色的生物学基础、Tristimulus Theory、同色异谱、加色与减色系统、颜色空间SPD
1 Light Field / Lumigraph 光场 1.1 The Plenoptic Function 全光函数 1.2 Ray 光线 1.3 光场 1.3.1 光场的定义 1.3.2 光场的优势 1.3.3 光场的两种表示方式 1.3.4 Light Field Camera 光场摄像机 2 颜色 2.1 颜色的物理学基础原创 2021-12-12 23:43:45 · 6778 阅读 · 0 评论 -
图形学笔记(十七)相机,棱镜 ——FOV、焦距、曝光、F-Stop、ISO、薄透镜公式、Circle of Confusion Size、景深、理想薄透镜光线追踪
文章目录1 Pinhole Image Formation 针孔相机成像1.1 Pinhole Camera1.2 Field of View(FOV)视场1 Pinhole Image Formation 针孔相机成像1.1 Pinhole Camera1.2 Field of View(FOV)视场...原创 2021-12-10 16:43:35 · 6581 阅读 · 0 评论 -
图形学笔记(十六)渲染的高级问题 —— BDPT、MLT、光子映射、VCM、IR、散射介质、毛发材质(双圆柱模型)、次表面散射、布料渲染
图形学笔记(十五)材质和外观 —— 菲涅尔项、常见材质(微表面材质、各向同性与各向异性)、BSDF、BRDF的性质、测量BRDF1 高级光线传播1.1 有偏(Biased)与无偏(Unbiased)Monte Carlo估计无偏的Monte Carlo方法没有任何系统误差。即无论使用多少样本,无偏估计的期望值总是正确的。有系统误差存在就是有偏估计。一种特殊的有偏估计——consistent:当取样无穷大时没有系统误差。在图形学中Biased 有偏 == blurry 模糊.原创 2021-12-07 15:56:38 · 3595 阅读 · 0 评论 -
图形学笔记(十五)材质和外观 —— 菲涅尔项、常见材质(微表面材质、各向同性与各向异性)、BSDF、BRDF的性质、测量BRDF
图形学笔记(十四)光线追踪4——蒙特卡洛(Monte Carlo)积分、路径追踪详细过程(Whitted-Style的问题于RR(俄罗斯轮盘赌)算法、Ray Generation)、照片级真实感渲染文章目录1 外观和材质2 反射和折射2.1 Perfect Specular Reflection 完全镜面反射2.2 Specular Refraction 折射2.2.1 Snell's Law 折射定律2.2.2 Snell's Window / Circle2.3 Fresnel Refectio.原创 2021-12-04 21:39:58 · 4243 阅读 · 0 评论 -
GAMES101作业(07)- 路径追踪
作业来自官网知识点整理文章目录总览任务解答castRay() in Scene.cppIntersectP in the Bounds3.hpp结果总览在之前的练习中,我们实现了 Whitted-Style Ray Tracing 算法,并且用 BVH等加速结构对于求交过程进行了加速。在本次实验中,我们将在上一次实验的基础上实现完整的 Path Tracing 算法。至此,我们已经来到了光线追踪版块的最后一节内容。任务需要迁移的代码Triangle::getIntersection in原创 2021-12-03 23:19:41 · 1286 阅读 · 0 评论 -
GAMES101作业(06)- 加速结构(求光线与包围盒的交点、使用BVH加速结构)
作业来自官网知识点整理文章目录总览任务解答Render() in Renderer.cppTriangle::getIntersection in Triangle.hppIntersectP in the Bounds3.hppgetIntersection in BVH.cpp结果总览在之前的编程练习中,我们实现了基础的光线追踪算法,具体而言是光线传输、光线与三角形求交。我们采用了这样的方法寻找光线与场景的交点:遍历场景中的所有物体,判断光线是否与它相交。在场景中的物体数量不大时,该做法可以取得原创 2021-12-03 14:53:49 · 1498 阅读 · 1 评论 -
GAMES101作业(05)- 光线与三角形相交(Moller Trumbore算法)
作业来自官网知识点整理文章目录总览解答Renderer.cppTriangle.hpp结果总览在光线追踪中最重要的操作之一就是找到光线与物体的交点。一旦找到光线与物体的交点,就可以执行着色并返回像素颜色。在这次作业中,我们需要实现两个部分:光线的生成和光线与三角的相交。本次代码框架的工作流程为:从 main 函数开始。我们定义场景的参数,添加物体(球体或三角形)到场景中,并设置其材质,然后将光源添加到场景中。调用 Render(scene) 函数。在遍历所有像素的循环里,生成对应的光线并将原创 2021-11-27 13:25:00 · 3557 阅读 · 0 评论 -
图形学笔记(十四)光线追踪4——蒙特卡洛(Monte Carlo)积分、路径追踪详细过程(Whitted-Style的问题于RR(俄罗斯轮盘赌)算法、Ray Generation)、照片级真实感渲染
图形学笔记(十二)光线追踪2——加速光线和场景的求交、空间划分(八叉、KD树)、BVH加速结构、辐射度量学基础、BRDF、基本概率论文章目录1 蒙特卡洛(Monte Carlo)积分1.1 用处1.2 方法1.2.1 基本思想1.2.2 过程1 蒙特卡洛(Monte Carlo)积分1.1 用处蒙特卡洛(Monte Carlo)积分目的是解决定积分,但是它难以积分(不定积分不好求)。1.2 方法1.2.1 基本思想在积分域内不断采样,获得y值,不断的与ab范围获得一个个长方形,然后把.原创 2021-12-02 11:35:37 · 3272 阅读 · 0 评论 -
图形学笔记(十三)光线追踪3——双向反射分布函数BRDF(反射方程、递归方程)、辐射度量学基础radiometry、立体角、Radiant Energy、Flux、Irrdiance、Radiance
文章目录1 辐射度量学(Basic radiometry)1.1 辐射度量学的动机1.2 概览1.3 角、立体(solid)角、微分立体角1.4 Radiant Energy and Flux(Power)1.4.1 Radiant Energy1.4.2 Radient Flux(Power)1.5 与光相关的物理量1.5.1 Radient intensity1.5.2 Irradiance(辐射[照]度)1.5.3 RadianceIncident RadianceExiting Radiance1.原创 2021-12-01 18:09:43 · 2736 阅读 · 0 评论 -
图形学笔记(十二)光线追踪2——使用AABB包围盒加速光线追踪、空间划分(八叉树、KD树、BSP树)、物体划分(BVH加速结构)、光线与物体求交
图形学笔记(十一)光线追踪——Shadow Mapping、光线追踪、光线投射、软硬阴影、光线与物体交点、AABB包围盒文章目录1 使用AABB包围盒加速光线追踪1.1 Uniform Spatial Partitions (Grids)均匀空间划分1.1.1 预处理——建立加速格子1.1.2 光线与场景求交点1.1.3 加速效果1.2 空间划分(Spatial Partitions)1.2.1 空间划分的例子1.2.2 KD-Tree1> KD-Tree 的基本结构2> 计算光线与物体.原创 2021-11-29 19:19:07 · 3392 阅读 · 0 评论 -
图形学笔记(十一)光线追踪——Shadow Mapping、光线追踪、光线投射、软硬阴影、光线与物体交点、AABB包围盒
文章目录1 Shadow Mapping与光线追踪1.1 Shadow Mapping1.1.1 概览1.1.2 Shadow Mapping步骤1> 从光源渲染2> 从摄像机渲染1.1.3 Shadow Mapping结果1.1.4Shadow Mapping的问题1.2 软阴影和硬阴影1.2.1 概览1.2.2 软阴影的原理1.3 进行光线追踪(Ray Tracing)的原因1 Shadow Mapping与光线追踪1.1 Shadow Mapping1.1.1 概览Shadow M原创 2021-11-23 21:20:45 · 4059 阅读 · 0 评论 -
GAMES101作业(04)- Bézier 曲线(包含公式和递归写法)
作业来自官网知识点整理文章目录总览解答注意常规写法递归写法结果总览Bézier 曲线是一种用于计算机图形学的参数曲线。在本次作业中,你需要实现 de Casteljau 算法来绘制由 4 个控制点表示的 Bézier 曲线 (当你正确实现该算法时,你可以支持绘制由更多点来控制的 Bézier 曲线)。解答直接代入公式即可,也可用递归解决(但是有公式为啥要递归呢)。注意window.at<cv::Vec3b>(point.y, point.x)[1] = 255;这里把绘制的原创 2021-11-23 15:11:53 · 2960 阅读 · 0 评论 -
图形学笔记(十)几何2 —— 曲面细分(Loop细分、Catmull-Clark细分)、曲面简化(边坍缩、二次度量误差)、曲面正则化
网格操作网格细分网格简化网格正则化原创 2021-11-22 12:56:37 · 5042 阅读 · 0 评论 -
图形学笔记(九)几何 ——几何表示方法(CSG、距离函数、水平集 、点云、网格(obj格式))、贝塞尔曲线(面)
文章目录1 几何的表示方法1.1 隐式的几何表示(Implicit)1.1.1 概览1.1.2 CSG —— Constructive Solid Geometry(Implict)1.1.3 距离函数 Distance Function(Implict)1.1.4 水平集 Level Set Methods(Implict)1.1.5 分形 Fractals(Implict)1.2 显式的几何(Explicit)1.2.1 概览1 几何的表示方法分为显式(Implicit)和隐式(Explicit)。原创 2021-11-20 16:11:01 · 6050 阅读 · 4 评论 -
GAMES101作业(03)- Pipeline and Shading(Phone/纹理/位移/贴图着色器的实现与插值的使用)
作业来自官网文章目录总览1 rasterize_triangle(const Triangle& t)解答注意2 get_projection_matrix()解答注意3 phong_fragment_shader()解答注意结果4 texture_fragment_shader()解答注意结果5 bump_fragment_shader()解答注意结果6 displacement_fragment_shader()解答注意结果总览在这次编程任务中,我们会进一步模拟现代图形技术。我们在代码中添原创 2021-11-19 17:32:02 · 1760 阅读 · 3 评论 -
图形学笔记(八)着色2 —— 纹理映射、重心坐标、双线性插值、Mipmap、三线性插值、各向异性过滤、纹理的应用(环境贴图、法线贴图等)
1 纹理映射1.1 定义纹理映射(Texture Mapping),又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。简单来说,就是把一幅图像贴到三维物体的表面上来增强真实感。任意三角形的顶点都能找到顶点在纹理上哪个位置。1.2 纹理的坐标系 —— UV坐标U和V的范围都在0到1内。三角形的三个顶点,每个顶点都对应一个UV。纹理能被多次使用。如果纹理重复上下左右可以无缝衔接,则称这个纹理是tiled textures。(有一种算法叫Wang tiling)1.3 三角形原创 2021-10-31 14:45:18 · 5358 阅读 · 0 评论 -
GAMES101作业(02)- Triangles and Z-buffering (实现光栅化和MSAA)
作业来自官网相关课节知识点整理文章目录问题描述问题分析问题解答运行效果心得写在最后问题描述本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点 v 0 (2.0, 0.0, −2.0), v 1 (0.0, 2.0, −2.0), v 2 (−2.0, 0.0, −2.0), 你需要将这三个点的坐标变换为屏幕坐标并在屏幕上绘制出对应的线框三角形 (在代码框架中,我们已经提供了 draw_triangle 函数,所以你只需要去构建变换矩阵即可)。简而言之,我们需要进行模型、视图、投影、原创 2021-10-28 18:06:30 · 1044 阅读 · 0 评论 -
图形学笔记(七)着色 —— Blinn-Phone 反射模型、着色频率、渲染管线、GPU
1 着色 Shading1.1 定义shading:The darkening or coloring of an illustration or diagram with parrel lines or a block of color.引入明暗和颜色的不同。着色:对不同物体应用不同材质(material)的过程。1.2 Blinn-Phone 反射模型1.2.1 基本的定义计算某一着色点(shading point)对于相机的光照。输入(v,n,l,长度都是1):观察方向,v表原创 2021-10-26 17:51:00 · 2939 阅读 · 0 评论 -
图形学笔记(六)光栅化2 —— Artifacts、时域与频域、滤波、卷积定理、超采样、MSAA、深度缓存
视频本质上是对时间进行采样。在计算机图形学中Artifacts(瑕疵)指的是Errors / Mistakes / Inaccuracies采样产生的artifacts:锯齿Jaggies——空间采样摩尔纹Moire Pattterns(去掉奇数行和奇数列)—— 欠采样undersampling右侧图片纹理显示不清晰。Wagon wheel effect车轮效应——时间上的采样顺时针旋转的车轮有的环看起来像逆时针。以上很多artifact是由于信号变换太快而采样太慢。反走样的方法:原创 2021-10-22 15:02:17 · 3674 阅读 · 0 评论 -
GAMES101作业(01)-旋转与投影
作业来自官网相关课节知识点整理文章目录问题描述问题分析问题解答运行效果心得写在最后问题描述本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点 v 0 (2.0, 0.0, −2.0), v 1 (0.0, 2.0, −2.0), v 2 (−2.0, 0.0, −2.0), 你需要将这三个点的坐标变换为屏幕坐标并在屏幕上绘制出对应的线框三角形 (在代码框架中,我们已经提供了 draw_triangle 函数,所以你只需要去构建变换矩阵即可)。简而言之,我们需要进行模型、视图、投影、原创 2021-10-20 16:11:56 · 721 阅读 · 0 评论 -
图形学笔记(五)光栅化——屏幕、像素、屏幕空间、视口变换、基础图元与三角形、采样、包围盒、锯齿或走样
1 在MVP之后在上一节中我们通过MVP变换将所有物体都映射到了经典立方体中([−1,1]3[-1,1]^3[−1,1]3)。接下来,我们要把立方体画到屏幕上。1.1 什么是屏幕(screen)屏幕是像素的二维数组(pixel),数组的大小被称为分辨率(resolution)屏幕是一个典型的光栅(raster)成像设备1.2 光栅化(raster)光栅(Raster)就是德语中的屏幕。光栅化(Rasterize)就是把东西画在屏幕上的过程。1.3 像素(pixel)像素是图片单原创 2021-10-19 16:22:32 · 4979 阅读 · 0 评论 -
图形学笔记(四)变换——三维变换(三维旋转与欧拉角)、MVP变换、视图变换、投影变换(正交投影与透视投影)
三维空间中的齐次坐标:(x,y,z,w)在三维空间中表示的点:三维空间中齐次坐标的仿射变换矩阵(4*4):注意以上矩阵表示先线性变换,再平移。三维旋转:以绕x轴旋转为例,x是不变的,所以可以得到变换矩阵的第一个行向量(1,0,0,0)。然后对y和z进行α\alphaα的旋转得到第二个行向量(0,cosα,−sinα,0)(0,\cos\alpha,-\sin\alpha,0)(0,cosα,−sinα,0)和第三个行向量(0,sinα,cosα,0)(0,\sin\alpha,原创 2021-10-15 18:11:43 · 8237 阅读 · 0 评论 -
图形学笔记(三)变换——缩放、镜像、切变
1. 缩放(Scale)变换1.1 均匀缩放代数形式:x′=sxx^{'}=sxx′=sxy′=syy^{'}=syy′=sy矩阵形式:其中,缩放矩阵:(s00s) \begin{pmatrix}s&0\\0&s\\\end{pmatrix}(s00s)1.2 不均匀缩放对应的缩放矩阵:2. 镜像(Reflection)变换:水平镜像:代数形式:矩阵形式:3. 切变Shear:Tips:y=0时,水平方向的变化是0;y=1时原创 2021-10-14 14:21:16 · 5119 阅读 · 0 评论 -
图形学笔记(二)图形学中的线性代数——向量、矩阵(转置、逆)、叉乘、点乘
此节对应虎书第二章(Miscellaneous Math)与第五章(Linear Algebra)1. 图形学所需基础1.1 基础数学线性代数,微积分,统计 Linear algebra,calculus,statics1.2 基础物理光学,力学 Opitics,Mechanics1.3 其他信号处理 Signal processing (走样、反走样)数值分析 Numerical analysis需要一点美学…2. 向量Vectors2.1 向量的基本性质写.原创 2021-10-13 20:02:05 · 2596 阅读 · 0 评论 -
图形学笔记(一)图形学概览:图形学的定义、应用、学习内容、参考读物、与视觉的区别
什么是图形学?图形学是合成和操纵视觉信息的计算机应用。为什么学习图形学?游戏什么才是好的画面(从技术角度)? 画面是不是足够亮(体现渲染中的全局光照)电影特效(special effects):通过图形学技术合成出来并且和实际存在的东西完美结合,看起来真实。人的面部动作捕捉:由真人演员做出表情反应到虚拟的环境中。(不仅是图形学应用)。动画毛发,毛发与光线作用。怎么做:几何:描述复杂几何形体。渲染:把图形真正表现出来。计算:计算光线在几何形体之间的传递方式。烟雾 发光 粒子.原创 2021-10-13 15:19:46 · 3188 阅读 · 0 评论