计算机图形学——学习笔记
计算机图形学——学习笔记
前言
:::info
终于迈出学习计算机图形学的第一步了……
:::
++喜欢上计算机图形学的起因大概是听了传奇程序员==约翰·卡马克==的故事,这位推动了3D发展的大佬给我留下了无比深刻的印象。++{.dot}

再加上我对渲染、光追、VR、AR等等也都很感兴趣,就想去了解更多,于是也就有了这篇记录博客。{.danger}
计划第一步——GAMES101-现代计算机图形学入门
++计划先观看闫令琪大佬的视屏:GAMES101-现代计算机图形学入门++{.wavy}
{% links %}
- site: GAMES101-现代计算机图形学入门 owner: 闫令琪 url: https://www.bilibili.com/video/BV1X7411F744?from=search&seid=16228307511649123560 desc: 闫令琪 image: https://tva4.sinaimg.cn/large/008ieO5lly8gpxh7gr2ajj308c08c3yp.jpg color: “#e9546b” {% endlinks %}
编辑器当然还是用我最喜欢的VIM !!虽然视屏里闫令琪老师极其不推荐,但我用了挺多插件,真的顺手…….!!
开发环境我决定使用实体机,因为不喜欢用虚拟机,尤其是其他发行版的Linux……{.danger}
视屏里的作业首先需要下载编译器和两个库,ArchLinux可以直接执行以下命令安装:
|
|
Eigen是矩阵库,OpenCV是视觉和机器学习软件库(实测最新的版本4.x也可以)
gcc是编译器,CMake是一个跨平台的安装(编译)工具
其他部分是依赖
:::success
从入门到放弃的{.danger} 进度
:::
视屏进度
;;;id1 P1——P5
-
P1 图形学概述
-
P2 线性代数回顾:点乘(方向角度)、叉乘(判断左右、内外)、矩阵(基础概念)
-
P3 2D仿射变换:(线性变换)旋转、平移(水温逐渐升高)
-
P4 3D变换、观测(视图、投影)、正交、透视投影(青蛙煮熟了)
-
P5 三角形光栅化(采样)、缩放、平移、旋转
;;;
;;;id1 P6——P10
-
P6 光栅化(反走样、深度缓冲)、Artifacts、先做模糊(滤波)再采样、时域的卷积=频域的乘积、MSAA(多重采样抗锯齿,同一像素增加了采样点)、FXAA(快速近似抗锯齿,不是采样,先模糊,再替换边界锯齿)、TAA(时间近似抗锯齿,复用上一帧)、Super resolution(超分辨率)、DLSS !!深度学习==猜,淦!!
-
P7 可见性遮挡(深度缓存)、着色、画家算法、Z-Buffer(例如深度一样游戏会闪就是)、shading(着色不同材质)、漫反射(和观测方向无关)
-
P8 Blinn-Phong着色模型、高光(半程向量和法向量是否足够接近,余弦的指数一般用100——200)、环境光(大胆假设:常数)、着色频率(每个面片、顶点、像素)、实时渲染(图形)管线、shader(着色器)、纹理映射
-
P9 纹理的应用、重心坐标插值(为得到顶点间平滑的过度)、纹理贴图(纹理低分辨率时Bilinear双线性插值)、双向三阶插值(Bicubic)、纹理太大会丢失细节(又是走样!)、Mipmap(范围查询、只能近似方形)、log2 L、三线性插值(纹理内部双线性插值,Mipmap层之间插值)得到连续的图、Overblur(Mipmap用了近似)、各向异性过滤(矩形区域)
-
P10 环境光照(环境光纹理)、cubemap、凹凸贴图、位移贴图、几何???
;;;
;;;id1 P11——P15
-
P11
-
P12
-
P13
-
P14
-
P15
;;;
;;;id1 P16——P20
-
P16
-
P17
-
P18
-
P19
-
P20
;;;
;;;id1 P21——P23
-
P21
-
P22
-
P23
;;;
作业进度
-
作业0 还行,能做
-
作业1 人类迷惑行为?代公式,懂了
-
作业2 怀疑智商…MSAA的黑线好难改
-
作业3
-
作业4
-
作业5
-
作业6
-
作业7
!!不能放弃,坚持!!!
笔记大纲
- Transformation 变换
- Model 模型变换
- View 视图变换
- Projection 投影
- Rasterization 光栅化
- Viewport 视口变换
- Sample 采样
- Antialisaing 反走样
- Z-Buffering 深度缓冲
- Shading 着色
-
Illumination 光照(Blinn-Phong着色模型)
- Diffuse 漫反射
- Specular 高光
- Ambient 环境光
-
shading frequencies 着色频率
- Flat shading 逐面着色
- Gouraud shading 逐顶点着色
- Phong shading 逐像素着色
-
pipline 管线
- 实时渲染管线流程
- shader 着色器
-
第二步——Fundamentals of Computer Graphics
!!英文也太难啃了,看一眼就头大了!!{.bulr}
学习更新记录
-
!!2021-05-24!!
-
!!2021-05-30!!
没啥好的记笔记方法,等一波小米的平板出了再继续学习。。。
- 2021-06-26 重装系统忘记备份作业代码了。。。更新鸽了
- 2021-09-18 买了平板!可以在pdf课件上记笔记啦,方便多了!重启学习计划!
- 2021-09-19 完成P3, Hw0
- 2021-09-23 完成P4-5, Hw1
- 2021-09-26 完成P6-7, Hw2 MSAA黑线问题:先渲染绿色三角形后,边界为绿色和黑色的混合。再渲染蓝色三角形时,因为只维护了像素点的深度信息,判定蓝色三角形这条边上的像素比绿色远,不进行渲染,无法覆盖绿黑边像素。解决方法:增加深度buffer大小,将所有采样点的深度信息都进行维护,这样绿色边界只有三个采样点较近,还有一个为黑色无穷远,这一个采样点被下方的蓝色同一采样点的深度信息替换。这样,两三角形的交界处的一个像素内有三个绿色采样点,一个蓝色采样点。颜色为他们的混合,3/4绿色 + 1/4蓝色。