Forum Moderators: wheatpenny, TheBryster
Vue F.A.Q (Last Updated: 2024 Nov 21 4:12 am)
The terrain you see is a procedural terrain with a size of 200km/200km.
http://www.eonmusic.ch http://www.artmatica.ch
http://www.eonmusic.ch http://www.artmatica.ch
1- Fractal function which defines the overall shape of the terrain. Here I used just one node. Of course this could also be a more complex set up.
2- Projected Texture Node. This part generates the heightfield. The Contrast/Brightness node below lets you scale and offset (altitude) the heightfield
3- This segment defines the area which blends-in the heightfield.
http://www.eonmusic.ch http://www.artmatica.ch
http://www.eonmusic.ch http://www.artmatica.ch
Since the Projected Texture node cannot be connected to the Multiply node it has to be scaled down separately. So the x/y scale parameters are set to 0.02 (1 by default).
Btw. for this example I used a terrain generated in World Machine 2 with a resolution of 4096/4096. You can load your own terrain, of course.
http://www.eonmusic.ch http://www.artmatica.ch
The rightmost branch of the function tree contains a Smooth Map node. It has 4 parameters. The top and bottom parameters should be left at 0.
The parameter "Input range/Upper value" defines the radius of the area where the heighfield appears. It`s set to 22 to make certain you dont have any edges from the greyscale map. But you can experiment with other values.
The parameter "Output range/Lower value" sets the area influence. I set it to 1 to achieve a full blending between the fractal part and the heightfield part.
Well, thats all :-)
http://www.eonmusic.ch http://www.artmatica.ch
Mazak
Click on image for lager view!
That looks impressive, Mazak!
I`m glad you appreciate the function and make use of it :-)
To me the main obstacle when using 2 separate terrains has always been the edges of the heightfield terrain. And even if you manage to get rid of those edges, there is still this sharp transition between the 2 terrains.
By using this function there is no need to hide anything and the transition will always be perfectly smooth.
http://www.eonmusic.ch http://www.artmatica.ch
Quote - Excellent work indeed. Thanks for your generosity in sharing it with the community!
You`re welcome, Artur :-)
http://www.eonmusic.ch http://www.artmatica.ch
Excellent! This will really help with GeoControl terrains.
LVS - Where Learning is Fun!
http://www.lvsonline.com/index.html
that's a very nifty idea, I'll have to investigate this - thanks a bunch ! :)
My Freebies
Buy stuff on RedBubble
Quote - Excellent! This will really help with GeoControl terrains.
Glad you like that, Peggy. Im quite confident that this technique opens new horizons when using such terrains. What
s also nice is that if you hang in a Combiner node after the Projection Map node you can add a subtle amount of the fractal noise to the heightfield terrain.
http://www.eonmusic.ch http://www.artmatica.ch
Quote - that's a very nifty idea, I'll have to investigate this - thanks a bunch ! :)
Your`re welcome, Frank.
The technique is not entirely new. In fact, there is a MetaNode accessible in the filters menu named "Flat Area". It is intended to be used with Infinite Terrains to create a flat area around its center.
http://www.eonmusic.ch http://www.artmatica.ch
Quote - great tutorial, thank you
You`re welcome :-)
I am happy you find it useful and also that I could give a little bit something back. Have spent hours with your tutorials and they are an excellent resource for all kinds of techniques.
Also, your relaxed way of handling the function editor really helped me to get into it myself.
http://www.eonmusic.ch http://www.artmatica.ch
Wow, thank you for that!! that will also be awesome for putting volcanoes in landscape! :)
Mmm....
"I'd rather be a
Fool who believes in Dragons, Than a King who believes in
Nothing!" www.silverblades-suitcase.com
Free tutorials, Vue & Bryce materials, Bryce Skies, models,
D&D items, stories.
Tutorials on Poser imports
to Vue/Bryce, Postwork, Vue rendering/lighting, etc etc!
My pleasure, Silverblade and Chipp :-)
Quote - Wow, thank you for that!! that will also be awesome for putting volcanoes in landscape! :)
Mmm....
Absolutely....and all that other stuff that works best with greyscale terrains.
... although I hope that one day we won`t need to use greyscale maps anymore. As mentioned elsewhere, the current Vue terrain editor lags way behind what other softwares, like GeoControl or WorldMachine, are capable of.
But let us not complain as long as there are ways to combine nice greyscale terrains with procedural terrains.
If we care to generate terrains in sufficiently high resolution, and as long as we are aware that for areas very close to the camera a procedural function is needed (to get enough detail), we are on the right track.
http://www.eonmusic.ch http://www.artmatica.ch
Also, I seem to have generated a partial moat around the mountain on the left(see arrow. I suspect the numbers I used in the smooth-map node, but I dont know for sure.
Any advice how to get better control on my mountains? ultimately I would like to be able to define
the position, radius and height of each feature, without having to adjust additional parameters on a trial&error basis.
Thanks anyhow - even if I dont get it to work any better, it was quit fun!
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Hey, Im glad you
re having fun with it :-)
Your approach might work provided you find the right offset value for the 2nd terrain.
I have experimented with multiple terrains as well and found out that for some reason ( I do not have an explanation for this) the offset of the Texture Projection Map node has to be set to a minus value, if you offset the area with a positive value.
There is a recipe which works fine and which lets you have multiple features (which will all look identical if you want)
In short: you can use the function I posted. Add an Offset node above the Length node.
Lets say you want to offset the area branch with an Y value of 40.
In this case, with a Multiply node value of 50, you need to use an offset value of -0.8 for the Texture Projection Map node.
I will add more info tomorrow or so (It`s late here in Switzerland and I need some sleep).
(just edited my post):"In this case, with a Multiply node value of 50, you need to use an offset value of -0.8 for the Texture Projection Map node."
http://www.eonmusic.ch http://www.artmatica.ch
(or wait till eonite wakes up:) )
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
At least you managed to create black holes in Vue ;-)
Below is a screenshot showing the new function. I just added some nodes for the additional heightfild. The left side of the function is identical to the previous function tree.
http://www.eonmusic.ch http://www.artmatica.ch
You can also see that the "old" branches are connected to the Blender input "0" of the second Blender node.
I also marked the Offset node which offsets the new area.
http://www.eonmusic.ch http://www.artmatica.ch
http://www.eonmusic.ch http://www.artmatica.ch
http://www.eonmusic.ch http://www.artmatica.ch
No black holes, just terrain...
http://www.eonmusic.ch http://www.artmatica.ch
My function was exactly the same as yours. The only difference was that I didnt have the '-0.8' in the projected texture map.
I guess I should have gone to sleep too - I understand it better now. I only made changes in the branch that defines the ratio in the blender node, or made changes in the texture map node, but not both together in a correlated manner. Seems so obvious now:)
I can get similar results to yours now -hurray. I'm pretty sure my previous method, defining the position and using the subtract node would work too if I move the texture map at the same time.
I might prefer that because then I could position primitive objects where I want my features to be, read their position in the world browser and enter the numbers in this function. Seems more straightforwards than measuring a distance. Depends on the circumstances of course.
Also, it will look a lot cleaner if I dont have to define two numbers -one in the multiply and one in the texture map. These numbers are related, and I shouldnt be able to define them independently. I remember now -but I wont in a few days.
But this is a detail, the method works for multiple features - that's so cool!
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Also, with regard to the sign of the value entered in the texture map- it is related to the sign defined in the offset node. If I move the feature in the other direction (-40 instead of 40) I need to reverse the sign in the texture map (from -0.8 to +0.8). Maybe it's what you meant, but I thought I could never use positive numbers at all in the texture map node.
It all makes sense now. Arnt math and the function editor wonderful!
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Very cool, ArtPearl!
Its great we are discussing this here. Also it
s refreshing to have others participating in finding good solutions. As you said the function editor is wonderful (and powerful too). It allows you to really dig deep and come up with new or better solutions.
Sounds like you have quite a profound understanding of the function editor. That`s good to know...
Just checked out your positioning method and it works fine too. You`re right, defining a position instead of a distance makes sense.
What I also like about your version is that you do not have to "convert" the value for the texture map node, just change the sign.
Now we can go ahead and add a couple more heightfields :-)
http://www.eonmusic.ch http://www.artmatica.ch
Quote -
What I also like about your version is that you do not have to "convert" the value for the texture map node, just change the sign.
I have just noticed that we do not have to change the sign when we use the Substract node (I tried with the Add node).
That`s good because now we can extract the Origin parameter of the Texture Map node and connect it to the Constant node (used to offset the area branch). This way we can define the position of both, the area AND the texture node, simply by entering the values we want into the Constant node entry field.
http://www.eonmusic.ch http://www.artmatica.ch
"Its great we are discussing this here. Also it
s refreshing to have others participating in finding good solutions."
Yes - 2 brains are at least 3 times better than 1 :)
It would have taken me ages(if at all) to figure out my problem of the missing '-0.8' on my own...
"Sounds like you have quite a profound understanding of the function editor. That`s good to know..."
profound...no, I wouldnt go that far, but I do like it.
"Just checked out your positioning method and it works fine too. You`re right, defining a position instead of a distance makes sense.
What I also like about your version is that you do not have to "convert" the value for the texture map node, just change the sign."
Oh you so much faster than me...I didnt get to doing it yet, so its encouraging
"Now we can go ahead and add a couple more heightfields :-)"
I'm trying to sort it out so all the conversions are done automatically and the user only needs to define scale and offset (or position). Then I'll see if I can make it into a meta-node, I havnt used those yet. But if I/we can do that, than extending it to extra features will only involve adding one meta node(with the associated values) and a blender node. Should be easier for people who arnt that keen on complicated functions
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Quote - > Quote -
What I also like about your version is that you do not have to "convert" the value for the texture map node, just change the sign.
I have just noticed that we do not have to change the sign when we use the Substract node (I tried with the Add node).
That`s good because now we can extract the Origin parameter of the Texture Map node and connect it to the Constant node (used to offset the area branch). This way we can define the position of both, the area AND the texture node, simply by entering the values we want into the Constant node entry field.
crossed posts:)
Isnt it funny - I'm working on your original version and you're working on my version...
I feel a moment of enlightenment(for me) arriving - how do you extract parameters?
And somewhat related - is there a way to examine what values a node actually has (input or output)? some way of displaying the values? When the function gets to be complex it could be a very useful way of checking that everything is actually proceeding correctly.
Sorry - I've got to do some 'real life' things, so If I dont post it isnt that I lost interest
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
You just have to click one of the flashs.
http://www.eonmusic.ch http://www.artmatica.ch
Quote - And somewhat related - is there a way to examine what values a node actually has (input or output)? some way of displaying the values?
Click on the Node Preview icon in the top tool bar of the function editor. Lets you preview the values of the node.
http://www.eonmusic.ch http://www.artmatica.ch
Ah, no, that imports values - if I click it I get a new 'tooth' on the node and I can connect some additional input to it. I know how to use that. What I'm wondering is if there is a way to check what the node actually got. For example, if I started with a vector-constant, did a series of operations on it- multiply - invert etc- and then plugged it in to the node as you describe, is there a way to check what is the resulting number that arrived in the node?
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
OK - I figured it out and sorted it so that now I only have to change the numbers at the top, the scale factor and the three components of the offset vector. In this case (0,-40,0). I changed -40 to 0 and it just moves nicely:)
I know it looks more complicated to decipher, but its easier (and less prone to errors) to use.
I made a start in converting it to a meta node and it works, but It isnt set up nicely for having 'published values' so I'll give it another go, and add the brightness/contrast parameters to the top.
(and also fix the 'position' method similarly)
I'm still excited about it like a kid with a new toy:)
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Artpearl, your latest function is just brilliant! How the heck could you figure that out so rapidly???
This will make things a LOT easier to handle.
Will take me some time to analyse your function and to check it out.
Btw. When creating Metanodes and extracting parameters, make certain that, when publishing parameters, you also use the group option. The resulting Metanode will look much cleaner this way.
http://www.eonmusic.ch http://www.artmatica.ch
Thank you:)
I think the crossing over of lines make it look like its complicated, but if you follow one branch at a time it isnt that hard.
The starting point is just deciding what needs to be done:
The only place I had problems was that I cant use the 'opposite' node on a vector, or multiply a vector by a negative number. Bizarre ! I would classify this as a bug or at least a design flaw, but I would need to check a bit more.
I think it should only take me a few minutes to turn it into a meta node, but I dont have time probably till the evening (US mountain time). I did see the group option, you are very right really useful.
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Thanks for the info, ArtPearl!
In the meantime I have analysed your function tree and duplicated it here. Everything works fine.
And I learned a couple of new things by analysing your function, for example I have never used the Invert node before. The thing makes me more aware of the fact that there is math behind it. Your solution is really clever!
The only thing I have changed in your function is that I disconnected the Multiply node above the procedural terrain from the Constant Node. This way the procedural terrain can be scaled independently from the heightfield/area.
Yes the function looks complicated, but once a Meta node is created with the relevant parameters published it all becomes very simple. The picture below shows a possible parameter box of a "Heightfield Integrator" Metanode. The Metanode itself works perfectly.
http://www.eonmusic.ch http://www.artmatica.ch
Forgot to say: When you create a Metanode and you publish parameters all works fine. But if you want to make changes afterwards like renaming it requires you to "un-publish" first...and then unfortunately it may happen that Vue crashes. Happened to me a number of times, so it`s better to check twice before you publish a parameter.
http://www.eonmusic.ch http://www.artmatica.ch
I managed to get it to be a meta node too- yeh! (only a couple of crashes, I think one may have been because I included the input node in the meta node by mistake, still - shouldnt crash)
I'm not sure about needing a different scaling factor for the procedural terrain. If we want a different relative scale for the HF terrain we already have the parameters in the brightness/contrast node and the smooth map node. Why do we need an extra variable? I thought it was important to keep the same scaling for both terrain types.
I must admit I dont yet fully understand the values in the smooth-map node. Where does the '22' come from...
I think I need to test how it works in a real situation, but I rather get my method (defining the position rather than offset ) working first.
Yes- good collaboration, I enjoyed it!
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
"I paint that which comes from the imagination or from dreams,
or from an unconscious drive. I photograph the things that I do not
wish to paint, the things which already have an
existence."
Man Ray, modernist painter
http://artpearl.redbubble.com/
Quote - I managed to get it to be a meta node too- yeh!
That`s good news. Metanodes are a really powerful option in the function editor.
I have also noticed that when you use MetaNodes, even if you can have really complex functions inside, the function itself becomes very stable. Never had crashes because of using Metanodes (although ungrouping Metanodes can be a disaster).
Quote - (only a couple of crashes, I think one may have been because I included the input node in the meta node by mistake, still - shouldnt crash)
I had a number of crashes because of un-publishing a parameter, but never because I included an Input node. Btw. in my Metanode version I included the Input node as well.
Quote - I'm not sure about needing a different scaling factor for the procedural terrain. If we want a different relative scale for the HF terrain we already have the parameters in the brightness/contrast node and the smooth map node. Why do we need an extra variable? I thought it was important to keep the same scaling for both terrain types.
You mean the Brighness/Contrast node underneath the Texture Projection Map node? This one merely scales and offsets the altitude. But the size of the procedural terrain remains the same.
IMO being able to scale the size of the procedural function separately makes sense.
It`s only important to have a common scaling factor for the heightfield and the blend area.
Quote - I must admit I dont yet fully understand the values in the smooth-map node. Where does the '22' come from...
t took me some time to understand it either, but now it`s clear to me. Below is a way to learn how it works.
http://www.eonmusic.ch http://www.artmatica.ch
To help understand the "area branch", first create a new procedural terrain. Open the terrain editor.
Make sure you have the Zero Edges option turned off and that the terrain mapping is set to Object Parameteric. Reset the function.
You should now have a completely flat terrain.
http://www.eonmusic.ch http://www.artmatica.ch
Open the function editor, which should be empty. Add a Lenght node to the Position Input and connect it to the altitude output. Activate the Function Node Preview from the top tool bar.
It will display what the Length Node actually does. It measures the distance and returns a value (In this case an altitude value, which corresponds to the distance, length or whatever you call it)
At the point of origin the value will be 0 and gradually increases with increasing distance to the origin.
You can see the result directly on the terrain. You should see a reversed cone.
http://www.eonmusic.ch http://www.artmatica.ch
Now for the Smooth Map Node: Add this node to the Length node. Allows you to smoothly remap those values. Make certain you still have the Function Node preview window open, so you can directly observe what happens when you change the parameters. Set the parameters like set them for the area branch 0/22/1/0 and you will see a smooth bump. This bump is what drives the blender ratio in our terrain function.
Again you can observe the effect directly on your terrain. There should be a smooth bump of the size of a terrain.
Hope this helps clarify things.
http://www.eonmusic.ch http://www.artmatica.ch
This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.
Hi! First, sorry for not being more active on the forum. I am really busy getting some cool Vue stuff ready.
I would like to discuss a interesting technique which permits you to seamlessly blend from a fractal node based to a heightfield based altitude within the same procedural terrain. This is achieved by defining an area at the center of the terrain that blends from fractal based to greyscale based altitude generation.
An example scene can be downloaded here. (28 MB, because it includes a high resolution heighfield terrain) The scene itself is kept very simple so its easier to see the principle.
The tutorial below discusses the function of the terrain and requires some basic understanding of the function editor.
The reason why I am posting a tutorial here and not elsewhere is simply because this way communication is easier in case you have questions.
Load the scene file (it might require Vue 7).
http://www.eonmusic.ch http://www.artmatica.ch