Games101学习笔记 Lecture22 Animation(cont.)

Lecture22 Animation(cont.

  • 一、单个粒子模拟
    • Ordinary Differential Equation ODE 常微分方程
    • ODE求解方法——欧拉方法
    • 解决不稳定
      • 中点法
      • 改进欧拉方法
      • 自适应步长
      • 隐式欧拉方法
  • 二、流体模拟
    • 基于位置的方法
    • 物质点方法

一、单个粒子模拟

  • 想模拟粒子在场中的运动

Ordinary Differential Equation ODE 常微分方程

  • 将粒子的位置与时间之间的关系表达为一个方程
    在这里插入图片描述

ODE求解方法——欧拉方法

  • 通过迭代的方法近似粒子的运动轨迹
  • 步骤
    • 初始化: 设置初始位置 x0 和时间步长 Δt。
    • 迭代:
      • 计算当前时间步长 t 下粒子的速度 v ( x ( t ) , t ) v(x(t), t) v(x(t),t)
      • 根据速度和步长更新粒子的位置: x ( t + Δ t ) = x ( t ) + Δ t ∗ v ( x ( t ) , t ) x(t + Δt) = x(t) + Δt * v(x(t), t) x(t+Δt)=x(t)+Δtv(x(t),t)
      • 更新时间: t = t + Δ t t = t + Δt t=t+Δt
    • 重复步骤 2,直到达到所需的时间步数
  • 问题
    • 控制好步长 —— 误差随着时间步长的增加而增加
    • 稳定性差:当时间步长较大时,容易导致模拟结果发散在这里插入图片描述

解决不稳定

中点法

  • 在每个时间步长内,计算当前时间步长和下一时间步长中点的速度,并用该速度更新位置
    在这里插入图片描述

改进欧拉方法

  • 计算当前时间步长和下一时间步长速度的平均值,并用该平均值更新位置
  • 二次模型比一次更准确
    在这里插入图片描述

自适应步长

  • 根据误差估计来调整时间步长
  • 把时间分成两部分,若结果相近符合,则不用继续分 Δ t Δt Δt,反之,继续分时间步长

隐式欧拉方法

  • 使用下一时间步长的速度来更新位置

二、流体模拟

基于位置的方法

  • 基本思想:将流体视为由大量不可压缩的刚性球体组成,并通过调整这些球体的位置来模拟流体的流动
  • 核心假设:流体的密度保持恒定,任何密度变化都会通过调整球体位置来“纠正”
  • 实现方法:计算每个粒子的密度梯度,并通过梯度下降法更新粒子的位置
  • 问题:不是基于物理的,会耗散能量(误差),难以模拟复杂现象

物质点方法

  • 基本思想: 结合拉格朗日(质点法)和欧拉(网格法)两种视角,使用粒子来携带材料属性,并使用网格来进行数值积分
  • 实现方法
    • 拉格朗日视角:使用粒子来表示流体,每个粒子携带密度、速度等属性
    • 欧拉视角:使用网格来表示流体的状态,并在网格上求解流体的运动方程
    • 交互:粒子将属性传递给网格,网格进行更新,然后插值回粒子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3248266.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

使用OpenCV寻找图像中的轮廓

引言 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它提供了大量的视觉处理功能,包括图像和视频捕获、特征检测与匹配、图像变换、图像分割、颜色空间转换等。在图像处理中,寻找图像中的…

Docker容器下安装Matlab,无需挂载

Matlab的安装需要这些文件 传入ubuntu后,改过相关的文件权限后,发现还是无法挂载 这有可能是docker的安全管理策略导致容器不能挂载,因此采用不挂载形式,直接解压的方式安装Matlab 1.将iso改成zip,并解压 2.解压rar文件…

MimicMotion-腾讯开源视频生成框架

腾讯宣布开源可控视频生成框架 MimicMotion,该框架可以通过提供参考人像及由骨骼序列表示的动作,来产生平滑的高质量人体动作视频 MimicMotion 具有以下几个亮点: 首先,通过引入了置信度感知的姿态引导信号,大幅提升了…

Ubuntu20.04从零开搭PX4MavrosGazebo环境并测试

仅仅是个人搭建记录 参考链接: https://zhuanlan.zhihu.com/p/686439920 仿真平台基础配置(对应PX4 1.13版) 语雀 mkdir -p ~/tzb/catkin_ws/src mkdir -p ~/tzb/catkin_ws/scripts cd catkin_ws && catkin init catkin build cd…

Re-labeling ImageNet(CVPR 2021, Naver)

paper:Re-labeling ImageNet: from Single to Multi-Labels, from Global to Localized Labels official implementation:GitHub - naver-ai/relabel_imagenet 背景 ImageNet 数据集是现代计算机视觉领域的重要基准,广泛用于图像分类模型的…

中国社科大与英国斯特灵大学合作办学双证创新与领导力管理学博士

中国社科大与英国斯特灵大学合作办学双证创新与领导力管理学博士,2024级火热报名申请中,不想脱产的,不想发表论文的,不想长时间出国的,想短期获取博士学位的,想留服认证的,把握短暂机会啦&#…

网络故障处理及分析工具:Wireshark和Tcpdump集成

Wireshark 是一款免费的开源数据包嗅探器和网络协议分析器,已成为网络故障排除、分析和安全(双向)中不可或缺的工具。 本文深入探讨了充分利用 Wireshark 的功能、用途和实用技巧。 无论您是开发人员、安全专家,还是只是对网络操…

前端面试题(JS篇五)

一、同步与异步的区别 同步指的是当一个进程在执行某一个请求的时候,如果这个请求需要等待一段时间才能返回,那么这个进程会一直等待下去,直到这个消息返回之后才会继续执行。 指的是当一个进程在执行某一个请求的时候,如果这个请…

PSINS工具箱函数介绍——r2d

介绍工具箱里面r2d这个小函数的作用。 程序源码 function deg r2d(rad) % Convert angle unit from radian to degree % % Prototype: deg r2d(rad) % Input: rad - angle in radian(s) % Output: deg - angle in degree(s) % % See also r2dm, r2dms, d2r, dm2r, dms2r% …

电阻有哪些参数呢

电阻是电路中最常见的元件之一,它在控制电流、分压和保护电路等方面发挥着重要作用。了解电阻的主要参数对于选择和使用电阻至关重要。本文将详细介绍电阻的主要参数,包括电阻值、功率额定值、温度系数、容差、噪声、频率特性、体积和封装等。 1. 电阻值…

C语言中常见库函数(2)——内存函数

文章目录 1. memcpy使用和模拟实现2. memmove使用和模拟实现3. memset函数的使用4. memcmp函数的使用 1. memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num );函数memcpy从source的位置开始向后复制num个字节的数据到destination指…

MQ - RabbitMQ - 消息的可靠性 --学习笔记

消息的可靠性 RabbitMQ 提供了一系列的特性和机制来确保消息的可靠性,即确保消息不丢失、按需到达目的地。要实现在 RabbitMQ 中消息的可靠性,可通过以下几个方面进行操作: 一、发送者的可靠性 1、生产者重试机制 什么是生产者重试机制&a…

【Java开发实训】day05——数组常见算法

目录 一、数组翻转 1.1示例代码 1.2适用场景 二、冒泡排序 2.1示例代码 2.2适用场景 三、二分查找 3.1示例代码 3.2适用场景 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo…

node解析Excel中的考试题并实现在线做题功能

1、背景 最近公司安排业务技能考试,下发excel文件的题库,在excel里查看并不是很方便,就想着像学习驾考题目一样,一边看一边做,做完之后可以查看正确答案。 2、开始分析需求 题目格式如下图 需求比较简单,…

【ROS2】高级:解锁 Fast DDS 中间件的潜力 [社区贡献]

目标:本教程将展示如何在 ROS 2 中使用 Fast DDS 的扩展配置功能。 教程级别:高级 时间:20 分钟 目录 背景 先决条件在同一个节点中混合同步和异步发布 创建具有发布者的节点创建包含配置文件的 XML 文件执行发布者节点创建一个包含订阅者的节…

视频号直播回放视频下载教程

前言: 随着视频号的不断普及,现在用户在视频号中观看直播和回放的人数逐渐的增多,但是很多时候视频号中的直播和直播回放是无法直接下载的,今天我就教大家如何下载视频号中的直播回放 在这里下载回放需要软件 地瓜网络技术视频…

解锁Vue警报的迷雾:攻克“TypeError: Cannot read property ‘getAttribute’ of null”的奥秘

在Vue.js的广阔天地里,开发者们常常会遇到各式各样的挑战与“小惊喜”。[Vue warn]: Error in mounted hook: “TypeError: Cannot read property ‘getAttribute’ of null”这一错误,就像是一位不速之客,冷不防地在你的代码世界中留下一串令…

51单片机STC89C52RC——18.1 HC-SR04超声波测距

目的/效果 独立按键K1按下后开始测距,LCD显示距离(mm) 一,STC单片机模块 二,HC-SR04 超声波测距 2.1 HC-SR04 简介 HC-SR04超声波测距模块提供2cm~400cm的测距功能,精度达3mm。 2.2 时序 以上时序图表明…

【GPT-4多态大模型研究】

1.概述 GPT-4是OpenAI最新的系统,能够产生更安全和更有用的回应。它是一个大型的多模态模型(接受图像和文本输入,输出文本),在各种专业和学术的基准测试中展现了人类水平的表现。例如,它在模拟的律师资格考…

Android 12系统源码_存储(二)StorageManagerService服务

前言 在 Android 系统中,StorageManagerService是一个用于获取存储设备信息和管理存储设备的服务。它提供了一系列方法,可以获取当前挂载的存储设备信息,以及对存储设备进行挂载和卸载操作。 一、Storage存储模块介绍 1.1、StorageManager…