Options for animating TGOs

Started by gregtee, October 30, 2013, 10:05:12 PM

Previous topic - Next topic

TheBadger

Thanks Oshyan.

So there is no way to stager the timing of the when the sequence starts then? That is the sequence will animate the way it was saved out and there is no way to change any aspect of it? I thought for a camera pan you could maybe have a sequence start sooner or later than another, and when the camera pans by it will look different. I was curious if the population in the sequences was dense enough, and there was a lot of activity in the scene, then any repetition would go unnoticed, except under very close inspection perhaps...

Really want to try this, but am not at all sure about rigging and animating a tree in the first place. I would think that it would be easer than a humanoid, but really hard to say until I try. Hope it would be easier.
It has been eaten.

gregtee

We have a copy of Speedtree at work and I was watching one of the artists mess around with it.  Not only does it make very realistic trees but it also allows one to add various types of wind effects.  These can then be saved out as a point cache which something like Maya can then render.  It does not export object sequences however, just the point cache.  It would be great if TG could import this cache data as well.  Geometry cache files are more compact than actual object sequences.   Something like Alembic would be good. 

I also agree with Badger that being able to offset animations would be useful.  I could see an instance where say a 1000 frame wind geo cache file is exported from something like Speed Tree and sections offset by 100 frames or so are applied to the same instance of a tree.  Taking that a step further, I could imagine where various wind types are written out for the same tree instance and the artist could use a null/locator with a defined area of influence to call different cache files, say to create a sudden gust of wind through just a section of trees or grass or whatever. 

Just food for thought. 

Supervisor, Computer Graphics
D I G I T A L  D O M A I N

Oshyan

We do plan to add Alembic support, though I don't know if this would automatically include point caches since we don't have an existing, matching format for that in TG. Not to say it won't be supported, certainly if the Alembic SDK makes it easy to do so we will.

- Oshyan

gregtee

I can send you an example alembic file if that would help.

-Greg
Supervisor, Computer Graphics
D I G I T A L  D O M A I N

Oshyan

We'll probably ask for some samples on the alpha forum when we start dev on it.

- Oshyan

gregtee

Just ping me.  I've got lots of them. 

Supervisor, Computer Graphics
D I G I T A L  D O M A I N

TheBadger

QuoteI have access to considerable resources to do this kind of thing

QuoteSupervisor, Computer Graphics
D I G I T A L  D O M A I N

Oh man, I guess so! And Its really funny that you never know who you are talking with on the internet... Should remember that so I don't scream randomly at people anymore.

But work related or just testing, I would like to see some renders from this if possible. A big step forward on this subject will be fun to see.

It has been eaten.

gregtee

Next week when I'm done with my current project and get a little breathing room I want to start testing running large populations through the render farm again, testing render settings and such to see how far I can push things before they start to break. 

The biggest hurdle I see is easily getting some kind of variation procedurally into populations with regard to wind effects.  It seems the only way to do this now would be to manually create say, 10 different object sequences and then run them through the populator with rotation offsets to add illusion of variety, and while that's fine for instances where you're the client so to speak, it likely wouldn't work well in an environment where you've got someone else paying for the imagery who wants things to behave a certain way and expects quick turnarounds.  At that point it becomes a very manual process and the success of the project depends entirely on how fast you can correctly interpret the clients needs and get the requests rendered and presented, which is usually at best over the course of a couple of days, which when you factor in render time means you'll really have maybe a day and a half to make changes.   

In any case, just seeing millions of trees beautifully rendered that all move the same would still be quite a sight. 
Supervisor, Computer Graphics
D I G I T A L  D O M A I N

dandelO

I could think of a couple of ways to animate a population with procedural wind effects, without using an object sequence.
First idea, don't use ray trace objects and for the 'wind fractal', before inserting it into the object 'displacement function', feed it into a Transform Shader, check the box 'Use World Space'. Now you can set up any type of noise pattern, be it waves, random, vortex, etc. over the entire scale of the population, so avoiding the repetition of the wind over every instance. Roll your wind fractal in any axis across the population, each part of the white noise from the fractal in 3D space will affect whatever object lies on that space.
Second idea, use ray trace objects and in the same way as above(Transform/World Space), use that transformed fractal as the Mesh Displacer, in TG3 only. That would wobble/blow your population in World Space, as above, according to the wind fractal noise and scale.
We've all seen a field of grass seemingly blow in 'waves', noise stretching, rotation, etc. could all be done with the procedural fractal's Transform Shader. No need for multiple object sequences because in World Space each object over the entire population would only take the information of the World position, no repeating whatsoever...

gregtee

I've tried that kind of global displacements before in all kinds of apps and at least to my eye, they seem to always look bogus.  They're difficult to control and lack the subtly of how real wind simulators effect leaves and branches differently.  I did see one example here on the forum somewhere that looked promising but there wasn't a tgd file of it posted that I could dissect it and see if it could be applicable to large scale populations.  The trick is always in the weighting of the geo so that leaves move more than twigs, which more more than branches, which more than limbs, which more move than trunks, while at the same time keeping all that stuff from actually deforming in shape. 

I still think the best way to go presently assuming you want something that looks absolutely real and not experimental is to use object sequences generated elsewhere imported and rendered in the TG engine. 
Supervisor, Computer Graphics
D I G I T A L  D O M A I N

dandelO

Yep. You'd need to import the model that had each level assigned to its own shader. I'd set out the wind system in the main network view and assign the wind shaders manually: Global wind everywhere, trunk wind masked by global, branch wind masked by trunk, leaves wind masked by branch. One shader-tree of wind nodes assigned to each object manually. I've done lots of wind experimentr with Terragen, from single objects to multiple part objects, I really think that the most convincing style to use would be an internal, procedural method. You don't have any chance of a repeat pattern forming and, although apparently random, TG's procedurals are so open-ended that they are really not that hard to tame at all with a built-in black to white gradient system. Of course, though as always, there's multiple ways to skin a Terragen cat but I think the procedural method is really much less work and playing around than external model editing, and such. Many other applications have this functionality built-in, of course you know that, but I know Terragen does, too, it's just not a selectable 'feature' yet. A little messing around to contain it into a few internal nodes is probably the option I'd prefer.
I'm really interested in seeing your ideas, too, though, don't get me wrong. I'd just rather create an inbuilt system that was easily globally controlled with internal nodes, than need to mess around in another application, which would be tuned to a particular scene. Know what I mean? Like I said, though, many ways to skin a digital cat, and all have their own ups and downs.

gregtee

Hey if you can get something working in TG that looks convincing I'm all ears.  I just haven't been able to do it myself yet and haven't seen anything that really hit the mark either, but if you come up with something you think works and want it rendered I'll be happy to push it through the farm as a proof of concept test. 

-greg

Supervisor, Computer Graphics
D I G I T A L  D O M A I N

Dune

The problem would also be to have a gradient in wind effect from the bottom of the tree upward. In a flat terrain that's easily done (well, quite easily) with a distance shader or distribution shader, but on hills that's more difficult. Unless (now I'm thinking theoretically) you add the grayscale terrain heights to the grayscale basic height by distribution or distance shader, and use that as offset.

dandelO

A basic altitude constraint on the instanced object would work, Ulco, that doesn't need to use World Space. The constraint would come after the wind effect transforms, and would be using the default Object Space for distribution, before entering the Object Part's Default Shader/Mesh Displacer.
I have too many scenes going on just now to experiment more, I think I'll put those on temporary hold after today as I really want to play with this wind thing again now. I'll be back...

Dune

Sounds interesting. I'd like to play too, but I need my pc for the Wall (for 1), I'm afraid.