思维之海

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

计算机图形学

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

References

课程:GAMES101 闫令琪,课程主页

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

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

课程:计算机图形学基础b站视频) 胡事民

课程:计算机图形学,胡事民/张松海

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

课程:CMU《计算机图形学》课程(2020) by Keenan Crane

课程:GAMES201:高级物理引擎实战指南2020 胡渊明

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

引入

光栅化(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

几何 Geometry

光线追踪 Ray Tracing

渲染 Rendering

动画 Animation

课堂笔记 Rough

摘自计算机图形学课程

简单光反射模型:Phong模型

简单光反射模型:Phong模型

  • 光源被假定为点光源,反射作用被细分为镜面反射(Specular Reflection)和漫反射。
  • 只考虑直接光照,物体间的光反射作用,只用环境光表示。

Phong模型的三个光部:

  • 理想漫反射
  • 镜面反射
  • 环境光
    • 指间接光源对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。我们近似地认为同一环境下的光强是均匀的。

Phong模型的近似算法

  • 光源在无穷远处
  • 视点在无穷远处

大幅降低计算量。

增量光反射模型:Gou

马赫带效应:人类视觉系统夸大具有不同常量光强

——双线性光强插值

增量可以有效利用每次计算的结果,从而减少计算量。

插值方法的缺陷

局部光反射模型

光的电磁理论:由自然光产生的反射光,其反射角由如下Fresnel公式确定。

Fresnel公式表明,物体的反射率不仅与光线的

微平面法向的分布函数

局部基于入射光能量导出的光辐射模型

简单光反射模型基于经验

光线追踪 Ray Tracing

Turner Whitter,光线跟踪算法是他的第一篇论文,他一共只发表过26篇论文

将视窗区域看成是由空间中的像素组成的矩阵,人眼透过这些像素看到场景中的物体,每一个像素都形成一条光路,然后逆向跟踪,在每一个反射点计算相应的局部光照模型。(递归算法)

正向:利用产生的光子模拟反射路径,然后对管线进行跟踪,

光线求交 Ray Intersection

光线的表示

光线与平面求交

求解联立方程

光线与三角形求交

先与平面求交

检查交点在三角形内部

光线与球面求交

计算球心到光线的距离来确定是否相交

计算投影点到光线与球面的焦点的位置关系

使用视角的像素光栅发射光线,并形成光照模型

光线投射 Ray Casting

光线追踪的青春版。

Ray Casting就相当于0层递归。

添加阴影(Shadows)

多层递归

添加纹理(Texture)

光线追踪符合物理原理吗

毕竟是反向追踪QAQ

图像处理

纹理合成:从一小块纹理图像合成出一整张纹理。

基于规则建模

数据驱动的方式

以互联网海量媒体数据作为素材,通过先检索、再过滤、最后合成的步骤生成新的内容。

当数量足够多时,量变产生质变,合成的效果和能力得到保证。

基于深度学习的方法

以卷积神经网络为工具,利用对抗训练策略,学习潜在语义信息……


以下介绍基于规则建模的内容。

颜色空间处理

最常见的工具:PS(Photoshop)。

编辑传播

编辑传播技术(AppProp):用户仅输入少量的信息,算法将用户的编辑传播到相似的区域去。“牵一发而动全身”。

编辑相似的物体 / 相似区域 / 相似的像素。

相似度分为:颜色相似度,位置相似度。建议一个基于这两种相似度的度量函数,然后进行优化即可。


基于kd树的编辑传播。

实现了对于视频/动画(连续多帧图像)的编辑传播。

使得编辑传播技术的时空消耗下降到可实用的程度。

梯度域图像编辑

相对于绝对的像素值,人类视觉系统对局部对比度更加敏感。

GradientShop。

锐化。

图像和谐化

色彩和谐化

一幅图像的色彩可能不是很和谐(让人觉得比较搭配或者看上去舒服)。

统计所有颜色像素的直方图,然后对比美学中的和谐直方图的分布(八种)。

选择一种最相似的(或者任意选一种),然后进行色彩变化,得到一种和谐的颜色分布。

颜色一致性

区域内部颜色的分布一致。

内容编辑

内容敏感的图像缩放

不同显示设备的长宽比不一样。如何在不同的设备上保持内容的正常比例,就涉及到了图像缩放。

保持图像中核心物体的纵横比

计算每个像素的敏感性/显著性,表现为每个像素的能量(计算它在图像中的散度的绝对和)。

缩放时主要改变的是能量少的像素点。

图像融合

使不同来源的图像的接合变得十分完美。就好像一张图一样。

从视觉上消除拼接过程中产生的明显的边界。

在人感知场景的过程中,物体之间的边缘信息比物体颜色的绝对数值更加重要。

保留图像的梯度。

网格模型

网格:mesh(不等于高性能里边的grid)

用一些网格面片来模拟一个三维物体。

三维数据的来源

  • 直接输入
  • 照片测量法(photogrammetry)
    • 基于照片测量法获取RGBD数据:微软Kinect
      • 数据获取的成本大大降低

基于网格的几何处理

网格细分

先有一个简单几何体,再不断加入新的mesh,细分(Subdivision)曲面,从而产生非常平滑的网格模型。

精细的改进。

Loop细分

对三角形网格进行细分,每个三角形被细分为4个新的三角形,替代原来的三角形。从而实现不断地细分。

$\sqrt3$细分

如何把三角形细分为3个新的三角形并且保证新的三角形不变形。

网格简化 Simplification

采样 Sampling

取采样点,作为新网格的点,替代原网格。

基于特征敏感的自适应采样方法。

自适应细分 Adaptive subdivision

寻找一个可以递归产生的细分模型。

去除

顶点合并 Vertex merging

长方体滤波

划分网格空间,聚类同一个子空间中的所有点,得到低模,同时能够继承原网格模型的拓扑结构。

方法的主要缺点是顶点的合并导致了一些重要高频细节的丢失。

顶点删除技术

删除顶点集中不重要的点。

  • 局部平坦性准则
    • 跟伞撑开/不撑开的原理类似
  • 表面包络(Surface Envelope)
    • 控制整体误差:等距线(offset curve)
    • 只要删除顶点后,新模型不超过内外的等距线
    • 包络线其实是一组曲线的确界

顶点分裂

二次误差简化

网格简化中最优美的方法。

点移动到平面上外以后,代入平面方程会不等于0,将这个值平方,称为这一点的二次误差度量。

网格分割

将输入网格分割成小片(Patch),每个小片具有一定语义/几何信息。

  • k-路分解
  • 0-1分解:即2-路分解,分成两个。
  • 层次化分解

带权对偶网格

生成对偶网格实际把面片的分类转化为了对顶点的分类问题。这样就好办很多。

测地距离的计算。

模糊聚类。在k均值中引入概率的概念。

——> 每个面片最终被分到某个类中,从而实现网格的分割。

最小割?确定切割路径。

基于深度学习的网格分割

Jittor计图。。?

还是得抽时间了解了解这个框架。。

最小割算法

网络流。

最小割 = 最大流。

增广路。

网格参数化与几何图像

网格参数化

一个三维曲面可以建立和某个更简单的参数空间之间的映射,称为参数化方法。常用的参数空间是平面,多面体和球面。

如果曲面和圆盘同拓扑且有界,则很容易将之映射到平面上。

保度量映射(只能是可展曲面)
共形映射,保角,conformal
保面积映射

尽量让参数化前后的网格扭曲distortion尽量小。

优化目标:全局的角度扭曲或面积扭曲之和最小。

基于顶点的方法。
基于角度的方法。ABF。
用角度做变量来描述角度扭曲的能量在形式上比较简单。

基于Circle Packing的方法。丘成桐,顾险峰。
在每个顶点做一个圆,将圆的半径作为变量,而保持相邻圆的交角不变。这样可以实现完美的共形。

多面体参数化。一种折衷的方案。
先得到低模网格,然后得到多面体面片。。每个片对应一个参数化。

球面参数化。将网格曲面弹性地覆盖到球面上。

写文章motivation特别重要。

siggraph 两年时间。每次开会讨论都写下记录文档。一步步演化。

球面参数化的应用:形状分析。

缺点:亏格需要为0,如果亏格大于0,就需要切开。

网格参数化的应用:纹理映射、网格重剖、几何图像、图像矢量化……

平面共形参数化算法

共形参数化

共形映射可以很好地保持局部纹理。

LSCM方法

siggraph2002

基于Circle Packing(圆填充)的逆曲率映射

共形映射的另一性质:保无限小圆。

在有限的给定区域中,用圆进行密铺,每个圆之间保持相切关系。

几何图像

顾险峰。

建立了模型和图像之间的桥梁。

基于骨架的网格变形技术

通过维度很低的骨架实现复杂模型的变形

SSD技术

基于深度学习的图像处理

SIGGRAPH 每年论文也就100篇左右。竞争激烈。

以2019为例,深度学习席卷了SIGGRAPH……


有趣的卷积核:

  • Sobel算子(有趣的过滤卷积核)
  • Laplacian边缘
  • Gaussian模糊

对图像施加不同的卷积核,就可以得到不同的图像特征(feature map)。

深度学习中,卷积核的参数通过学习得到。

简单的多次卷积得到的仍然是线性变换。所以在中间加入非线性变换,提高变换的表示能力。

非线性还能保持梯度不致消失。

为了减小计算量及消除物体平移变换造成的影响,引入池化(pooling)操作。将一个区域上的值压缩成一个值。

图像风格迁移

黑白、全彩、素描、油画、水彩……

Pix2pix:从草图生成图像。

CycleGAN:没有成对数据集也可以搞风格迁移。两个风格的数据集之间没有对应关系,也可以进行训练。搞两个判别器和两个生成器。

图像补全

空洞卷积(dilated convolution),使得网络能填充较大的缺失区域。

注意力机制提高效果。

渲染图像去噪

较少的采样次数 + 深度学习,得到仍然较好的渲染结果。

采样光线次数比较少的时候,容易出现噪声。

未来的工作

视频的智能处理

图像视频的质量评价

图像视频的语义理解(超越识别、分类,突破语义)