镜花水月 Houdini to Krakatoa(h2k) Mirroonce to Krakatoa (mx2k)1亿粒子
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亿粒子相关推荐
- 获得艾美奖的VFX Supe教你用Houdini粒子制作星云
在Maxdepth上,屡获殊荣的VFX / CG超级选手Timothy Hanson发布了一个关于创建恒星Houdini场景的新教程. "在本教程中,我们将介绍使用Houdini强大的流行网 ...
- oracle加密可以跟java一致吗,在GBase 8s上使用java udr实现Oracle兼容的加密解密功能...
最近碰到客户从Oracle迁移到GBase 8s使用到字段加密解密功能,使用到了Utl_raw.cast_to_varchar2.Utl_raw.cast_to_raw.Utl_encode.base ...
- GBase 8s Java UDR安装说明
创建Java UDR过程 1, 将共享库gbasedbt-judr-x.x.x.jar 放置于数据库服务器上 比如,放到$GBASEDBTDIR/udr 目录下,并改名为judr.jar 则gbase ...
- Houdini Krakatoa Render Plugin
HDK真实个混蛋,都懒得写个解释.凭着函数英文意思猜测.. plugin sample video: "Particle Voxel Render" 核心是Krakatoa,Kra ...
- Ten+ Hundred Million Particle Render By Krakatoa
这是两张测试渲染的结果,一共是10亿多粒子,不得不佩服krakatoa渲染粒子的强大之处..(-.-) 制作的思路很简单,大概步骤:1.模拟流体动态 :2.通过流体的速度信息驱动粒子(不管maya.m ...
- Krakatoa插件for maya安装,解决每次渲染都提示注册问题
我这里使用的版本Thinkbox Krakatoa MY 2.3.1.55863 For MAYA 2014 - 2015 - Win64 1.右键以管理员身份运行 2.选择需要安装到的Maya ...
- Krakatoa 中英界面对照
Krakatoa是Thinkbox Software公司开发的一款粒子渲染.处理和管理工具包. 目前,Krakatoa能够充分利用64位计算技术,并且已经被证明,在64位3ds Max运行状态下,处理 ...
- New Test :: Houdini Simulation Particles FumeFX Simultion Fluid..
Houdini Simulation the Particles & 3Ds Max FumeFX Simlution the Fluid Dynamic.. 最近看了2012的一些花絮,发现 ...
- 计算机名称改变之后,HOUDINI Server 连接不上的解决办法
导致这个的原因是,计算机名称改变了,注册表的信息没有改完,houdini licenseServer 内的键值还是之前的计算机名称. 最笨的办法是把注册表内的所有之前的计算机名称字段全改了,具体方法是 ...
最新文章
- 一次项目组聚餐,让我重新认识了很多人
- Thingworx SDK开发自定义Widget
- 根据日期时间和随机量生成唯一ID!!
- 易宝支付碰到 交易签名无效问题 (2)
- python提示对话框自动关闭_Python - tkinter:打开和关闭对话框窗口
- Spring MVC开发初体验
- PHP微信多级三级分佣系统,微信多级三级分销系统 多级三级分佣模式 支付宝微信双支付...
- 用计算机弹九八k的乐谱,完整版儿童歌曲简谱大全.docx
- Java之自定义异常类、常用类String、StringBuilder、StringBuffer、时间类和枚举类的学习
- Dingo Api请求接口404?
- lightdm开机无法自启问题
- 通过取消反向DNS加速ssh登录速度
- 卡梅 计算机生物专业怎么样,【智友学子】X同学----卡耐基梅隆大学 计算生物学...
- Java 核心技术专题
- 从简易的json中提取数据
- 【034】基于51单片机的HX711电子秤Proteus仿真设计
- 广义线性模型 1统计学导论【作业】
- 【游戏开发实战】Unity从零开发多人视频聊天功能,无聊了就和自己视频聊天(附源码 | Mirror | 多人视频 | 详细教程)
- 李雅普诺夫稳定性判别方法
- 企业业务架构设计方法论及实践(一)
热门文章
- DeFi如何塑造长期主义:质押分红、燃烧通缩和税收模型
- LeetCode 图解 | 42. 接雨水
- 关于2018年8月5号吴声的商业方法
- Windows7中开启nbsp;Administratornbsp;帐…
- 20个值得一读的设计博客
- 我是怎么自学 Git / GitHub 的?
- Anaconda Navigator 启动 报错check_hostname requires server_hostname 全网解决方案汇总
- 游戏建模|坚持下来的人都是非常优秀的?因为他离不开以下几点
- 超级玛丽制作揭秘12旋风攻击,小怪,火圈
- mysql关键字 char,varchar,in,exist