13.07.2015 Views

Controlling Fluid Simulations with Custom Fields in Houdini Master ...

Controlling Fluid Simulations with Custom Fields in Houdini Master ...

Controlling Fluid Simulations with Custom Fields in Houdini Master ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figure 11: The parameters of the metaball-based volume attribute transfer tool.5.2.2 A metaloop based approachThe orig<strong>in</strong>al way of den<strong>in</strong>g volumes through metaballs <strong>in</strong>volves copy<strong>in</strong>g metaballsonto the po<strong>in</strong>ts, convert<strong>in</strong>g them to a fog volume us<strong>in</strong>g an iso-oset <strong>with</strong>the Mode set to Meta Balls. The problem is that this only uses the density ofthe metaballs and none of the potential other attributes.The volume attribute transfer tool is based upon this workow but aga<strong>in</strong>makes use of vops functionality to perform the lookup of the attributes manually.Similar controls are provides as <strong>with</strong> the po<strong>in</strong>tcloud approach, althoughthis tool was further developed and presets were added to make it easy for usersto transfer popular attributes that can be used from a drop down menu. The<strong>in</strong>terface of the tool can be seen <strong>in</strong> Figure (11). This tool also allows the possibilityto dene a per po<strong>in</strong>t transfer radius by us<strong>in</strong>g the pscale attribute if it ispresent on the template geometry.Inside of the digital asset, expressions are used to help dene the presetsett<strong>in</strong>gs. Metaballs are copied onto the template po<strong>in</strong>ts and are then referencedby a volumevop. Inside of the volumevop a while loop is created that will loopthrough all the metaballs, lookup the value of each one at a given position andadd the result together. This is the default density calculation. When try<strong>in</strong>g toadd a dierent attribute together the results were very blocky, the reason whythis was happen<strong>in</strong>g was because the attribute would be dened as a solid box ofa constant value <strong>with</strong><strong>in</strong> the bound<strong>in</strong>g box of a metaball. This is a problem verysimilar to 2d sprites that have not had there alpha channel premultiplied. Sothe solution was to multiply the attribute <strong>with</strong> the density value of the metaball,this problem is represented <strong>in</strong> Figure (12). The density needs to be multiplied<strong>in</strong>side the deepest level of the metaloop, just before the attribute is added to theresult of the previous metaball, not as a post multiplication operation because<strong>in</strong> overlapp<strong>in</strong>g areas the mask<strong>in</strong>g will be <strong>in</strong>correct, the post multiplication eect22

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!