Some exercises

Forum for users who have migrated or are migrating to Houdini
Post Reply
User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Some exercises

Post by Mathaeus » 25 Apr 2015, 23:34

Hello,

decided to put some nice words about the new toy - just for change :)
This is an exercise scene I'm slowly building in H. There is no deadline, neither exact concept about final. Everything is subject for changes or free decision, what to do in H or in something else.
So for now, Houdini part is terrain and hair, styled by simulation. Character is an old SI work, perhaps in future I'll create a new one in Maya or something. All my view port skills in H are somewhere around rotating the camera, setting a wire frame view here and there :), I even doing the selections through tree view. Found this as an nice motivation to try to do everything in procedural way - or just somewhere out of H, if there is no sense to go procedural.
Terrain is set of deformed boxes in first phase, second phase is VDB volume from boxes. Third, long phase is an array of high resolution grids, filtered by VDB volume, then a long chain of splitting by procedural patterns, deforming by patterns, chain of extrusions from grids, new deforming, inverted transforms, cleaning the manifold geometry - all in all around 50 nodes and few minutes for execution. Well this is the first heavy thing I did in H....

Hair is a work of a bit more experienced author :) It's an old idea to use the simulation engine for styling, this time for something more interesting than plain long flat hair. Also, tried to go further of method I've used in ICE, to just apply the deformations later in post simulation. So, these curls nicely flowing around body (at least it's me who believe in this 'nicely') - they are product simulation factors, like gravity, collision and custom forces. As with anything else, this did not passed without a lot of additional work, on top of H wire solver. Including the custom, volume based collision VOP for external, per point adjustable collisions. While self - collision still belongs to H wire solver. Got it to simulate, enough good for styling, with 1 FPS, at the end.

Finally, there's alternative hair filler based on in advance, procedurally created attributes. Instead of 'lovely' Fur SOP. Filler is almost the same thing, used in one free ICE hair system flowing around. Not generic as Fur SOP, anymore, but several times faster and more predictable.

Of course already have some final renders. Will post them when I'll have time to complete this thing.

Image
Last edited by Mathaeus on 26 Apr 2015, 00:07, edited 1 time in total.

User avatar
MauricioPC
Moderator
Posts: 1085
Joined: 16 Sep 2013, 13:39

Re: Some exercises

Post by MauricioPC » 25 Apr 2015, 23:44

Very interesting Mathaeus ... thanks for sharing it! :-bd

NNois
Posts: 754
Joined: 09 Jun 2009, 20:33

Re: Some exercises

Post by NNois » 27 Apr 2015, 12:12

Love the hair and the vdb terrain but not so much the "bended rocks" would have prefered if they were in the same movement as the rocks.

Soo... seems like you're continuing a bit more with houdini ;-)

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 27 Apr 2015, 20:55

Thank You guys. Small correction, actually there's 225 nodes for rocks :). However about one third belongs to auxiliary stuff like VDBs for fog around stones, sand emitters, so on.
Anyway, building the own rocks, seems to be a secret wish of every boy, born at Mediterranean coast, like me :)

User avatar
Werner
Posts: 157
Joined: 09 Jun 2009, 13:30
Contact:

Re: Some exercises

Post by Werner » 28 Apr 2015, 18:24

Cool! now sow us some Mantra love. :)

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 03 May 2015, 22:06

When it comes to rendering, already tested the all aspects here, including hair, sand, volume smoke, subsurface scattering. All that together, too. While mantra in v 14 is able to render properly, I'd believe everything, using only environment light - including hair highlights - I think I will stay with common sunlight - environment light setup, as it is somehow easier to setup.
However, there will be a two compromises: first, when it comes to render-time subdivisions, it seems Mantra don't like too much of short poly strips. Usual topology of characters is OK, but these stones are not. Do not even work with one subdivision before rendering, I'd believe strips are still too short. So, rocks are going without subdividing. Character of course will be subdivided at render time.
Second compromise goes to lighting the volumes - while Mantra can light the clouds, using only environment light, including bounces and so on, I think I'll stay with classic setup, using separate directional lights for volumes ( easy to setup i H, btw). Much faster, while difference is small.

There's inevitable custom, procedural environment map generator in picture, based on point colors, modulated by gradients, driven by dot products. Houdini has a nice built in envmap generator, but, as anything else on this planet, it is "Helios - centric" :). My thing allows up to three stars, as scene does not belong to planet Earth.
However I think I won't go that much into two or three stars direction, simply looks unnatural for us humans.
By the way, found Houdini dealing with point colors, much more streamlined than working with SI CAV in ICE. I use Houdini point color even as a sort of visualizer. Each VOP has built input and output for Cd ( color) attribute. Of course it could be vertex or polygon attribute, too.

Next pics is current variance of hair setup. Changed the simulation to works only on around 40 'snakes' of hair, together with a bit complex chain of interpolations, later. The story with this is, that 40 guides are not enough to develop a nice hair filler, at least with usual, linear distribution. So, each 'snake' has a central guide and six auxiliary guides around. Another requirement is a sort of Frenet frame, cumulative interpolation along length ( Frenet frame = orientation defined only by curve, but does not flip). Already been prepared to write one, but figured out, that there is no need for that. Nice thing in H, is ability to utilize some standard SOP (modeling operator) for something else. So here is Houdini Sweep SOP ( kind of Extrusion along curve in SI), used to trace a proper orientation, including the aligned blend with NURBS surface based interpolation around roots. Sweep SOP is not visible, neither will render, as it is somewhere in middle of chain of nodes.

By the way, voluminous hairdo is not something that belongs only to appearance of heroine, it's actually more to allow the hair shader to develop its capabilities, set of highlights, transmission, transparent shadow.

Image

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 30 May 2015, 22:06

Found some time to put it to render. Intentionally for exercise, everything is rendered in one go, including volume, hair, subsurface scattering, sand... even 'depth fog' is 'real' one, not just fading along depth. Original is 2560 x 1280, this took around two hours on my home toy, i5 quad core with 16 gigs of memory.
To stay at 'preferably positive attitude' :), just to say something about unique good sides of H, possible for everyone:

- behavior of '3d compositing' app. As people already know, H is able to take 3d models as 'footage', directly from HDD. In case of own bgeo format, this includes the baked custom attributes. This scene is actually an assembly of dozen or two of small scenes. Half of them from Houdini, like terrain generators, scene for simulating the hair, so on. SI part is bunch of geometry snapshots. For transfer from SI, I've used a 'bad old' obj format, sometimes two or more obj files with matched topology, but deformed by ICE to fit the point position onto custom attribute, for transferring the additional stuff, like point colors or markers for hard edges. while H could take just a part of FBX scene, including hard edges and such, my ancient SI version is not great with exporting this. Plain obj is also more compact, somehow easier for quick changes.
All in all, when became familiar with pattern, also became motivated to add more and more, change this or that quickly.

- copy paste between sessions. Exactly, select node, copy, close scene, open new scene, paste the node. Softimage ICE can do this, too, but because of 'everything nodal' in H, it's possible to copy the complete, very complex networks, together with all geo references. If some assigned material is omitted, still it's possible to copy later, it will just fit. Generally, this allows me in one - band environment, to *do not* bother with administrating the custom libraries and assets. Last scene of same sort is last version, that's it.

- node ergonomics, like easy inserting the new node into middle of network, RMB as menu call for new connected node. Remembering of connections of copied node, so pasted node automatically connects to appropriate neighbors, if possible. And more...

From another nice things, found Mantra shading system as one of best balanced on planet, when it comes to 'unusual' things. Hair and volume takes it's time to render, of course, but difference is much smaller than in 'one non AD app, advertised these days' :). Didn't felt the need to go anywhere further of built in surface, hair and volume models. Found volumes much faster to render in case of complete shape, described only by voxels and procedural textures applied via volume VOPs. Sand or 'point rendering' is generally cheap, at some point had literally everything covered with sand :).
Let's call it, passes system, is more fluidal than SI, allowing to somehow replace the SI render region functionality. While render is intentionally 'one go', had a bunch of different ROPs just for previewing the particulars things.

By the way, have plans to do this with different lighting, for example with some dramatic volumes, hope I'll find the time for this, soon.

Image

danyargici
Posts: 56
Joined: 09 Nov 2009, 10:58

Re: Some exercises

Post by danyargici » 02 Jun 2015, 11:08

Thanks for the update! Always nice to hear people's impressions about Houdini!

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 08 Jun 2015, 00:02

danyargici wrote:Thanks for the update! Always nice to hear people's impressions about Houdini!
Thanks, Dan.

Back to business, here's version with more of smoke in front. This one took around 3 hours for 2560 x 1280 on i5 quad core. Have to correct my previous idea, how is faster if smoke is defined only by voxels. This one is a low resolution voxel density field, all details belongs to shader. Have a nice words for Houdini's ability to use almost the same set of nodes as an shader, or SOP ( modeling operator). Well, "almost", obviously not everything goes in every direction, but at least I've been able to copy the setup for turbulent noise, from SOP to SHOP network. SHOP is a "shader operator" in H, not model market or something, as I believed at first.
As still wanted to render everything in one go (pretty much stupid idea when it comes to smokes), had to solve an usual sampling issue - hair wants a high sampling for primary rays (in Mantra language = pixel samples at 6 x 6) , but this turns volume render into eternity. Hopefully, there's 'stochastic transparency' option in H, for high dense smokes, sprites and such. Turned this very low, to 2 here, got a reasonable time. With a bit of noise on 2560, but I can live with this.

Image

wesserbro
Posts: 177
Joined: 27 Oct 2012, 18:05

Re: Some exercises

Post by wesserbro » 21 Jun 2015, 00:02

Mathaeus wrote: Hair is a work of a bit more experienced author :) It's an old idea to use the simulation engine for styling, this time for something more interesting than plain long flat hair. Also, tried to go further of method I've used in ICE, to just apply the deformations later in post simulation. So, these curls nicely flowing around body (at least it's me who believe in this 'nicely') - they are product simulation factors, like gravity, collision and custom forces. As with anything else, this did not passed without a lot of additional work, on top of H wire solver. Including the custom, volume based collision VOP for external, per point adjustable collisions. While self - collision still belongs to H wire solver. Got it to simulate, enough good for styling, with 1 FPS, at the end.
Is it possible to create such hair with ICE and would it be faster then 1 fps (although i think for correct collisions its not that long)?

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 21 Jun 2015, 01:45

wesserbro wrote:
Mathaeus wrote: Is it possible to create such hair with ICE and would it be faster then 1 fps (although i think for correct collisions its not that long)?
Well, I really didn't created these pics for any comparison of this against that.....

Anyway, not easy to get self collision with ICE strands, as it's not possible to query them, using ICE 'get closest location' or 'get closest points'. Perhaps 'strand simulation framework' should be converted to work on arrays of points, first, which should be relative easy to do.
But, I think it's completely unfair to compare the solver, based on ICE generic nodes, against specialized, hard coded 'beast' like Wire solver in H, which probably has more parameters to tweak, than ICE strand simulation framework has nodes inside all related compounds together (I mean literally).
Imho fair comparison should be Syflex curve simulation against Houdini wire solver (Syflex ICE or Syflex classic, doesn't matter). As I don't have SI version able to run Syflex curve sim, honestly don't know how to get these Syflex curves to self - collide. Didn't find a way during trial time. Maybe it's possible, really don't know.
In any case, after getting a bit familiar with dedicated wire solver in H, I don't want to go back to 'mesh stripe technology' or any kind of utilizing the cloth solvers for hair sim.

wesserbro
Posts: 177
Joined: 27 Oct 2012, 18:05

Re: Some exercises

Post by wesserbro » 21 Jun 2015, 08:41

ICE strands doesn't even have friction attribute for strand-to-object collisions, am I right? But i was hoping there is some third-party strand dynamic compound floating around the net.
And about Houdini.. If its wire solver is hard-coded, how did you add custom collision operator?

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 21 Jun 2015, 10:59

wesserbro wrote:ICE strands doesn't even have friction attribute for strand-to-object collisions, am I right? But i was hoping there is some third-party strand dynamic compound floating around the net.
It doesn't but it's possible to built simple friction functionality, let's say to use dot product of velocity and surface normal, to slow down the velocity.
wesserbro wrote: And about Houdini.. If its wire solver is hard-coded, how did you add custom collision operator?
I should said something more precise than 'hard coded'. 'Integrated' is perhaps a better word. That is, simulation system which exposes controls to ICE or VEX. Just like PhysX or Syflex exposes self to ICE, or third party Momentum plugin.
Simple collision (but not self-collision) is not hard to do, as well as custom force or blend to something else. Imho real quetion is, how solver reacts to these arbitrary additions, does it explode, or it is still able to output an usable result. Didn't used that custom collision thing at the end, finally figured that there is no need.

wesserbro
Posts: 177
Joined: 27 Oct 2012, 18:05

Re: Some exercises

Post by wesserbro » 21 Jun 2015, 12:07

In "Learning Houdini" thread you said that maybe you will make some tutorial on houdini, can it be (if it will) an explanation of your hair DOP and custom ops in it?
I tried to google houdini hair, but it gives literally nothing useful on that topic. Do creating hair start with "Add Fur", if so, why it called fur? Maybe its only suitable for short strands, and for long hair one should create his own SOP. Why you get 1 fps with so complex hair setup, and i'm getting 2 fps with default furry torus (on i74770 cpu).
So many questions, and houdini is so unintuitive... :'(

Why one can control stiffness only by checking "Using ramp". Its so logical to control overall stiffness with one slider, and then after checking "ramp" to be able control by ramp. (now im just complaining :) )

Now, with self collision, it takes 20 sec/1 frame for a sphere with basic fur setup
-------------------------------
Ok, nevermind all that, i realized that wire solver is based on their finite element stuff, so it cant be faster than cloth, and cloth is not usable (even hardcore houdini users admit this)

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 21 Jun 2015, 13:00

wesserbro wrote:In "Learning Houdini" thread you said that maybe you will make some tutorial on houdini, can it be (if it will) an explanation of your hair DOP and custom ops in it?
I tried to google houdini hair, but it gives literally nothing useful on that topic. Do creating hair start with "Add Fur", if so, why it called fur? Maybe its only suitable for short strands, and for long hair one should create his own SOP. Why you get 1 fps with so complex hair setup, and i'm getting 2 fps with default furry torus (on i74770 cpu).
So many questions, and houdini is so unintuitive... :'(

Why one can control stiffness only by checking "Using ramp". Its so logical to control overall stiffness with one slider, and then after checking "ramp" to be able control by ramp. (now im just complaining :) )
About 'explanation of hair DOP', there's newer screenshoot in odForce thread. Not much more than here, anyway. It has almost nothing with built in hair-fur setup. Just wanted to start to scratch, in a way similar to what I already 'feel as good' in ICE. For now, everything is just a WIP and nothing more, very easy to explode by some wrong action. Already have some components improved, still have no exact picture about some other parts. So for now, I think there is no sense to go out, with anything additional. Already know how it was with ICE, where any 'unclean' solution was a sort of boomerang, hitting me in head, repeatedly through last six years.

About simulation speed, custom VOP creates a small slow down sometimes, sometimes not (if it's used to replace something). Curls created by custom force, are creating more complex conditions for self collision (more possible intersections). It's 'total long hair' sim, running over shoulders, body and arms too (so not possible to approximate collide mesh by something spherical), and so on and so on.
Nothing exact to take from this 1 fps on my home quad core i5 (don't know which model is exactly).

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Some exercises

Post by Mathaeus » 21 Jun 2015, 19:44

wesserbro wrote: -------------------------------
Ok, nevermind all that, i realized that wire solver is based on their finite element stuff, so it cant be faster than cloth, and cloth is not usable (even hardcore houdini users admit this)
I think you're wrong, here. If I'm correct, wire solver is much older in Houdini, than FEM. There are some constraints having same name, that's all. While it's probably easier to build custom wire constraints, instead of messing with built in stuff.
FEM based cloth is slow as hell, nevertheless. Also, values in wire solver, created by shelf tools, are looking as just wrong. For my taste, they'll benefit if they'll just remove around 3/4 of shelf tools.

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests