zoukankan      html  css  js  c++  java
  • 考虑与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对相关节点进行求值。



  • 相关阅读:
    oracle中scott/tiger、sys、SYSDBA、system都是什么用
    选择ORACLE数据库字符集
    如何给oracle账户解锁
    nodejs_100个实例(3)_文件读取
    nodejs+express+mongodb简单实现注册登录
    ECharts之类型map(省级,地级市)附(世界地图、中国、省份、地级市地图Json文件)
    nodejs_100个实例(2)
    nodejs_100个实例(1)
    nodejs学习过程2之相关网站2
    nodejs学习过程2之相关网站
  • 原文地址:https://www.cnblogs.com/dydx/p/4222505.html
Copyright © 2011-2022 走看看