将MPM雪模拟移植到Maya

同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中

论文题目是

A material point method for snow simulation

代码在这里:

https://github.com/league1991/MpmMaya

插件利用了openVDB库,可以输出openVDB数据,进而可以利用openVDB生成网格渲染。

利用tbb做cpu并行化,结合c11的lambda表达式,tbb编程非常方便,基本上不需要对原有串行代码做大的改动。

界面如图。

这是播放的模拟结果。由于存在数值不稳定现象,模拟过程中有些块会突然飞走。以后需要改进。

来自为知笔记(Wiz)

时间: 2024-10-28 14:30:47

将MPM雪模拟移植到Maya的相关文章

实现了与maya场交互的能力

今天把模拟节点与maya场的对接做好了,效果如图: 图中黄色线为每个节点受到的外力,由于加了一个重力场,所以外力都是竖直向下. 节点连线方式如图所示: 交互的具体方法是在每次模拟之前,更新每个节点所受的外力.模拟过程中这个外力保持不变. 更新外力的方法是,用当前每个节点的速度.位置.质量去设置fieldData组合属性,然后从inputForce读取各个场返回外力值,并求和. 下一步考虑如果对参数进行控制. 来自为知笔记(Wiz) 附件列表 bendField.gif

linux enc28j60网卡驱动移植(硬件spi和模拟spi)

本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是就着手移植enc28j60的驱动. 其实移植enc28j60的驱动也十分简单,网上有现成的,只需要分配一些硬件资源即可. 由于我的内核版本老到掉牙,没有自带enc28j60的驱动,只能在网上找一个: enc28j60.c http://git.ti.com/ti-linux-kernel/ti-li

poj 1008:Maya Calendar(模拟题,玛雅日历转换)

Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 Description During his last sabbatical, professor M. A. Ya made a surprising discovery about the old Maya calendar. From an old knotted message, profes

[stm32] 利用uc-gui封装画图和画线函数移植51上的模拟动画

>_<:这里的动画是黄色矩形区域中一个模仿俯视图的起重机运作动画,一个是模仿主视图的吊钩的运动.通过改变初始Init函数中的数据b_x,b_y实现矩形区域的移动.当实时采集时要首先根据起重机的实际情况改变比例,当传感器传来数据时就相当于这里的run函数,只要把传感器数据接收函数和相关函数结合即可. >_<:main code: 1 #include "stdlib.h" 2 #include "GUI.H" 3 /* 4 颜色 5 */ 6

emWin5.24 VS2008模拟LCD12864 stm32 RTX移植 【worldsing笔记】

? emWin for 12864 并口移植 源代码下载:RTX_emWin5.24_Keil_VS2008-20141122.zip ? 硬件环境: CPU: stm32f103ve LCD:st7920控制器 12864 并口 ? 软件环境: Keil MDK4.74 VS2008 emWin5.24 ? 使用rtx操作系统 ? ? 1.实现emWin5.24在keil 和vs2008同一代码的工程,vs2008目录实现在FMC的官方模拟器上的模拟,Keil目录实现在stm32f103ve

POJ 1008 Maya Calendar 水模拟

有中文意思. 注意HOLLY法月份和天数是一起滚动的= = 要输出总组数,坑哭 #include <cstring> #include <cstdio> #include <algorithm> #include <map> #include <string> #include<iostream> using namespace std; map<string, int>f; const int N = 22; char

POJ 1008 Maya Calendar(模拟)

#include"cstdio" #include"iostream" #include"cstring" using namespace std; char H[19][10]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol",&q

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

基于tiny4412的Linux内核移植 -- PWM子系统学习(八)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4