博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maya 粒子制作海洋岸边convected foam
阅读量:4963 次
发布时间:2019-06-12

本文共 808 字,大约阅读时间需要 2 分钟。

先看视频吧,这是我当时用这个插件做得一个泡沫的效果,海洋break wave用的是另一个高人的maya脚本插件,我只做了浪上的泡沫,splash挺难看的,没做好。

 

最简单效果。

 

convected foam 是我从surf's up关于海洋制作的论文中得知的,这种泡沫形式很特别,总的来说像细胞状,计算机中算法一般用voronoi来描述这种形状,

因此我用voronoi算法给maya 粒子写了这么一个场,它可以使空间中的粒子向细胞壁的方向移动。将这些粒子映射到一个平面上,就会得到类似convected

 foam效果。

 

渲染的时候我写了一个maya默认渲染器的shader来采样粒子,使其成为一个可以使用的3d纹理,原理就是找最近粒子点(完全可以用renderman来把粒子数

据渲成点云数据,然后再写shader调用来实现这个效果,可惜那时我还不会renderman)。我那时用的找最近点的方法是最笨的,就是循环,渲染效率极低,可

以使用kdtree之类的c++库来查找最近点。最后采样得到的效果会被重复的映射到模型面的uv上,这样可以只用一小片粒子做出一大片的foam。

 

以下是源码,还有编译好的一个2011X64的maya插件。使用很简单,解压后foam文件夹里头的foam文件夹是maya的插件目录包,你懂的。

插件成功加载后,maya会多一个叫foam的菜单,两个菜单项simple foam和dynamic foam可以创建两种不同的泡沫形式。

还有c++源代码在sourcecode里头,有兴趣的可以随便玩。

 

如果遇到加载不了,可能是缺少两个dll文件,在这里下载一下

把他们放到 C:\Windows\SysWOW64  或者 C:\Windows\system

转载于:https://www.cnblogs.com/jerrykon/archive/2011/12/27/2303338.html

你可能感兴趣的文章
深拷贝 vs 浅拷贝 释放多次
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>
MapReduce 重要组件——Recordreader组件 [转]
查看>>
webdriver api
查看>>
apache 实现图标缓存客户端
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>