procedural population variation

Started by Dune, September 24, 2010, 09:04:37 AM

Previous topic - Next topic

FrankB

can someone please just post a version of a tgd you're having success with? I kinda lost you when you all were talking about separating blue nodes form red... sounds like the matrix ;)

Besides, I would have bet a considerable amount against that "mac vs win" is the reason for it working with Volker and not me :D

dandelO

This is the simple version, Frank. Just import the clip, one node, place it in the parts shader and then into the colour function of the 'part' you want to vary.

You'll want to get a little busy in its network, there's only a simple 10m perlin inside it for now. Ulco has the right idea for now, just make different scaled perlin stacks and merge them.

The only reason we have been getting traceray errors is because the get functions were on the same level as the parts shader, pop them inside a separate container node and it works fine.

Volker Harun

What comes into my mind ... a year ago I was playing with a couple of objects, that were not shade-able.
It was not a matter of the objects, it was a matter of the single faces of the object.

When applying a green and red texture to a 'Part' of the object, there was no shading on the space origin of the Part, it was that the space origin was reset on each single face.

So when you use a shader like Dandelo's fantastic wood on the object you ought to see the patterns or just a brownish mixture. Last would be a broken object.

dandelO

I haven't actually tried the wood on many imported objects yet, I mean, I have but just laid across the whole object, not its parts. It does hold its pattern when applied to whole objects, I'll experiment with different grains on different 'parts' soon, should work fine and rotating the object will also rotate the grain so, that's not a problem, I'll have a play later on, making dinner...

Dune

QuoteThe only reason we have been getting traceray errors is because the get functions were on the same level as the parts shader, pop them inside a separate container node and it works fine.
Why would you do that, I'm getting confused here? If you have the functions anywhere on your workspace it works, no need to put them into a parts shader.

The main problem is to get PF's to stick to the world level, like the functional perlins with their 'get'. A 'get' into a PF doesn't work. A simple shape shader, for instance, has its coordinates baked in, so you can vary a pop by using that as well. Limited use of course, but the baking of coordinates would do the trick. I've also tried feeding some fractals into a surface shader or distribution shader attached to the compute terrain and then into the default shader of the object, but that doesn't bake the coordinates either.

Volker Harun

It really may be object related ... so we should go for one common OBJ to test with, else we get with the same setups different results!
For me it really does not matter where the 'Get position' node hangs around ... the result is always the same ... regarding to an object.

The images I made yet, proof, that there is no baking for objects ... else the image over here:

This image has a new OBJ populated which is not affected by the same functions used with those Bots ... if those functions would have worked, the ToonCars would be turning blue to black ...

Cheers,
Volker

dandelO

#36
Ulco: have you tried taking all your functions directly into the parts shader and rendering?(without the function nodes being inside another container). You're right, there is no real need to put them directly inside a parts shader but it makes sense to do so, since that is where you'll find the shaders that you want to vary the colour of...
Do you use a Windows or Mac?
If the functions are on the same level as the 'object part' on a Windows computer, there are lots and lots of traceray errors and a failed render. It's very weird. Boxing them up inside any other node stops that from happening.

Volker: Nightmare! I wonder, why it works for one and not the other? This is a pain.

Volker Harun

Doing a render now with the PF enabled instead of the Get position and it works ... with this OBJ.

dandelO

Oh, FFS! I give up!

Actually, I don't. ;) I'm test rendering a working functional method on different objects at the moment... :D

Volker Harun

And here is a mixture ... one Part has the PF fed in, and another part has the 'Get position' function ...

... and both show up correctly ....

this is funny ;)

dandelO

Volker, can you try this with a larger scaled fractal? I suspect that the large variations are functional but the smaller patches are the fractal, is this right?
I was able to achieve similar results and thought that I had proper population-space fractal variation but actually, I then raised the fractal scales to be larger than each model and it soon became apparent that the fractal variations were still only in object-space.

If I'm wrong about this with your example, well done! You've cracked it! :)

Volker Harun

I understand what you mean ...
to control this, I just have to turn off the rotation within the pop ... this way even the small grey and white patterns should be different for our goal.

j meyer

Did some more tests yesterday night and noticed that even an unconnected
blue node (like perlin noise or a multiply,not a get though) inside the parts
shader gave ray trace errors.Could someone confirm,please.

The only globally visible effect from a PF i got by using a group with functions inside
connected to a surface layer that's between the default shader and the gray
one and has a PF as a break up shader (coverage 0.5 break up 1).

dandelO

#43
Confirmed, J Meyer, I have been getting the same results.
Dune got it that very way as well, with the breakup of a surface layer, it seems to work great that way in his example, it still  involves adding surface layer to each object-part shader you want to affect, though.
I'm trying to make a simple plug-in-able variation shader that will just feed the colour function already present in the default shader.

I've got a functional based one, which I'm testing a basic pattern over lots of different objects to see if it holds up over all of them. Working so far on all the objects I've tested.
Here's a few cheap examples with only the basic variation enabled. I'll re-enable the finer detail variations and upload the clip in a while...

* The last one is an older object and still has a multi shader, it still works.

Volker Harun

Here we have what I was talking about two posts above.

By the way, the Perlin's scale was for the low_PoV-Render: 30; for the image a few posts up 10. This image's scale is 60.