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

同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://github.com/league1991/MpmMaya 插件利用了openVDB库,可以输出openVDB数据,进而可以利用openVDB生成网格渲染. 利用tbb做cpu并行化,结合c11的lambda表达式,tbb编程非常方便,基本上不需要对原有串行代码做大的改动. 界面如图. 这是播放的模拟结果…
这几天把物理模拟框架移植到maya之中了. maya编程有一点比较关键,就是要让自己的程序逻辑适应maya的节点求值机制.在物理模拟中,往往需要进行时间积分,对此我的解决办法是,写一个节点rigSimulator,存放模拟的状态数据(例如: 位置.速度.加速度.过去模拟的结果),再写一个mel命令rigSimulate,让指定的节点进行求值.模拟的主循环是一个mel 脚本,伪代码如下 int $t = 0; for ($t = $begTime; $t < $begTime + $length;…
今天把模拟节点与maya场的对接做好了,效果如图: 图中黄色线为每个节点受到的外力,由于加了一个重力场,所以外力都是竖直向下. 节点连线方式如图所示: 交互的具体方法是在每次模拟之前,更新每个节点所受的外力.模拟过程中这个外力保持不变. 更新外力的方法是,用当前每个节点的速度.位置.质量去设置fieldData组合属性,然后从inputForce读取各个场返回外力值,并求和. 下一步考虑如果对参数进行控制. 来自为知笔记(Wiz) 附件列表 bendField.gif…
今天改进了Hessian各块的计算代码,减少了一些内存操作.下一步准备把模拟平台与Maya结合,这样就可以利用Maya丰富的变形算法了. 这一步需要考虑以下问题: 1.把场景设置为某一帧.这一点可以用Mel脚本实现,命令是 currentTime  帧号 2.把表面网格转成体网格.这一点比较难做,因为表面网格不一定封闭. 有两种思路:  根据一堆点生成体网格,同时原来的点作为体网格的部分顶点 原来的输入点"泡"在体网格中,但是可以直接通过这些点反求体网格的一部分顶点. 第一种思路似乎比…
本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是就着手移植enc28j60的驱动. 其实移植enc28j60的驱动也十分简单,网上有现成的,只需要分配一些硬件资源即可. 由于我的内核版本老到掉牙,没有自带enc28j60的驱动,只能在网上找一个: enc28j60.c http://git.ti.com/ti-linux-kernel/ti-li…
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…
  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…
>_<:这里的动画是黄色矩形区域中一个模仿俯视图的起重机运作动画,一个是模仿主视图的吊钩的运动.通过改变初始Init函数中的数据b_x,b_y实现矩形区域的移动.当实时采集时要首先根据起重机的实际情况改变比例,当传感器传来数据时就相当于这里的run函数,只要把传感器数据接收函数和相关函数结合即可. >_<:main code: #include "stdlib.h" #include "GUI.H" /* 颜色 */ #define Blac…
2010-04-24 12:58:00 注:如果要读24c128或264,地址位为16位的.现在的地址位为8位. protues仿真图 源程序如下: #include <iom16v.h> #include <macros.h> #include "delay.h" #define I2C_DDR     DDRB #define I2C_PORT    PORTB #define I2C_PIN     PINB #define SDA         PB1…
简述 注意260天的情况,这个地方还是0年 代码 #include <iostream> #include <map> #include <sstream> using namespace std; map<string,int> bk; map<int,string> bk1; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); bk["pop"]=1…