注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

豆芽兵的生存探索

因,记录。留下历史,看到未来...

 
 
 

日志

 
 

07_自动“排布”物体(Object Scattering)  

2013-01-11 14:49:28|  分类: 探索实验室 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

07_自动“排布”物体(Object Scattering

快速预览:“排布物体”

1.       Python脚本

2.       自动放置模型到指定区域

3.       自动检测交叉结点

主要开发者: Thomas Schlick

译者:豆芽兵

07_自动“排布”物体(Object Scattering) - 豆芽兵 - 豆芽兵的生存探索

“代理边框”(Are bounding boxes)真的有那么有用吗?

2012 8 14 日:在教程版块里,你可以找到“工具脚本合集”(豆芽兵没有更新上来,需要的到源网站下载)。在这个工具合集中有一个叫“Bounding Boxes”的脚本,用来创建选中RealFlow结点的边界框(bounding box)。初次用时,不只一位的使用者问到,这创建边界框的脚本到底能做什么呢?回答是:它能做很多事!例如“RBD Emitter”部分就是基于这个脚本的。“Object Scattering”脚本也频繁的使用这些边界框。

       所以一下个问题是:什么是“Object Scattering”脚本?可能你已经碰到过,想要在地面分布放置一些物体的问题,例如把石头,树枝或碎片,放到地上,用来做扰乱的流体或其它真实的模拟。在城市街道,例如,一个可以经常看到各种废弃垃圾,而放置这些是非常非常无聊的。你得要放置,和缩放,对每一个单独的模型,还要避免穿插等等。有很多物体,这非常浪费时间。脚本可以自动的完成这些,会给你带来很大帮助。

       Object Scattering”应当满足这些需求。脚本使用强力的方法:这意味着要创建新物体到给定数量。并能由使用者决定是否要删除穿插对像。

07_自动“排布”物体(Object Scattering) - 豆芽兵 - 豆芽兵的生存探索

       该脚本考虑到不会在有障碍物体地方,创建物体。虽然函数能运行,但它有一个问题,因为Python的最大递归数(maximum recursion depth),超出(exceeded)来脚本的循环(loop.尽管它能增加递归深度,最后也肯定会出错。因为超出的深度会产生syntax error(语法错误)。上面截图是该脚本创建的,一个红色模型的创建过程(还有交叉的物体)。右边图是已经清理过交叉物体的。

  07_自动“排布”物体(Object Scattering) - 豆芽兵 - 豆芽兵的生存探索

看动画就是脚本做的。第一个版本相比,交叉的模型(脚本,可能会在已经生成模型地方再次生成)直接移除掉,如果脚本没有找到合适的位置,但仍可以保留这些结点。当达到设定数量时,脚本就会停止。这里脚本执行有点慢,因为电脑显卡不够快。

这个测试非常快:150个模型只要19秒。这个场景的“Nodes”和“Global Links”窗口已经关闭/折叠。圆柱直径是固定的。这些设置可以让脚本运行更快。小对像直接更容易找到自由的空间“Object Scattering”没创建很多不必要的结点。

07_自动“排布”物体(Object Scattering) - 豆芽兵 - 豆芽兵的生存探索

在这里,你看到新创建的物体分布在蓝色盒子周围。用户可以指定哪些结点使用障碍物,脚本会避开它。场景有170个“杆子”,花了大约26秒。(没有障碍物时,创建150个物体花了19秒)

  评论这张
 
阅读(569)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017