图形学笔记(十九)动画 —— 动画的历史、关键帧插值、物理仿真、质点弹簧系统、粒子系统、(反向IK)动力学、Rigging 绑定、Blend Shapes、动作捕捉

图形学笔记(十八)光场、颜色和感知—— 光场相机(全光函数、光线和光场的定义)、可见光谱、谱功率密度、颜色的生物学基础、Tristimulus Theory、同色异谱、加色与减色系统、颜色空间SPD

1 Animation的理解

“Bring things to life”

  • 交流的工具
  • 美学引导技术

建模的扩展

  • 把3d模型延申到时间的维度

输出:按顺序播放的图片序列,提供一种运动感。

  • 电影:24 fps
  • Video(通常):30 fps
  • Virtual reality:90 fps

2 Historical Point in Animation

  1. First Animation:Shahr-e Sukhteh, Iran 3200 BCE
    在这里插入图片描述

  2. Phenakistoscope, 1831
    在这里插入图片描述

  3. First Film:Edward Muybridge, “Sallie Gardner”(1878)
    最早用作科学研究工具。
    在这里插入图片描述

  4. First Hana-Drawn Feature-Length (>40 mins) Animation: Disney, "Snow White and the Seven Dwarfs”(1937)

在这里插入图片描述

  1. First Digital-Computer-Generated Animation: lvan Sutherland,“Sketchpad”(1963) - Light pen, vector display
    在这里插入图片描述

  2. Eariy Conputer Animation: Ed Catmull & Frederick Parke, “Computer Animated Faces”(1972)
    在这里插入图片描述

  3. Digital Dinosaurs! Jurassic Park (1993)
    在这里插入图片描述

  4. First CG Feature-Length Film: Pixar,"Toy Story”(1995)
    在这里插入图片描述

  5. Compuier Animation - 10 years ago: Sony Pictures Animation, "Cloudy With a Chance of Meatballs”(2009)
    在这里插入图片描述

  6. Computer Animation - 2019: Walt Disney Animation Studios,“Frozen 2”(2019)
    在这里插入图片描述

3 动画技术

3.1 Keyframe Interpolation 关键帧插值

关键帧动画的制作步骤:

  1. Animator 创建keyframes.
  2. 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
在这里插入图片描述弹簧结构的连接可以决定一个图形的行为,比如改进下面的连接来模拟布料。

在这里插入图片描述
原始的不足之处:

  1. 切变会影响形状。
  2. 会使原来的形状不在一个平面上。

改进之后:

在这里插入图片描述

  • 在对角线连接弹簧会抵抗切变。
  • 在两个对角线都连切线避免了各向异性。
  • 红色的弹簧会避免out-of-plane bending(两条对角线竖直方向会弯折)。

Mass Spring Dress + character 效果
在这里插入图片描述
有限元方法FEM(Finite Element Method)(代替弹簧系统的一种模拟布料的办法)
常用来做汽车碰撞,主要思想是力与力之间存在传导,效果如下。

在这里插入图片描述

3.2.3 Particle System 粒子系统

  • 粒子系统就是将动态的系统建模为大量粒子的集合
  • 每个粒子的运动都是由一组物理(或非物理)力定义的。
  • 粒子系统是在图形和游戏上很流行的技术。
  • 具备可扩展性:粒子越少,速度越快,粒子越多,速度越慢。

挑战

  • 可能需要许多粒子(例如流体)
  • 可能需要加速结构(例如寻找最近的粒子进行如引力的相互作用)

步骤

  1. 创建新的粒子(如果需要的话)。
  2. 计算每个粒子的力。
  3. 更新每个粒子的位置和速度。
  4. 移除死掉的粒子。
  5. 渲染粒子。

粒子系统的作用力

  • 引力和斥力(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问题优化方法

  1. 选择一个初始构型。
  2. 定义一个 error metric(如:目标与当前位置之间距离的平方)。
  3. 计算误差梯度作为构形的函数
  4. 应用梯度下降(或牛顿法,或其他优化程序)

4.3 应用

4.3.1 Rigging 绑定

Rigging是一套高级角色控制,允许更快速和直观地修改姿势、变形、表情等。

  • 就像提线木偶的线一样。
  • 捕捉所有有意义的角色变化。
  • 因角色而异。

制作昂贵:具有人工误差并需要艺术和技术的训练。

在这里插入图片描述

4.3.2 Blend Shapes 混合形状

直接在曲面之间进行插值。

例如对一组面部表情进行建模。
在这里插入图片描述
最简单的方案:取顶点位置的线性组合,样条用于控制随着时间的推移权重的选择。

4.3.3 Motion Capture 动作捕捉

Motion Capture是创建动画序列的数据驱动方法。

下面是三种动捕设备(光学、磁力和机械)。
在这里插入图片描述

记录真实世界的表现(例如执行活动的人),从收集到的数据中提取姿态作为时间函数。

优点

  1. 非常贴近真实
  2. 可以快速的过去大量的真实数据。

缺点

  1. 准备工作复杂且高花费。
  2. 捕捉到的动画可能不满足艺术家的需要,需要选择。

Optical Motion Capture

在这里插入图片描述

  • 在动捕演员上做标记(小球或贴片)。
  • 8+ 摄像机,240 Hz,有遮挡现象会变得困难。

Motion Data
在这里插入图片描述
面部动画的挑战
Uncanny valley (恐怖谷效应)
人造角色的表情越真实就越恐怖,直到达到完全真实。

5 动画/电影生产的Pipeline

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值