图形学笔记(十八)光场、颜色和感知—— 光场相机(全光函数、光线和光场的定义)、可见光谱、谱功率密度、颜色的生物学基础、Tristimulus Theory、同色异谱、加色与减色系统、颜色空间SPD
1 Animation的理解
“Bring things to life”
- 交流的工具
- 美学引导技术
建模的扩展
- 把3d模型延申到时间的维度
输出:按顺序播放的图片序列,提供一种运动感。
- 电影:24 fps
- Video(通常):30 fps
- Virtual reality:90 fps
2 Historical Point in Animation
-
First Animation:Shahr-e Sukhteh, Iran 3200 BCE
-
Phenakistoscope, 1831
-
First Film:Edward Muybridge, “Sallie Gardner”(1878)
最早用作科学研究工具。
-
First Hana-Drawn Feature-Length (>40 mins) Animation: Disney, "Snow White and the Seven Dwarfs”(1937)
-
First Digital-Computer-Generated Animation: lvan Sutherland,“Sketchpad”(1963) - Light pen, vector display
-
Eariy Conputer Animation: Ed Catmull & Frederick Parke, “Computer Animated Faces”(1972)
-
Digital Dinosaurs! Jurassic Park (1993)
-
First CG Feature-Length Film: Pixar,"Toy Story”(1995)
-
Compuier Animation - 10 years ago: Sony Pictures Animation, "Cloudy With a Chance of Meatballs”(2009)
-
Computer Animation - 2019: Walt Disney Animation Studios,“Frozen 2”(2019)
3 动画技术
3.1 Keyframe Interpolation 关键帧插值
关键帧动画的制作步骤:
- Animator 创建keyframes.
- Assistant(人或计算机)创建 in-between frames.
关键帧动画一般使用插值方法来进行补帧,把每一帧当作参数值的向量,下面是线性插值。
问题:线性插值效果不够好。
用于平滑/可控插值的回归样条。
3.2 Physical Simulation:物理仿真
3.2.1 概览
牛顿运动定律 F = m a F = ma F=ma
使用数值模拟生成物体的运动。
例子:布料模拟Cloth Simulation、Fluid 流体
、质点弹簧系统 Mass Spring System、头发 Hair、质点弹簧网格Mass Spring Mesh。
3.2.2 质点弹簧系统 Mass Spring System
1> A Simple Spring
理想化的弹簧:没有长度,作用力会导致位移。
k
s
k_s
ks是弹簧的系数coefficient:stiffness 进度系数。
2> 非0长度的弹簧
问题:永远震动oscillate下去。
3> Simple motion damping
- 在运动中表现viscous drag
- 在速度方向减速运动
- k d k_d kd是damping系数
问题:所有运动都会停止(不能表现弹簧内部的损耗)。
4> Internal Damping for Spring
只阻尼内部,由弹簧驱动的运动。
Viscous drag 仅限于弹簧长度的变化,不会减慢弹簧系统的整体运动(例如,整体平移或旋转)
Note: 这只是一种特殊的阻尼(damping)。
5> Structures from Springs
弹簧结构的连接可以决定一个图形的行为,比如改进下面的连接来模拟布料。
原始的不足之处:
- 切变会影响形状。
- 会使原来的形状不在一个平面上。
改进之后:
- 在对角线连接弹簧会抵抗切变。
- 在两个对角线都连切线避免了各向异性。
- 红色的弹簧会避免out-of-plane bending(两条对角线竖直方向会弯折)。
Mass Spring Dress + character 效果
有限元方法FEM(Finite Element Method)(代替弹簧系统的一种模拟布料的办法)
常用来做汽车碰撞,主要思想是力与力之间存在传导,效果如下。
3.2.3 Particle System 粒子系统
- 粒子系统就是将动态的系统建模为大量粒子的集合
- 每个粒子的运动都是由一组物理(或非物理)力定义的。
- 粒子系统是在图形和游戏上很流行的技术。
- 具备可扩展性:粒子越少,速度越快,粒子越多,速度越慢。
挑战
- 可能需要许多粒子(例如流体)
- 可能需要加速结构(例如寻找最近的粒子进行如引力的相互作用)
步骤
- 创建新的粒子(如果需要的话)。
- 计算每个粒子的力。
- 更新每个粒子的位置和速度。
- 移除死掉的粒子。
- 渲染粒子。
粒子系统的作用力
-
引力和斥力(repulsion) 如:万有引力、磁力、弹力(Springs)、弹簧、推进力(propulsion)。(eg:万有引力)
-
阻力(Damping forces):摩擦(Friction),空气阻力(air drag),粘度 (viscosity)…
-
碰撞(Collisions):墙壁、容器、固定的物体…。与动态物体、人物身体部位等…。
模拟动物集群(Flocking)as an ODE
(1) 把每个鸟建模成一个粒子。
(2) 每个粒子都受制于简单的力。
- attraction to center of neighbors(鸟找到周围的鸟融入到中间去)。
- repulsion from individual neighbors(大家不愿意离的太近个体之间存在斥力)。
- alignment toward average trajectory of neighbors(考虑运动的平均方向)。
(3) 使用数值方式(数值求解)模拟大粒子系统的演化。
(4) 可以模拟复杂的情况(鱼、蜜蜂等)。
4 Kinematics 运动学
4.1 Forward Kinematics 正运动学
4.1.1 Articulated skeleton 关节骨骼系统
- Topology 是一种拓扑结构(描述什么与什么连接)
- 关节(joints)间的几何关系。
- 树形结构
4.1.2 Joint 类型
-
Pin(1D rotation):在平面内旋转
-
Ball(2D rotation):可以旋转到不同的平面
-
Prismatic joint(translation):可以拉长
例子:2D中简单的两端骨骼。
Animator提供角度,计算机决定end-effector的位置p。
Animation是用角度参数与时间的函数来描述的。
4.1.3 Kinematics的优缺点
优点
- 直接控制方便
- 便于实施
不足
- 动画可能难以用物理的方式来制作(不直观,艺术家不喜欢)
- 消耗动画师的时间
4.2 Inverse Kinematics 逆向运动学
4.2.1 概览
根据尖端获得关节的位置。
Animator提供end-effector的位置,计算机决定满足限制的joint角度。
Direct inverse kinematics:对于两端的臂的求解方法如下。
4.2.2 问题
逆运动学的解不唯一。
解有可能不存在。
4.2.3 N-link lK问题优化方法
- 选择一个初始构型。
- 定义一个 error metric(如:目标与当前位置之间距离的平方)。
- 计算误差梯度作为构形的函数
- 应用梯度下降(或牛顿法,或其他优化程序)
4.3 应用
4.3.1 Rigging 绑定
Rigging是一套高级角色控制,允许更快速和直观地修改姿势、变形、表情等。
- 就像提线木偶的线一样。
- 捕捉所有有意义的角色变化。
- 因角色而异。
制作昂贵:具有人工误差并需要艺术和技术的训练。
4.3.2 Blend Shapes 混合形状
直接在曲面之间进行插值。
例如对一组面部表情进行建模。
最简单的方案:取顶点位置的线性组合,样条用于控制随着时间的推移权重的选择。
4.3.3 Motion Capture 动作捕捉
Motion Capture是创建动画序列的数据驱动方法。
下面是三种动捕设备(光学、磁力和机械)。
记录真实世界的表现(例如执行活动的人),从收集到的数据中提取姿态作为时间函数。
优点
- 非常贴近真实
- 可以快速的过去大量的真实数据。
缺点
- 准备工作复杂且高花费。
- 捕捉到的动画可能不满足艺术家的需要,需要选择。
Optical Motion Capture
- 在动捕演员上做标记(小球或贴片)。
- 8+ 摄像机,240 Hz,有遮挡现象会变得困难。
Motion Data
面部动画的挑战
Uncanny valley (恐怖谷效应)
人造角色的表情越真实就越恐怖,直到达到完全真实。