高级计算机图形学:每周习题解析

Solution to Weekly Quiz

Posted by R1NG on October 7, 2022 Viewed Times

每周习题解析

Week I

20221230165312

回顾基本常识: B-Spline 是一种比 Bezier Curve 更强的曲线建模技术, 使用 B-Spline 方程建模的曲线首尾连接时, 接合处天然满足最强的 $C2$ 连接性 (即: 反映 tangent 的一阶导数和反映 curvature 的二阶导数都相等), 通过调整控制点即可 局部调整曲线形态, 而且控制点的数量和曲线的次数 无关, 直观区分一条曲线是被使用什么方法建模的可以直接观察曲线的两端是否通过控制点: Bezier Curve 是通过控制点的, 而 B-Spline 不是.

因此, 该题答案显然为 B.

20221230165706

回顾连续性的概念: C0 指视觉上两条曲线首尾相接; G1 指两条曲线在接合处切向量的方向相同; C1 指两条曲线在接合处切向量的大小和方向相等, 也就是一阶导数相等; C2 指两条曲线在接合处的一阶与二阶导数均相等, 即 Curvature 相同.

因此该题答案显然为 C.

下面讨论第三和第四题: 这两题的答案都需要使用曲线的参数化矩阵表示, 通过代入对应的 $t$ 得到坐标.

20221230170127

要求解这两题, 首先回顾 Bezier CurveB-Spline矩阵表示:

20220926105246

20220926202541

从矩阵表示中不难得到给定曲线的, 被参数 $t$ 所控制的 $x$ 和 $y$ 轴坐标的参数表达式:

\[x = \frac{-4 + 6t + 6t^2 -4t^3}{6}\] \[y = \frac{4 + 6t - 6t^2}{6}\]

因此对第三题, 分别代入终点对应的 $t=0$ 和 $t=1$ 可以分别得到坐标: $(-\frac{2}{3}, \frac{2}{3})$ 和 $(\frac{2}{3}, \frac{2}{3})$.

而对于第四题, 带入中点对应的 $t=\frac{1}{2}$ 可得到坐标: $(0, \frac{11}{12})$.

20221230170430

此题看图说话即可:

20221230173239

Week II

20221007125402

答案为 B. AD 显然错误, C 在此处所考虑的更多是 “在游戏中创建人物” 的流水线, 和构建模型无关.


20221007125513

A 是正确的: 由于曲线的隐式表示形如 $F(x, y, z) = 0$, 故若要 trace a variable, i.e., 给定自变量 $x, y$ 求因变量 $z$, 不同于显式表示和参数化表示的情形可以直接得出结果, 我们需要 求解隐式表示的方程 才能得到对应的 $z$.

B 也是正确的: 通过调节参数, 我们即可修改曲面的表示.

C 符合参数方程的定义, 因此也是正确的.

D 不符合显式函数表示的定义: 显式函数表示应该形如 $f(x, y) = z$.

因此本题答案应该为 D.

20221007130519

A, B 是正确的: Frenet 标架的主要作用是基于曲线上的点确定关于这个点的坐标系. 回顾 Frenet 标架确定的坐标系中, 三个坐标轴分别是曲线在该点的一阶导数 切线, 二阶导数 法线 以及三阶导数 切线与法线的叉乘, 因此可以说 Frenet 标架描述了曲线的几何性质.

C 选项是错误的, 因为实际上在转折点 (Inflection Point) 处真正发生翻转的是法线 $N$, 但 这是结果而非原因. 从直接原因的角度看, $T$ 向量就是切线向量, 被曲线的一阶导数描述, 是切线向量的转折导致了法线向量的翻转.

D 选项是正确的.

综上, 本题答案为 C.

20221007130955

回顾曲线隐式表示的定义: 对于隐式表示 $f(x, y, z)=0$, 若代入点导致 $f(x,y,z)<0$, 说明该点位于曲线内部, 若代入点导致 $f(x, y, z)=0$, 说明该点在曲线上, 若代入点导致 $f(x,y,z)》0$ 可知代入点在曲线外. 由此可知: 因为 $(0, 0, 0)$ 时表达式值为 $1$ 大于 $0$, 符合 “位于曲线外” 的情况. 故本题选 (0, 0, 0).

20221007131058

A 错误: 使用双三次贝塞尔表示法表示的曲面控制点数量是 $16$ 个. B 错误: 向网格中添加新的点和边都非常方便. C 正确: 任何情况下使用任何方式建模的曲面最后在渲染管线中都会被栅格化. D 错误: Displaced Surface 是凹凸不平的, 因为平面上的点的高度会基于 Displacement Map 中存储的 offset 被抬升对应的高度, 形成 凹凸不平 的曲面.

故本题答案为 C.

Week III

20221013154010

在构造物体运动的动画时, 对物体加速度程度的建模基于它的 质量.

20221013154625

Rigging: 绑定, 构造骨骼约束. Skinning: 蒙皮, 将骨骼和模型结合起来: 把 “蒙皮” 上的关键点映射到骨骼的对应位置上. Tweening: 自动插值补全关键帧间的动画, 又称补间. Posing: 将模型摆出特定的姿势.

基于题意可知, 在完成 Rigging 后下一步自然需要进行蒙皮操作.

20221013154608

色度图 (Chromaticity Diagram) 是从完整的色彩空间 拍扁到二维平面上 得到的, 因此它 不包含明度信息. 由此可知, 在更改颜色的亮度后, 它在色度图中的坐标 不变.

20221013154806

物体的颜色取决于它 不吸收什么波长的光, 若一个物体看上去为白色, 说明它 不吸收任何波长的光. 若某个物体吸收 所有波长的光, 则它看上去应该是 纯黑色. 其余选项均正确.

20221013154914

第二个视频中已经说明, 电影行业的帧速率标准 (大概) 为 $24\text{fps}$, 对视频而言 $30\text{fps}$ 已经够用, 视频网站, 手机和相机的默认视频播放/录制帧速率都是 $30\text{fps}$. 对于 VR, 为避免眩晕, 内建的显示屏需要提供至少 $90\text{fps}$ 的刷新率.

Week IV

20221230223839

注意: Rigging 是指为模型添加骨架的过程, 而 Skinning 是指将模型的表面贴图绑定到模型已有的骨架上的过程.

20221230223927

动作捕捉技术可以直接记录现实中物体的运动轨迹, 本质上相当于 “让现实的物理规则帮我们计算物体的运动, 白嫖大自然的算力”, 因此可以实现绝对贴近真实的效果.

20221230224032

该二阶微分方程描述了给定粒子的运动情况. 显然, 由于该粒子受两个作用力: 重力 $mg$ 和阻力 $dv$, 其受到的合力可以记为 $-mg-dv$. 由 加速度是速度的一阶导数 可知:

\[\frac{dv}{dt} = \frac{dx}{dt} \cdot \frac{d}{dt} = \frac{d^2x}{d{t^2}} = -g - \frac{dv}{m}.\]

20221230224503

由上一题的结论, 显然可得出正确答案.

20221230224538

注意欧拉法假设在考虑的这段极小的时间内物体的速度不发生变化, 因此沿用当前时刻物体速度的大小和方向, 预估极小时间变化内物体位移的变化. 由此可知, 给定的方程显然属于欧拉法的方程.

Week V

20221230225039

注:

hinge joint: 1 degree of freedom, (therefore when forming a hinge joint you need to decrease for 5 dofs)

ball joint: 3 degree of freedom (rotational), (therefore when forming a ball joint you need to decerase for 3 dofs)

universal joint: 2 degree of freedom (also rotational), (therefore when forming a universal joint you need to decrease for 4 dofs)

肩膀处的关节属于球状绞接关节. 如果实在难以想象, 请回忆一下鸡锁骨的结构.

20221230225128

有限元法适用于任何可形变物体的模拟, 弹簧模拟更适合模拟布料而非液体. 网格模拟的 Eulerian Fluid Simulation 和粒子模拟的 Lagrangian Fluid Simulation 是两种常用的流体模拟方式, 因此在这些模拟方法中需要选择相对最不合适的 弹簧模拟法.

20221230225334

考虑上述多种构造碰撞检测箱的算法时, 要确认它们的复杂程度级别只需回忆下面的图即可:

20221031225754

20221230225422

在考虑 $N$ 个物体之间的碰撞时, 任何两个不同的物体都需要检测一下, 因此总共需要执行 $\binom{N}{2} = \frac{n^2-n}{2} \in O(n^2)$ 次检测.

20221230225513

注意: 这也是本课程最后介绍的 Hierarchical Bounding Volume 的优点之一.

Week VI

20221225181853

渲染方程的一大重要假设就是: 在场景的某个点上观察到的光是该点自身发出的光和从所有其他点射到此处的所有光的合成. 由于可见光也可视为能量辐射, 因此这对应热力学第一定律: 物体内能的增加等于物体吸收的热量和对物体所作的功的总和.

20221225182110

渲染方程只关心 观察点到被观察点之间的角度, 并未真正考虑观察点的具体位置.

20221225182155

基于 Lambert Law 可知: 入射光线恰好垂直于平面时, 光强最大.

20221225182242

原因正确但结论不对: 在第一个视频的末尾提到, 正是因为渲染方程是 Fredholm Equation of Second Kind, 因此我们无法求出它的分析解.

20221225182336

a) 为我们从观察点所观测的, 目标点发散出的能量辐射 (Radiance), b) 为该点自身发散出的能量辐射 (Radiance), d 为不同方向上射入目标点的能量辐照 (Irradiance).

20221225182604

此题显然, 不做解释.

20221225182634

原因正确但结论显然错误. 项 e)Lambert Cosine Law Factor.

Week VII

20221227154356

答案显然, 回顾基础定义: 用于确定平面上的给定点是否能够接收来自任何光源的光照的光线是 “Shadow Feeler”, 它的指向必 直接朝向场景中光源的方向.

20221227154543

首先, 显然可以确认光线 E 是一条 反射光线, 并且它并不是 Shadow Feeler, 因为它并不直接指向场景中的任何光源. 此外, 在整个场景中只有 A 满足 Primary Ray 的定义: 直接从视平面中射出的光线. 由于此光线射出了场景之外, 既不是包含局部光照信息的 Shadow Feeler, 也没有再和任何物体交互, 也不会改变原光线的颜色, 因此可以确定它不会对最终场景有任何实质影响.

20221227154827

显然对于光线 GF 交汇的平面而言, 可以看出入射光线 C 与其交互后射出的两条 Shadow Feeler 都打到了场景中的两个光源上, 说明该平面是可以接受场景中光源的直接光照的. 此外, GF 实际上分别是入射光 C反射光折射光, 因此说明该平面 既不是完全不透明的, 也不是 会吸收所有光, 即 BRDF 为 $0$ 的.

20221227155147

个人认为这题的答案有问题, 应该是 irradiance flux.

20221227155218

基础概念题, 不做解释.

20221227155235

Form Factor 是描述两个面之间是否存在 遮挡 的量, 在确定 Form Factor 时显然考虑物体表面的材质不会有任何实际意义.

20221227155322

此题的语言描述极其不严谨: 在此处它所考虑的应该是 “光线追踪和辐射着色这两种方法间, 只能被辐射着色实现的效果有哪些”. 因为实际上, color bleed 是可以被路径追踪所实现的. 这是由于在第七周时我们还没学到路径追踪, 因此题目假设我们只会在传统光线追踪和辐射着色之间考虑. 希望考试时不要出现如此不靠谱的题目…

20221227155456

由于辐射着色是对整个场景中平面之间的辐射状态进行建模, 因此它的结果是与视点位置无关的.

Week VIII

20221225212827

传统的光线追踪首先可以实现所有的 Specular 效果和 Hard Shadow. 其次, 由于它以 确定性 的方式对光线的传播路径进行绝对精确的追踪, 因此它可以同时渲染出反射 (Reflection) 和折射 (Refraction) 效果. 最后, 在 nVIDIA 的视频 $7$ 中, 明确提及传统光线追踪也可支持类似丁达尔效应的 Participating Media 和视觉景深效果.

20221225213029

辐射着色的效果与任何 Specular 效果无缘. 在此基础上, 由于它的渲染逻辑基于 “物体表面之间的辐射交换”, 因此自然具有渲染出 Color BleedDiffuse Interreflection 的能力. 此外, 辐射着色渲染出的影子自然具有柔和的边界.

20221225213226

路径追踪具有上述的全部性质.

20221225213337

在只使用 BRDF 结合渲染方程对场景进行渲染时, 首先由于没有考虑 BTDF, 因此自然无法渲染折射 Refraction. 其次, 由于缺乏光线追踪或路径追踪对视觉景深的模拟, 单纯使用 BRDF 无法渲染出景深. 同样, BRDF 无法渲染出 Relativistic Effect. 最后, 由于 BRDF 是基于热力学的, 它自然也无法渲染 冷发光效果 (Luminsense).

20221225213703

注意: 纹理烘焙技术本身不依赖于视点的位置: 即便改变视点位置也不需要重新烘焙纹理贴图. 但烘焙到纹理贴图中的信息只有结合特定的视点位置才能得到最佳效果, 因此一旦移动视点, 纹理烘焙就无法再模拟物体表面的平滑高光, 平滑反射或折射, 而纹理烘焙技术更不可能模拟景深.

20221225214114

采样不足的话会导致渲染出的场景具有两个问题: NoisyInaccurate.

20221225213855

显然, 增加每个像素的采样数会导致计算复杂度随着像素数量 线性 增加, 也就是随着视平面的大小而增加: 视平面越大, 包含的像素数就越多.

20221225213955

作为基于热力学的渲染方法, 辐射着色自然与视点位置无关. 而变换视点位置也不会导致我们不得不重新烘焙纹理贴图, 唯一的后果就是让效果变得不真实.

Week IX

20221226141219

回顾直接体积渲染的相关知识: 由于直接体积渲染中包含类似于 ”光线的路径追踪“ 的流程, 因此它的渲染结果是 Viewpoint-Dependent 的. 不过需要注意: 在渲染前对 Volume Set 中每个 Voxel 的颜色和透明度的计算是 Viewpoint-Independent 的, 因为它只基于我们的实际观测需求和所有 Voxels 中数值的分布情况.

20221226141500

直接体积渲染以来的数据结构是 Voxel Array, 也称为 Volume Set.

20221226141532

原始数据中每个 Voxel 存储的数值可以是使用任何测量手段得到的, 关于物体的某种测度, 不局限于频率, 密度等; 如第一题的解释中提及的一样, 颜色和透明度在视角变换时无需被重新计算.

20221226141705

回顾间接体积渲染中, 使用 Marching Cube 方法计算 ISO Surface 所存在的问题: 由于 Ambiguity, 我们计算出的曲面多边形很可能是不真实的. 即便使用 Proxy Geometry, 在视角变换时也 不一定非得重新计算切片, 只不过不计算的话会使视觉效果不真实而已.

20221226141847

多边形网格可以直接用于执行常规渲染, 执行体积渲染需要提供对物体的某种测度.

Week X

20221226170337

Gridcell 背后的数据结构是 $3$ 维数组.

20221226170408

$3$ 维数组的访问时间复杂度是 $O(1)$.

20221226170436

GridcellOctree 的索引构建过程都是基于给定规则的.

20221226170537

Binary Space Partitioning 分划可以保留空间中的相对前后, 上下和左右关系.

20221226170605

不做解释, 概念题.

20221226171527

注意此处的 “Projected winding”, 这意味着多边形已经被渲染, 从而意味着此时再进行检测起到的仅是类似 z-buffer 的作用, 因此无法对渲染时间的提升起到有价值的帮助.