计算机动画——9-10

物理模拟技术

  • 刚体动力学模拟
    • 平移、旋转及碰撞等
  • 柔体动力学模拟
    • 柔软的有机材料的直观可信的仿真
  • 流体动力学模拟
  • 碰撞侦测

物理动画关键因素

  • 根据已知物理运动规律来模拟物体运动
  • 动画制作更注重运动的整体质量不涉及物体的位置和方向的精准控制
  • 可信度胜过精准度

运动学模拟

基于牛顿运动三大定律(但是不用解析法求解物体任意时刻的状态)

采用欧拉方法作数值积分求解任意时刻t的状态

记位置矢量 p ( t ) p(t) p(t),速度矢量 v ( t ) v(t) v(t),加速度矢量 a ( t ) a(t) a(t),其中
lim ⁡ Δ t → 0 p ( t + Δ t ) − p ( t ) Δ t = v ( t ) lim ⁡ Δ t → 0 v ( t + Δ t ) − v ( t ) Δ t = a ( t ) 当 Δ t 取 很 小 值 , 则 有 : p ( t + Δ t ) ≈ p ( t ) + v ( t ) Δ t v ( t + Δ t ) ≈ v ( t ) + a ( t ) Δ t \lim_{\Delta t \rightarrow 0} \frac{p(t+\Delta t)-p(t)}{\Delta t} = v(t)\\ \lim_{\Delta t \rightarrow 0} \frac{v(t+\Delta t)-v(t)}{\Delta t} = a(t)\\ 当\Delta t取很小值,则有:\\ p(t+\Delta t) \approx p(t) + v(t)\Delta t\\ v(t+\Delta t) \approx v(t) + a(t)\Delta t Δt0limΔtp(t+Δt)p(t)=v(t)Δt0limΔtv(t+Δt)v(t)=a(t)Δt,:p(t+Δt)p(t)+v(t)Δtv(t+Δt)v(t)+a(t)Δt

基本步骤

  1. 获取(初始)状态信息
  2. 绘制(需清楚之前绘制的结果)
  3. 更新状态信息
    在这里插入图片描述

运动模糊

运动模糊又叫动态模糊,用来表现场景中物体的移动效果非实时渲染

优点:使得运动变得更加平滑,场景更逼真

实现

  • 保留每帧绘图结果
  • 每帧画一个半透明的黑色长方形,将前面绘制的结果变暗

粒子系统

大量微小物质组成的系统,这些微小的物质按一定的规则运动(变化)

粒子特点

  • 粒子的运动状态
  • 粒子独立,一般不考虑相互影响,考虑与环境的影响
  • 粒子有生命周期,生命结束后消失
  • 粒子形状可以是任意形状
  • 粒子若处于聚集状态,粒子不向其他粒子的投射阴影,不考虑反射光,只考虑对环境的投射阴影

基本属性

  • 运动属性
    • 位置
    • 速度
    • 加速度
  • 生命
    • 衰减速度
  • 颜色
  • 大小

基本思想

  • 许多简单形状的粒子聚集起来形成一个模糊物体
  • 粒子的生命周期内控制他们的产生,运动,变化和消失

程序架构

  1. 初始化
  2. 更新粒子系统状态(生命与运动状态)
  3. 绘制粒子

渲染效果

粒子与环境交互

  • 简单碰撞——完全弹性碰撞

纹理效果

纹理贴图(Texture Map)的范围是[0.0,1.0],通过投影映射到几何物体上

形状

  • 正方形——两个三角形

运动模糊(见物理模拟技术)

粒子生成

粒子数= n = m + v × R a n d ( ) n=m+v \times Rand() n=m+v×Rand()
其中 m m m为平均粒子数, v v v为方差

粒子上的力

  • 一元力:重力、粘性阻力
  • 偶力:可表示弹簧阻尼器
  • 环境力:根据粒子与环境的关系来得到

绘制

  • 点光源:小图元+颜色相加
  • 布告板:纹理多边形面向视点
  • 元球:可用于模拟水等液态效果
    • 隐式曲面:具有等势场的点集来定义曲面
  • Alpha Blending
  • snowflakes

碰撞检测

在这里插入图片描述
响应
把模拟回退到接触点,修改粒子的位置和速度
在这里插入图片描述
v n e w = − ε v n + v t v_{new}=-\varepsilon v_n+v_t vnew=εvn+vt,其中 ε 是 回 弹 系 数 \varepsilon是回弹系数 ε

弹性

弹性网络

弹簧- 质量模型:质点+连接(边)

改进
弹簧-质量-阻尼系统:以免一直晃动

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值