Games101笔记——Lecture 22:Animation (cont.)

Lecture 22:Animation (cont.)

  • 今日话题
    • single particle simulation
      • 详细的欧拉方法
      • instability and improvements
    • 刚体模拟
    • 流体模拟
  • 广告

Single Particle Simulation

  • 先模拟某个粒子在一个速度场中怎么移动
    • 对于任何位置、任何时间,都知道其速度
      在这里插入图片描述
  • Ordinary Differential Equation (ODE) 一阶常微分方程
    在这里插入图片描述
  • 设定起始位置
    在这里插入图片描述
  • 欧拉方法!——最简单的思路(或者前向欧拉、显式欧拉)
    • 始终用上一刻时间的量估算下一刻的量
    • 但是非常不准,而且会迅速变得不稳定
  • 欧拉方法的一个问题——误差
    • 小步长较为精确,大步长不够精确
    • 可以通过减小步长缓解
      在这里插入图片描述
  • 欧拉方法的另外一个问题——稳定性
    • 比如螺旋形场不管如何减小步长,最后都会飞出去
    • 下面第二个图会越模拟越大,不会按照道理水平
    • 不稳定性就是无论步长如何,最后结果都会和实际结果无限远
  • 误差和不稳定性
    • 误差问题不大,可以通过减小步长降低
    • 不稳定问题很大,会diverge——差得特别大,而且一定会出现
    • 不稳定性的例子
      在这里插入图片描述
Combating Instability 解决不稳定性
  • 如下一些方法,挨个说
    在这里插入图片描述
  • 方法一:Midpoint Method 中点法
    • 取欧拉方法的目标点与起点的中点,以该中点的速度重新对起点计算欧拉方法
      在这里插入图片描述
    • 写出并展开,实际上是因为中点法比欧拉方法多了一个二次项
      在这里插入图片描述
  • 方法二:Adaptive Step Size —— 中点法更好的应用,一个自适应思路
    • 将时间分半计算两次 ΔT/2
    • 是否继续分半取决于分与不分的差别大不大
    • 在不同的位置选用不同的 ΔT 做计算
      在这里插入图片描述
  • 方法三:Implict Euler Method 隐式的欧拉方法
    • 也被称为backward methods,后项的欧拉方法
    • 用的永远是下一个时间的导数
    • 比较不好解,怎么办?
      • 只需要解下一个时刻的位置和速度
    • 但是稳定性非常好
      在这里插入图片描述
    • 如何定义方法是否稳定、多么稳定?
      • 定义每一步的截断误差
      • 以己整体最后的误差
      • 研究误差如何随着更小的ΔT而减小,二者间的关系
      • 隐式的欧拉方法是一阶的
        • 局部误差是O(h平方)
        • 全局误差是O(h)
        • h即为ΔT
        • 理解h,对于O(h)如果h减小一半误差也减小一半
        • 说明阶数越高越好
  • 一类有名的方法,龙格库塔方法
    • 此方法擅长解ODE
    • 特别是非线性的方法
    • 其中一个用的最广泛的方法,四阶方法——RK4
    • 去哪了解更详细?数值分析!
  • 方法四:Position-Based / Verlet Integration
    • 不是基于物理的方法
    • 比如当弹簧的长度超过一个阈值,让它立刻回归原长度
    • 快速简单
    • 但是有时候不太能量守恒
      在这里插入图片描述

Rigid Body Simulation 刚体模拟

  • 刚体不会发生形变
  • 内部相对一致
  • 各种物理量的求导
    在这里插入图片描述

Fluid Simulation 流体模拟

  • 所谓 position-based 方法,一些假设:
    • 认为水体又一堆刚体小球形成
    • 水在任何地方都是不可压缩的,密度一致
    • 由此产生解决思路,如果有地方密度不一样,则需要进行修正——通过移动小球的位置修正
    • 为了修正,需要任何一点对所有小球粒子位置的梯度/导数
    • 接下来,就是梯度下降法!
    • 这是不基于物理的模拟!
  • 拉格朗日方法(质点法) vs. 欧拉方法(网格法)
    • 对于大规模物体模拟的两种方法!
      在这里插入图片描述
    • 最近有人把这两种方法结合了 MPM
      • 由格子到粒子
        在这里插入图片描述
  • 课上完了 (准备回去补写前面12节的笔记
    在这里插入图片描述
  • 下边一步怎么学习?
    • realtime rendering + opengl?
    • 学directX + realtime path tracing?
    • 几何得有深厚数学基础!
    • 光线传播的话看本讲后面的广告!
    • 模拟仿真得去看games201
  • 广告不写了先
  • 拜拜!
根据提供的引用内容,以下是MySQL 5.7.43版本的安装和配置教程: 1. 首先,从MySQL官方网站下载MySQL 5.7.43版本的安装包。下载地址为:https://downloads.mysql.com/archives/community/。选择适合您的操作系统的64位版本。 2. 下载完成后,解压缩安装包到您想要安装MySQL的目录。 3. 接下来,配置环境变量。打开系统的环境变量设置,将MySQL的安装目录添加到系统的PATH变量中。这样,您就可以在命令提示符窗口中直接使用MySQL命令。 4. 在MySQL的安装目录下创建一个my.ini配置文件。您可以使用文本编辑器创建一个新的文本文件,然后将其重命名为my.ini。在my.ini文件中,添加以下内容: ``` \[client\] port=3306 \[mysql\] default-character-set=utf8 \[mysqld\] port=3306 basedir="D:/MYSQL/mysql-5.7.35-winx64/" datadir="D:/MYSQL/mysql-5.7.35-winx64/data/" character-set-server=utf8 default-storage-engine=MyISAM sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" log-bin=mysql-bin server-id=1 ``` 请注意,根据您的实际安装路径和需求,可能需要对上述配置进行适当修改。 5. 完成配置后,打开命令提示符窗口,并切换到MySQL的安装目录。 6. 在命令提示符窗口中,运行以下命令以安装MySQL服务: ``` mysqld --install MySQL --defaults-file=D:\MYSQL\mysql-5.7.35-winx64\my.ini ``` 7. 安装完成后,运行以下命令以初始化MySQL: ``` mysqld --initialize --user=mysql --console ``` 8. 初始化完成后,您可以启动MySQL服务,并开始使用MySQL数据库。 请注意,以上是MySQL 5.7.43版本的安装和配置教程。如果您使用的是其他版本,可能会有一些细微的差异。建议您在安装和配置过程中参考MySQL官方文档或相关教程以获取更详细的信息和指导。 #### 引用[.reference_title] - *1* *2* *3* [每一步详细指导MySQL安装,mysql5.7.35版本完整下载安装配置过程](https://blog.csdn.net/voodon/article/details/121280085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值