考虑与Maya结合
今天改进了Hessian各块的计算代码,减少了一些内存操作。下一步准备把模拟平台与Maya结合,这样就可以利用Maya丰富的变形算法了。
这一步需要考虑以下问题:
1.把场景设置为某一帧。这一点可以用Mel脚本实现,命令是 currentTime 帧号
2.把表面网格转成体网格。这一点比较难做,因为表面网格不一定封闭。
有两种思路: 根据一堆点生成体网格,同时原来的点作为体网格的部分顶点
原来的输入点“泡”在体网格中,但是可以直接通过这些点反求体网格的一部分顶点。
第一种思路似乎比较靠谱,因为第一种解出来的体网格顶点不一定稳定。
3.有限元模拟过程。
暂时的设想是,写一个mel脚本,每次设置一个关键帧,同时获取此时网格顶点(也就是体网格部分顶点)位置,求出自由参数后设置对应参数的关键帧。
求解过程中需要多次设置自由参数的值,获取此时网格的顶点位置。可以写两个节点(Locator类型?),一个存自由参数数组,另一个接收网格顶点。
模拟的过程中,设置第一个节点的值之后,尝试读取第二个节点的网格,以此驱动Maya自动求值。
总的伪代码可能如下:
for (int frame = 0; frame < n; ++frame)
{
currentTime frame;
更新位置、速度、加速度
求解当前的参数值,这个过程中需要反复设置参数节点,反复获取网格位置。这一步估计需要写成一个MEL命令。
设置参数节点对应参数的关键帧
}
一个问题就是需要验证MEL命令执行的过程中Maya节点求值机制是否可以反复进行,这样才有可能反复对设置参数、对节点求值。
这一点我觉得是可以的,每次读取网格顶点,背后便是Maya对相关节点进行求值。
考虑与Maya结合的更多相关文章
- 将MPM雪模拟移植到Maya
同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://git ...
- 从Maya中把模型搬运至网页的过程
虽然利用threejs来在网页中渲染3d模型不是第一次折腾了,但是还是遇到了各种问题.总结下我所遇到的问题,希望能给正在使用threejs的小伙伴一个帮助. 一.所使用的软件与开发环境 Maya201 ...
- jcFeather Maya 羽毛插件
jcFeather 2.8.6 插件持续更新地址为:http://www.jerrykon.com/jcFeather.html 和 http://www.creativecrash.com/maya ...
- jcFeather For Maya 2012免费版
jcFeather羽毛插件有Maya2012免费试用版. 免费版有正版的所有功能,可制作羽毛,可渲染,但是一个Maya场景文件只能有3个jcFeather 节点和3个jcPreFeather节点. j ...
- Maya Plugin 编译Maya插件
Maya自身的功能就已经非常强大了,但是更棒的是它的扩展性非常强,提供API让用户自己来编写插件Plugin.Maya的插件主要是两种,一种是用C++编写的,后缀为".mll",另 ...
- maya的卡通渲染
为了统一工作流,给maya也做了个卡通shader:
- 终极解决maya渲染层丢材质,变线框等问题
终极解决maya渲染层丢材质,变线框等问题 相信有很多同志在使用maya做灯光渲染的时候,经常能遇到渲染层的模型丢材质.变线框等问题,特别恶心.我也经常遇到,所以和大家分享一下我的解决或尽量避免的方法 ...
- [zz]Maya C++ API Programming Tips
Maya C++ API Programming Tips source : http://wanochoi.com/?page_id=1588 How to handle the multiple ...
- Automation Test in Maya Plugin Development
现状和问题- 开发插件的功能A的时候随手建立场景, 测试插件的功能A. 测试通过后,测试场景就被丢掉.- 发现插件的功能A有bug时, 修改代码, 然后随手建立场景, 测试bug. 测试通过后,测试场 ...
- Tips For Your Maya Plugin Development
(The reason why I write English blog is that I'm trying to improve my written English. The Chinese v ...
随机推荐
- 回车键和button按钮都绑定同一个事件,如何避免按回车的时候button重复点击
保存一个全局变量,用来记录Button的焦点状态 <button onclick="login();" onfocus="window.buttonIsFocuse ...
- DOM性能小记
在使用DOM操作时,同样的效果用不同的方式来实现,性能方面也会有很大的差异.尤其在移动式设备上,资源本来就很有限,一旦DOM写不好的话操作就会非常卡顿.这个周末,就写个DOM性能小记吧.错漏之处,望多 ...
- angular 指令——时钟范例
<html> <head> <meta charset='utf-8'> <title>模块化</title> <script typ ...
- CRM 2013 移动终端 介绍和PAD下载地址
IPHONE 浏览器界同 Pad 端 APP (目前不支持中文,大家可以用美国账号下载,谁有分享一下) https://itunes.apple.com/en/app/microsoft-dynam ...
- SharePoint 2013 隐藏部分Ribbon菜单
SharePoint的使用中,因为用户经常不愿意看到那些不经常使用的操作,我们经常需要定制Ribbon菜单, 更多时候不是隐藏所有,而是隐藏掉我们不需要的那些:下面,我们一列表为例,简单介绍下如何部分 ...
- Java中字节流和字符流的比较(转)
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操 ...
- 初识UIScrollView
RootView.m #import "RootView.h" #define YHColor [UIColor colorWithRed:arc4random() % 256 / ...
- centos性能监控系列三:监控工具atop详解
引言 Linux以其稳定性,越来越多地被用作服务器的操作系统(当然,有人会较真地说一句:Linux只是操作系统内核:).但使用了Linux作为底层的操作系统,是否我们就能保证我们的服务做到7*24地稳 ...
- C#初级知识点整理及VS的简单使用
C#预处理器指令#define #undef 声明一个不需赋值的变量注意的一点事它必须放到using 上面,如 #define TEST using System.xxx; public class ...
- 关于Redis的启动过程
一.简介 Redis的启动也就是main函数的执行,程序的入口在redis.c中,启动流程: 1. 初始化默认服务器配置,如果是sentinel模式还需进行额外的配置 2. 修改配置文件或配置选项,这 ...