今天改进了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结合的更多相关文章

  1. 将MPM雪模拟移植到Maya

    同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://git ...

  2. 从Maya中把模型搬运至网页的过程

    虽然利用threejs来在网页中渲染3d模型不是第一次折腾了,但是还是遇到了各种问题.总结下我所遇到的问题,希望能给正在使用threejs的小伙伴一个帮助. 一.所使用的软件与开发环境 Maya201 ...

  3. jcFeather Maya 羽毛插件

    jcFeather 2.8.6 插件持续更新地址为:http://www.jerrykon.com/jcFeather.html 和 http://www.creativecrash.com/maya ...

  4. jcFeather For Maya 2012免费版

    jcFeather羽毛插件有Maya2012免费试用版. 免费版有正版的所有功能,可制作羽毛,可渲染,但是一个Maya场景文件只能有3个jcFeather 节点和3个jcPreFeather节点. j ...

  5. Maya Plugin 编译Maya插件

    Maya自身的功能就已经非常强大了,但是更棒的是它的扩展性非常强,提供API让用户自己来编写插件Plugin.Maya的插件主要是两种,一种是用C++编写的,后缀为".mll",另 ...

  6. maya的卡通渲染

    为了统一工作流,给maya也做了个卡通shader:

  7. 终极解决maya渲染层丢材质,变线框等问题

    终极解决maya渲染层丢材质,变线框等问题 相信有很多同志在使用maya做灯光渲染的时候,经常能遇到渲染层的模型丢材质.变线框等问题,特别恶心.我也经常遇到,所以和大家分享一下我的解决或尽量避免的方法 ...

  8. [zz]Maya C++ API Programming Tips

    Maya C++ API Programming Tips source : http://wanochoi.com/?page_id=1588 How to handle the multiple ...

  9. Automation Test in Maya Plugin Development

    现状和问题- 开发插件的功能A的时候随手建立场景, 测试插件的功能A. 测试通过后,测试场景就被丢掉.- 发现插件的功能A有bug时, 修改代码, 然后随手建立场景, 测试bug. 测试通过后,测试场 ...

  10. 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 ...

随机推荐

  1. Sass学习之路(1)——Sass简介

    Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些 ...

  2. UWP开发中的流媒体

    写这篇的目的只是为了记住这个东西, win10原生支持HLS了 AdaptiveMediaSourceCreationResult amsResult = await AdaptiveMediaSou ...

  3. Quartz 2d绘图

    今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singl ...

  4. 【读书笔记】iOS-属性列表

    一,在Cocoa中,有一类名为属性列表的对象,常简写为plist.这些列表包含Cocoa知道如何操作的一组对象.具体来讲,Cocoa如何知道将这们保存在文件中并进行加载.属性列表类包括NSArray, ...

  5. LeetCode 3 Longest Substring Without Repeating Characters(最长不重复子序列)

    题目来源:https://leetcode.com/problems/longest-substring-without-repeating-characters/ Given a string, f ...

  6. 深入理解java虚拟机(5)---字节码执行引擎

    字节码是什么东西? 以下是百度的解释: 字节码(Byte-code)是一种包含执行程序.由一序列 op 代码/数据对组成的二进制文件.字节码是一种中间码,它比机器码更抽象. 它经常被看作是包含一个执行 ...

  7. 整理了一些常用的jQuery动画事件

    部分jQuery常用的动画函数,整理了一下,在做交互式页面的时候挺有用的 .css('a','12px');.css({  a:'12px',  b:'#fff'}); .show();.hide() ...

  8. Mysql中的函数

    什么是函数 mysql中的函数与存储过程类似,都是一组SQL集: 与存储过程的区别 函数可以return值,存储过程不能直接return,但是有输出参数可以输出多个返回值: 函数可以嵌入到sql语句中 ...

  9. SQLAlchemy 做migration的时候 ValueError: too many values to unpack

    我在做数据库迁移的时候,使用sqlalchemy,出现一个问题 Traceback (most recent call last): File "/Volumes/Spano/Dropbox ...

  10. SAM4E单片机之旅——20、DMAC之使用Multi-buffer进行内存拷贝

    这次使用这个DMAC的Multi-buffer传输功能,将两个缓冲区的内容拷贝至一个连续的缓冲区中. 一. DMAC 在M4中,DMA控制器(DMAC)比外设DMA控制器(PDC)要复杂,但是功能更加 ...