如何从Houdini粒子数据创建Maya粒子光盘缓存(PDC)

时间:2017-01-10 00:27:47

标签: maya maya-api

我正在尝试将Houdini15粒子数据导出到Maya2015粒子。

所以基本的想法是

  
      
  1. 在Houdini中创建粒子
  2.   
  3. 将粒子数据保存到光盘
  4.   
  5. 在Maya中读取粒子数据
  6.   

粒子数据应包括position,particleId,age,velocity和custom_attributes ......等。

我想从Houdini粒子数据创建Maya PDC文件。

3 个答案:

答案 0 :(得分:1)

我认为它不是那么简单,最好的是使用一些能够做到这一点的工具,索尼开源的F3d https://github.com/imageworks/Field3Dhttps://github.com/gearslogy/GParticlesIO也可以这样做。希望这有帮助

答案 1 :(得分:1)

您可以尝试将Houdini粒子带到Maya。

  1. 将所有粒子数据写入.bgeo文件。
  2. 在houdini中创建文件sop digital asset
  3. 通过Houdini Engine在Maya中读取.hda文件。
  4. 选择.bgeo序列并重新加载数字资产。
  5. 这将在maya中创建一个Nparticles系统,您可以看到自定义属性。

答案 2 :(得分:1)

存储点云的方法比Maya缓存更好(正如之前的答案所指出的那样),但是如果你真的对此感兴趣,可以查看这篇文章: http://100cells.com/downloads/MayaCacheDLL/MayaCacheBitstreamDocumentation.pdf

在那里,您可以找到Maya缓存文件格式的描述(通过逆向工程获得),以便您可以在Houdini中开发自己的Maya缓存导出器。我使用Python做了一个原型,它的工作原理。您可以导出所需的任何自定义属性,但在Houdini中创建Maya始终需要的属性非常重要:

  • 位置
  • count(只有一个点大小的特殊Int通道,表示点数)
  • id(不记得是否强制要求)

对于使用运动模糊的渲染,如果没有速度通道,我认为它会崩溃,但它可能取决于渲染器。您应该在十六进制编辑器中打开一个真正的Maya缓存文件,并查看在工作缓存文件中导出的通道。如果您正在进行多文件缓存,请查看XML,因为您还需要创建它(至少这比二进制缓存文件简单)。

您可以在此处找到C库: https://github.com/100cells/Maya-Cache-DLL-Project 也许它不是在Houdini中使用的最佳实现,但可以作为参考。