Simulation in  Houdini with Pryo FX, rendering with franticfilms Krakatoa 1亿粒子渲染

更新一下最近镜花水月的开发进度,首先感谢周波(以下简称周老板)的Maya to Krakatoa(m2k),没有周老板的Maya 2 krakatoa我也不可能搞出这个镜花水月to Krakatoa和Houdini to Krakatoa。关键是。。要是不是因为周老板的提示,我都不知道Krakatoa有prt的文件数据结构帮助文件。然后周老板的代码也帮了很大的忙,主要是那段使用zlib压缩数据的过程。最后我都觉得自己2的不行,最早做测试的发现max不能读文件,还使劲的折腾了一个礼拜,给周老板添了很多麻烦,结果发现我忘记勾选“序列文件”了。Krakatoa默认是读序列文件的。。。

在这里首先给周老板的m2k做个广告。。

http://www.cnblogs.com/Jedimaster/archive/2009/08/03/1537927.html

这个就是m2k了,周老板最早实现的prt数据结构,用来写maya粒子到3d max的,不过这段代码有一个问题不知道实际使用是不是这样的,就是max的坐标系和maya不一样,好像max是笛卡尔右手坐标系,maya是标准的左手的。所以保存粒子属性的时候到max里面会有一些坐标轴向上的偏移错误,不过这个只要在代码里面修改一些就可以了。

接下来就是我的 Houdini to Krakatoa和 镜花水月 Mirroonce (Molecule Wave) to Krakatoa了 (mx2k)。一亿个粒子,用Houdini模拟,max渲染,总共是分成10次模拟,每次模拟近1千万个粒子,然后分10份导入max中。Houdini用一个POP模拟2次不同的效果可以修改POP节点上的seed属性。一般来说尽可能的把粒子发射器切开,然后,每次计算一个切片的发射器,保存成bgeo,因为POP的模拟是不需要做粒子和粒子间的通讯的。所以,一次模拟1000万粒子和4次模拟每个切片发射器上的250万粒子效果是完全一样的。

我的H2k还是基于文件的,Houdini写出geo文件序列,然后还是镜花水月的 GEO_fstream Class读取数据,转换成一个基于线性表的粒子系统,这个粒子系统调用PRT_ofstream Class写成PRT文件,最后在3d max中读取Houdini中模拟好的粒子,使用Krakatoa进行渲染,得到渲染效果。

粒子的插值部分现在只是实现了CPU上的,镜花水月 Mirroonce (Molecule Wave) 本身就是一个基于CUDA的粒子系统,所以插值理所当然的要用CUDA,当然这个还正在做,CPU上的插值是h2k用的,插值也是很简单的算法,估计也是最简单的Renderman 粒子DSO用的那种,就是对粒子进行最近点距离的搜索,然后以当前粒子为中心点,最近点距离作为半径,进行一个球体顶点填充。

我没有自己写kd-tree这种东西,因为Houdini本身已经提供了这样的功能,所以需要对粒子插值的时候,只要给粒子添加最近粒子半径这个属性就可以了,镜花水月检测到这个属性的时候会自动对粒子进行插值,返回可以保存成prt格式的粒子文件,也可以保存成Houdini的geo,未来应该可以支持RIB。(如果有这个计划做的话)。

我做插值的主要原因是因为Krakatoa的插值效果并不好,一方面用Krakatoa原生插值的功能,当插值比例大于1比10 的时候,粒子会出现莫名其妙的“水波纹”,(应该是过滤器的问题?)另外一方面Krakatoa的粒子插值和粒子的最近的粒子半径没有关系,他的插值效果很像Houdini的Point jitter这个功能,所以,有的时候,做了10倍粒子的插值,得到的并不是粒子密度变大的效果,而是一种粒子半径加大的效果。并且得到这样效果的成本也并不便宜。所以,我干脆放弃了这个,自己重新作了一个粒子插值用的函数。

现在的h2k支持krakatoa的大多数属性,包括color Normal和velocity等等。由于没有时间做成插件,或者写成带基本窗口的小应用程序,h2k现在还是通过C++在Visual Studio里面控制的。所以暂时不能共享给大家了,预计明年开始镜花水月会加入QT UI的开发。还有Python绑定到C++的工作,到时候Mirroonce就是真正意义上的一个独立的软件了。

转载于:https://www.cnblogs.com/DingXun/archive/2009/11/16/1603925.html

镜花水月 Houdini to Krakatoa(h2k) Mirroonce to Krakatoa (mx2k)1亿粒子相关推荐

  1. 获得艾美奖的VFX Supe教你用Houdini粒子制作星云

    在Maxdepth上,屡获殊荣的VFX / CG超级选手Timothy Hanson发布了一个关于创建恒星Houdini场景的新教程. "在本教程中,我们将介绍使用Houdini强大的流行网 ...

  2. oracle加密可以跟java一致吗,在GBase 8s上使用java udr实现Oracle兼容的加密解密功能...

    最近碰到客户从Oracle迁移到GBase 8s使用到字段加密解密功能,使用到了Utl_raw.cast_to_varchar2.Utl_raw.cast_to_raw.Utl_encode.base ...

  3. GBase 8s Java UDR安装说明

    创建Java UDR过程 1, 将共享库gbasedbt-judr-x.x.x.jar 放置于数据库服务器上 比如,放到$GBASEDBTDIR/udr 目录下,并改名为judr.jar 则gbase ...

  4. Houdini Krakatoa Render Plugin

    HDK真实个混蛋,都懒得写个解释.凭着函数英文意思猜测.. plugin sample video: "Particle Voxel Render" 核心是Krakatoa,Kra ...

  5. Ten+ Hundred Million Particle Render By Krakatoa

    这是两张测试渲染的结果,一共是10亿多粒子,不得不佩服krakatoa渲染粒子的强大之处..(-.-) 制作的思路很简单,大概步骤:1.模拟流体动态 :2.通过流体的速度信息驱动粒子(不管maya.m ...

  6. Krakatoa插件for maya安装,解决每次渲染都提示注册问题

     我这里使用的版本Thinkbox Krakatoa MY 2.3.1.55863 For MAYA 2014 - 2015 - Win64 1.右键以管理员身份运行 2.选择需要安装到的Maya ...

  7. Krakatoa 中英界面对照

    Krakatoa是Thinkbox Software公司开发的一款粒子渲染.处理和管理工具包. 目前,Krakatoa能够充分利用64位计算技术,并且已经被证明,在64位3ds Max运行状态下,处理 ...

  8. New Test :: Houdini Simulation Particles FumeFX Simultion Fluid..

    Houdini Simulation the Particles & 3Ds Max FumeFX Simlution the Fluid Dynamic.. 最近看了2012的一些花絮,发现 ...

  9. 计算机名称改变之后,HOUDINI Server 连接不上的解决办法

    导致这个的原因是,计算机名称改变了,注册表的信息没有改完,houdini licenseServer 内的键值还是之前的计算机名称. 最笨的办法是把注册表内的所有之前的计算机名称字段全改了,具体方法是 ...

最新文章

  1. 一次项目组聚餐,让我重新认识了很多人
  2. Thingworx SDK开发自定义Widget
  3. 根据日期时间和随机量生成唯一ID!!
  4. 易宝支付碰到 交易签名无效问题 (2)
  5. python提示对话框自动关闭_Python - tkinter:打开和关闭对话框窗口
  6. Spring MVC开发初体验
  7. PHP微信多级三级分佣系统,微信多级三级分销系统 多级三级分佣模式 支付宝微信双支付...
  8. 用计算机弹九八k的乐谱,完整版儿童歌曲简谱大全.docx
  9. Java之自定义异常类、常用类String、StringBuilder、StringBuffer、时间类和枚举类的学习
  10. Dingo Api请求接口404?
  11. lightdm开机无法自启问题
  12. 通过取消反向DNS加速ssh登录速度
  13. 卡梅 计算机生物专业怎么样,【智友学子】X同学----卡耐基梅隆大学 计算生物学...
  14. Java 核心技术专题
  15. 从简易的json中提取数据
  16. 【034】基于51单片机的HX711电子秤Proteus仿真设计
  17. 广义线性模型 1统计学导论【作业】
  18. 【游戏开发实战】Unity从零开发多人视频聊天功能,无聊了就和自己视频聊天(附源码 | Mirror | 多人视频 | 详细教程)
  19. 李雅普诺夫稳定性判别方法
  20. 企业业务架构设计方法论及实践(一)

热门文章

  1. DeFi如何塑造长期主义:质押分红、燃烧通缩和税收模型
  2. LeetCode 图解 | 42. 接雨水
  3. 关于2018年8月5号吴声的商业方法
  4. Windows7中开启nbsp;Administratornbsp;帐…
  5. 20个值得一读的设计博客
  6. 我是怎么自学 Git / GitHub 的?
  7. Anaconda Navigator 启动 报错check_hostname requires server_hostname 全网解决方案汇总
  8. 游戏建模|坚持下来的人都是非常优秀的?因为他离不开以下几点
  9. 超级玛丽制作揭秘12旋风攻击,小怪,火圈
  10. mysql关键字 char,varchar,in,exist