PDA

View Full Version : Bump vs Displacement with Instancing



Carlo_Jongen
02-10-2014, 08:13 AM
Hi,

I'm curently working on a project with Instancing. It is one object Instanced, now I would like all the Instance to look different. I do this by using the Instance Info Node and a gradient.

This methode workes fine for Color, Bump or anything else in the Surface Editor ( => Edit Nodes / Print screen example link below ).

http://www.c3d.be/forumnewtek/Instance_Bump.jpg

To make the instanced objects look more iregular in the close up shots I thought using this same technique for the Displacement, see Print screen example link below.

http://www.c3d.be/forumnewtek/Instance_Displacement.jpg

If I connect the Bump of the Turbulence traight in the Displacement input all my instanced objects get the same deformation ( this is what I expected ).
When I use the same " Instance Info & Gradiënt " thechnique like with the Bump map ( the first link ) I would expect the Displacment to look more random, but this doesn't work.

Any suggestions on how to fix this?

Thomas Leitner
02-10-2014, 09:23 AM
There is no way to use different deformations on the same instanced object. To work around use more objects with random deformations to instance.

I hope itīs help.
ciao
Thomas

Tobian
02-10-2014, 02:19 PM
Yes, the only way to do this would be to clone the object 3 times, apply the displacement differently, and use all 3 objects inside your instance generator, with weighting to distribute them randomly (or not, if you combined that with other weights/textures). As Thomas says, it's not possible with the method you describe because each instance can only be varied in size/position/rotation/surface - but nothing else, because instances have to be identical geometry. There's of course nothing to stop you adding multiple versions of an object in the instance generator, for this purpose.

probiner
02-10-2014, 02:20 PM
Which is a real shame :/

Tobian
02-10-2014, 02:29 PM
Well it is, yes, but the flip side is you could accidentally generate billions of different near identical clones of a mesh, clog the memory and cause a complete crash :) I guess they could allow for a 'make clones' button, in the instancing panel, but only the brave should use it :D

Tobian
02-10-2014, 02:37 PM
FYI, the main difference between 'clones' and 'instances' in the Lightwave sense is that other than those additional stored vectors (position, scale, rotation, and surfacing assignment) instances use zero extra memory. Clones however, which created from the same mesh, can have complete distinctiveness, but all have to be created in memory, as distinct items.

I wouldn't be surprised if some software out there can blur the lines (hair rendering comes to mind, for example), with dynamic creation of assets, but this still has a massive memory cost, as they are essentially *not* instances in this sense, they are just using the same sort of procedural generation system as Lightwave does, to create clones. In the case of hair rendering, this often means the hair primitives have to generate hair at render time, and use small buckets, so they only generate a few million of them at a time, so as to not overload the memory. LW doesn't (yet) have bucket rendering, so that's not going to be practical for the moment.

probiner
02-10-2014, 02:48 PM
FYI, the main difference between 'clones' and 'instances' in the Lightwave sense is that other than those additional stored vectors (position, scale, rotation, and surfacing assignment) instances use zero extra memory. Clones however, which created from the same mesh, can have complete distinctiveness, but all have to be created in memory, as distinct items.

I wouldn't be surprised if some software out there can blur the lines (hair rendering comes to mind, for example), with dynamic creation of assets, but this still has a massive memory cost, as they are essentially *not* instances in this sense, they are just using the same sort of procedural generation system as Lightwave does, to create clones. In the case of hair rendering, this often means the hair primitives have to generate hair at render time, and use small buckets, so they only generate a few million of them at a time, so as to not overload the memory. LW doesn't (yet) have bucket rendering, so that's not going to be practical for the moment.


The same way you have I go around the clock in a gradient node inputs you could have the same for displacements. No need make a displacement per instance. You could slap 3 gradient keys with different maps and projection on a Instance ID input, set to Repeat and done :)

Carlo_Jongen
02-10-2014, 04:21 PM
Thanks everybody...
I have to agree with Probiner, it would be nice if the displacement would work with just a gradient node and the instance info. Cause this would have been the easiest way... Maybe a LW12 suggestion :-)

erikals
02-10-2014, 11:20 PM
The same way you have I go around the clock in a gradient node inputs you could have the same for displacements. No need make a displacement per instance. You could slap 3 gradient keys with different maps and projection on a Instance ID input, set to Repeat and done :)

Nice trick there Probiner... http://erikalstad.com/backup/misc.php_files/king.gif

probiner
02-11-2014, 05:10 AM
I was describing something that doesn't work.

Like so
http://s28.postimg.org/hn2bmjm59/pstimg_screenshot_2.png

And if it work it would be an improvement.

To me more than displacement per se would be the morphs the most useful.

No I don't know if the displacement had to be in the source, like in the image above where only on "instance" is evaluated or actually in the instance generator where all instances are evaluated.
http://s28.postimg.org/pp9e6sfdp/pstimg_screenshot_4.png

Cheers

erikals
02-11-2014, 08:54 AM
oh, agh... that sucks...

if not animated, you could cheat (morph/displace) instances in DPinstance using an MDD offset.

not sure if you could then blend several MDD files.


afaik, LWi doesn't do MDD offset (?) haven't tried that much...

Tobian
02-11-2014, 09:43 AM
I think you'd need to have something to allow LW to know how many itterations to generate though, the gradient node isn't going to cut it. Otherwise it would create 1 clone PER instance... = megacrash! :)

prometheus
02-11-2014, 10:59 AM
would be a ground breaking tech if they could pull out instancing where the instanced object is getting morph stages between two otherwise identical objects, and it will apply increased morphs between those objects for each instance or use a list of morphed items and create the instances from those.

Letīs dream a little..

Michael