New Rocks

Started by efflux, December 06, 2012, 07:10:45 PM

Previous topic - Next topic

efflux

#15
This one clumps the rocks with a perlin. I multiplied with perlin and ditched the power function. This method makes for nice clumping but maybe it's blowing the stones up too much. I actually didn't want to lose the effect that they are blending into the ground but maybe now I'll take it that direction anyway because this isn't like the fake stones at all in the way it distributes and shapes the rocks. I'll test some more ideas.

EDIT: tgd removed. 7.9 on post 33 is better.

Chinaski

Yo! Very cool work! Sorry for my silence, I was sleeping. Now, I'm going to drink my tea, and explore your "new new" file (7.4 & 7.8 version) and play with it a moment. ;)

Just a little precision about the graph I've shown here: It's just one of the many many many pathetic attempts I produced... There was worst and better things. I've also noticed the similarity betwen voronoi Cell and Diff and used it a lot.

I think my plan need to be:

1- Draw the cells.
2- Exclude the small ones (the darkest ones).
3- Tweak the remaining cells (same max value in each cell). That's the tricky part, because I want almost the same height and size for all my rocks. So I can't just clamp the values.
4- Apply my vertical dispacements (to deform the terrain) on a big part of the cell.
5- Build the rock with a smaller part or the cell.
6- Pray to obtain "rounded rocks" (voronoi cells gradient are not so round, and, by the way, we must apply huge displacements).

That would be much much easier if we had an other type of noise, which draws a radial gradient from the center to the border of the cell. And if we could calibrate the maximum and minimum size of a cell (smaller cells are so boring). :D

I can also try to work with a perlin noise.

nb: I really need to learn english... Try to explain something here is so long and painfull. Hope you understand. :/
You don't understand me ? That's normal, I don't speak english.

Chinaski

#17
Shazam! Here is where I stand.



I deliberately didn't implement: lateral diplacement on the big rocks, micro displacements, surfaces mixing with voronoi Cells trick, or normals calculation (which certainly explain some strange dispacements), etc. It was just a rapid render of my "simple" rocks node tree WIP, build from your old scene. There is a lot of problems with undesired displacements, and because I work from the center of each cell, rocks seems very distant from each others.

The use of a Voronoi vector was a attempt to round the rocks. I'm not sure it was a good idea. Also, there is too much node, and use of too much strange values. I'm sure it can be simplier (with better maths capability) and improved. So I need to work on that.

The strange thing with this technic is that we work WITH a voronoid grid (rocks positionning) but also AGAINST the voronoi grid (rocks shape is influenced, and we are stuck in a cell for displacement effects on the ground). I dream of a radial gradient network, built from a veronoi grid. Like a bacterial colony. That would be fantastically usefull. But it's an interesting approach, thank you very much for your inspiring work! ;)

nb: I hope you can see the picture. I don't see it on Firefox (don't know why) but it's good on IE. :/


EDIT: About "radial gradient network, built from a veronoi grid" I was thinking something like that:


You don't understand me ? That's normal, I don't speak english.

mhaze

I've been thinking about doing something like this as fake stones drive me nuts, so thanks, big time, for this as it will save me much time and mental effort.  There is obviously much potential for a large variety of rock shapes here which should add to the quality of images no matter the theme, genre or style.

efflux

#19
Hi mhaze.

Chinaski, Mojoworld has that voronoi you mention.

The problem is this (except it's only a problem at certain settings if you don't avoid them). We are clamping the voronoi. This is one method of distributing them. It's fine because it creates a different form from the fake stones which don't clamp. Clamping makes the stones distant like you say. That's just a visual feature of the look.  You can them clump them with another function but the rocks still look individual. Also, the clamping is necessary anyway for other noise functions or fractals.

However, we get a blending problem if we want a sharp blend line. Because of a mismatch we need at least a tiny blend region or we get a step. I can solve the mismatch totally but so far I've done this with two fractals - one for colour and one for displacement. This means we can blend the displacement in but not the colour. That then looks like a sharper line which is exactly how we want one extreme of setting to look but without a step. This isn't so elegant though from an editing point of view. I haven't added a file here with that. Can we treat colour and displacement output from one fractal differently? I can't see how. Maybe there are other ways. It needs to be worked on more simply - just work on the blending issues to try to solve it.

Of course the idea with some of these files is that we do have a blending area so in that case it's not a problem. It does become a problem for users who don't know what is effecting what because they will have to tweak and see if it breaks. They won't know that the setting will break the form. I'm not really trying to make it unbreakable or more logical but I'm looking at various other ways to do things. It would be possible to design the shapes then decide, that's it, these are large boulders then fix it to create that style rather than having open ended breakable stuff.

Various ranges or values of various power functions will break things as well but they are still useful shaping functions. You'd have to set that up so it couldn't go beyond a certain range with another slider.

The fake stones uses a cell structure to distribute so no clamp. Clamping does however mean that we can use other noises for the shape. Perlin for example which can be effective to create larger flatter areas of rock. Here, I'm using the voronoi cell to make different coloured rocks. I'm not sure how fake stones does that.

efflux

Sorry, looked like i was just replying to mhaze in that last message. I've edited it.

Chinaski, I didn't get time look at your graph but have done now. What was it that you were actually trying to do? I take it you were trying to get the voronoi to sit within a kind of hollow or at least look as though it does even if the depression isn't that deep. It works in your graph as long as you don't set the bias and gain to create too sudden changes. That's the only reason for the tears you are seeing. If the biasing and gain create a vertical which they can end up doing, then you get that tear.

efflux

I found a weird file I did ages back. That's the first picture. I played with this basic idea and came up with the second. I had a version that retained the rims you see in the first picture. So the rocks sat in liitle hills with rims. I'll get that back again. No graphs because it needs serious adjustments. There are some nasties that you can see around the rocks. Usual blending difficulties which need to be solved. This file had adjusters that make the rocks either sit in depressions or rise up (still in small depressions of their own though). Unfortunately It will be a few days before I can get back to this. The rocks are voronoi 3D vector.

mhaze

Hi

Firtst attempt to use rocks has thrown up some interesting problems. Firstly the distribution of the rocks is very patterned without the orphans that give a truly natural quality. Secondly although you can't see it here the rocks will pick up displacements from the underlying surface.  Both problems I've no doubt can easily be sorted. oh for a random node!  The attached pic shows how distribution needs more work.

efflux

mhaze. That looks good. Yes, the distribution gets a little patterned when seen from a distance. We can try to do something about that but your POV shows how the rocks most definitely have ground flowing between them. This is different from fake stones.

Chinaski, I was thinking that you should try to do your graph but use voronoi 3D vector for the ground. it just looks smoother for this efect but can you make the rocks voronoi diff? The graph is cool. I should try using those booleans. TG2 didn't used to have them.

Unfortunately I don't have time to do anything else now.Ii'll have to revisit this later.

Chinaski

Quote from: efflux on December 09, 2012, 11:03:44 AM
Chinaski, I was thinking that you should try to do your graph but use voronoi 3D vector for the ground. it just looks smoother for this efect but can you make the rocks voronoi diff? The graph is cool. I should try using those booleans. TG2 didn't used to have them.

Unfortunately I don't have time to do anything else now.Ii'll have to revisit this later.

Yep! That was the solution I was looking for (found it 3 hours ago, my computer running on it): "Voronoi 3D A vector" node -> "Length to scalar" node -> classic build. For the mix part you can use a 3D cell node or a Y to scalar convert. That's working perfectly, nice rounded rocks... For ground displacements from the stone you can use a X (or Z) to scalar to blend the "bump" and (by the way) simulate wind deposition. :D

I was hoping the "Y to scalar" node or the "3d cell" node can help me to normalize the values of the "Voronoi 3D A vector" (same max value in each cell), but it's not the case. Last problem to solve.

I'm posting the result when the render is done. ;)
You don't understand me ? That's normal, I don't speak english.

Chinaski

#25
Woot! First one with mixed textures. Second one without textures, but ground displacements are blended with a "Z to scalar" node.





Values are pretty extreme (the stones are deformed and I hit some cells border), but, this way, you can't miss the nice effect.

One last thing, I noticed a little issue in your rocks 7.8 build Efflux: If you boost the value of the "profile" node (to 0.9 for example, yes I'm the type of person who can do that) the perlin noise reappear. You can solve this easily by adding a "Smooth step scalar" (input: "divide scalar 01" node; Step start: "Density" node; Step end: a constant scalar value 1; Outpout on the "bias scalar 01"). This way this part of your built is unbreakable. ;)

I'll post the tgd file (which is actualy very messy) when it will be good enough. I'm out. Nothing else for tonight, because this is IronSquid night! \o/
You don't understand me ? That's normal, I don't speak english.

mhaze

#26
Nice work Chinaski.  Better distribution in this one, added another perlin noise

mogn

"EDIT: About "radial gradient network, built from a veronoi grid" I was thinking something like that:"

Like this:


Chinaski

Nope, I need the same scalar value (black 0, or white 1) in the center of each cell. But your clip file is cool. :)
You don't understand me ? That's normal, I don't speak english.

efflux

#29
OK. I've got some time again. Looks like some cool work is happening here.

Chinaski, those look great.

Just one point about distributing the rocks, this can be done by anything, even a fractal a be used for that. If we can get the smaller area or rocks looking good and blended with surrounding ground then the rest will come reasonably easily. It's no different from other blending problems in TG2.

Another point is that although I started this with "rocks" because that's a kind of extreme use of the methods here, what's going on can be applied to any distributing of different surfaces with displacements but then you'd not need things like fractals controlling the overhangs because that would be less of a visible feature and actually create problems if thee wasn't much overhang. It also goes down to small surfacing details. Ity can be good to blends of different materials that are very separately distributed. The image where I added the extra voronoi surface is like that. The voronoi is layers of different voronoi but in places it suddenly hits the same smooth value since it's clamped.

The most crucial part of all of this is working out how the blend happens in relation to both colour and displacement. I haven't really solved that part elegantly.