思维之海

——在云端,寻找我的星匙。

计算机图形学

计算机图形学。计算机图形学是利用计算机研究图形的表示、生成、处理、显示的学科;计算机图形学计算机科学中,最为活跃、得到广泛应用的分支之一。例如,计算机图形学应用在电影、游戏、计算机仿真、CAD/CAM/CAE、建筑、可视化等领域。听胡老师讲了一番(新生博论也讲了一番),总的来说,给我的感觉是,计算机图形学的Paper大多数都是应用型创新,只要满足了某种需求,达到fancy的效果,那么便可发好会。

References

课程:计算机图形学,胡事民

本课程主要讲授真实感图形的生成与处理算法。包括:绪论、局部光照模型、整体光照模型、光线跟踪及其加速、辐射度算法、轴变形/FFD与计算机动画、自然景物模拟、基于图象的图形技术、小波方法与多分辨率网格造型等。

GAMES101 课程主页

GAMES101-现代计算机图形学入门-闫令琪 课程视频

计算机图形学与混合现实研讨会 课程讨论区,课程 BBS 作业发布页面

虎书 - fundamentals-of-computer-graphics-4th(n2rx)

Intro

光栅化(Rasdterization)。每秒30帧可以称为实时。光线追踪(Ray Tracing)。

GAMES101不是专门来教基础编程的,比如OpenGL/DirectX/Vulcan等等API。

计算机图形学和计算机视觉的区别:


变换 Transformation

主要利用矩阵对坐标系进行参数变换。以下主要介绍的是线性变换。

线性变换 Linear Transform

缩放 Scale

通过右侧输入坐标,左乘以变换矩阵,可以得到左侧的输出坐标

镜像 Reflection

切变 Shear

旋转 Rotate

默认绕原点、逆时针旋转(CCW)。属于正交矩阵。

旋转阵的推导:(待定系数法)

仿射变换 Affine Transform

平移 Translation

平移变换不再是线性变换。

平移无法直接通过矩阵变换得到。必须通过添加偏置来操作:

齐次坐标 Homogeneous Coordinates

设计一个额外维度:

  • 2D point: $(x, y, {\color{red}{1} })^T$
  • 2D vector:$(x, y, {\color{blue}{0} })^T$(保证平移不变性)
  • 2D point 任意化:$\left(\begin{array}{l}
    x \
    y \
    w
    \end{array}\right) \text { is the 2D point }\left(\begin{array}{c}
    x / w \
    y / w \
    1
    \end{array}\right), w \neq 0$

仿射变换 Affine Transformations

Affine map = linear map + translation。

逆变换 Inverse Transform

复合变换 Composing Transforms

这里出现了矩阵链乘。

变换分解 Decomposing Complex Transforms

把一个操作分解成简单变换。

3D变换 3D Transformations

同理,

  • 3D point: $(x, y, z, {\color{red}{1} })^T$(同样支持任意化)
  • 3D vector:$(x, y, z, {\color{blue}{0} })^T$

3D旋转

绕x,y,z轴:

注意:z叉乘x才能得到y,所以R_y矩阵是反的。

四元数

Understanding Quaternions《理解四元数》

Quaternions for Computer Graphics

四元数相当于复数的虚部扩展成3个虚部,每个虚部之间两两正交。

观测变换 Viewing Transformation

视图变换 View/Camera Transformation

投影变换 Projection Transformation

正交投影 Orthographic Projection

透视投影 perspective Projection

光栅化 Rasdterization

投影 Shading

几何 Geomery

光线追踪 Ray Tracing

渲染 Rendering

动画 Animation