Jump to content

Procedural Terrains


thoma.v

Recommended Posts

Hi odforce community!

I have heard about the awesome capabilities of Houdini for procedural geometry generation, particularly the creation of terrains. That´s a deep interest of mine and so i bought some courses at cmivfx to learn this great piece of sofware. I was impressed by the way how Houdini works and what could be done with a couple of nodes and expressions. When i did the tutorials about fractals i began to ask myself if i could go one step further and generate something like this.

That´s the point where i miserably failed!!!

My question for the experienced users is now this:

Would it be possible to generate such detailed terrains and landscapes?

I would be deeply thankful for all opinions and suggestions!

Link to comment
Share on other sites

When you said you failed miserably, could you be more specific about where did you fail exactly? Maybe we can help with that...

Feature-wise I don´t see why you couldn´t create terrains as detailed as you might want...

Edited by Netvudu
Link to comment
Share on other sites

When you said you failed miserably, could you be more specific

He connects the Mountain SOP to another node and then....

Smoke and fire emits from the top of the computer case. Followed by a large explosion and pieces of motherboard parts fly across the room, while leaving a stunned look on his face which is covered with black soot as he wonders what just happen.

Link to comment
Share on other sites

Yes, you can do this in Houdini. If you want to create convincing procedural landscapes you need a good understanding of a) landscapes, b ) noise functions, and c) shader writing.

There is nothing that will prevent you from such results in principle but there is no ready made solution in H out there, as far as I know. In my opinion though it would be an excellent thing to get into because it touches so many important fx areas.

Edited by Macha
  • Like 1
Link to comment
Share on other sites

He connects the Mountain SOP to another node and then....

Smoke and fire emits from the top of the computer case. Followed by a large explosion and pieces of motherboard parts fly across the room, while leaving a stunned look on his face which is covered with black soot as he wonders what just happen.

It´s not that dramatic and "miserably failed" was slightly overdone. :)

To be honest, i am fairly satisfied with the result i have so far but these erosion-like patterns are kinda mystery for me. I have no clue how they could be generated in Houdini.

Cheers,

Thoma

Link to comment
Share on other sites

Over the weekend I have done further tests and I ended up by a general setup like this:

1. General shape and form: couple of noise functions inside a Vop-Sop for overall shape. Displacements for higher details

2. Height: it´s easy, I use $BBY in an Attribcreate-Sop and send it to Mantra for material-adjustments.

3. Curvature: Measure-Sop.

4. Slope: almost done! I still have some problems but I will get it.

5. Erosion and flow-patterns: I thought I could use a Pop-Network followed by a Trail-Sop but it seems that I can´t get the the right look with this setup and it´s not fully procedural as well. Ideally I would like to have some lines or points with attributes that I could use to drive material parameters in the shader.

That´s what i have so far. What do you guys think? Should I keep going on that route or is that all utter bollocks.

Crits and comments are welcome (particurarly for point 4 and 5).

Cheers!

Link to comment
Share on other sites

another approach is to use real maps.

with a greyscale map to displace (depth map / elevation map / height map / relief map... etc)

then use the color version of said map as the diffuse...

all mapped on the a flat plane.

or you can use the greyscale map to actually deform the plane a bit as done in the cmivfx lesson you ref.

or you can use a combo. use the greyscale map to deform the geometry, a little, then also use it in the displacement channel

to get the fine details at render.

check this out.

http://www.photoshoproadmap.com/Photoshop-blog/2006/07/17/rendering-a-map-using-relief-shading-technique-in-photoshop/

Edited by moondeer
Link to comment
Share on other sites

Over the weekend I have done further tests and I ended up by a general setup like this:

1. General shape and form: couple of noise functions inside a Vop-Sop for overall shape. Displacements for higher details

2. Height: it´s easy, I use $BBY in an Attribcreate-Sop and send it to Mantra for material-adjustments.

3. Curvature: Measure-Sop.

4. Slope: almost done! I still have some problems but I will get it.

5. Erosion and flow-patterns: I thought I could use a Pop-Network followed by a Trail-Sop but it seems that I can´t get the the right look with this setup and it´s not fully procedural as well. Ideally I would like to have some lines or points with attributes that I could use to drive material parameters in the shader.

That´s what i have so far. What do you guys think? Should I keep going on that route or is that all utter bollocks.

Crits and comments are welcome (particurarly for point 4 and 5).

Cheers!

attached is one way.

petz

Link to comment
Share on other sites

Hey Petz, nice one! Brings me a major step closer to my ultimate goal. :)

BUUUT another question arises. Maybe it a dump one, though, I´ll ask:

On the sticky note in the file you mention the HDK. I did a search and found out that HDK is the Houdini-equivalent of Maya`s SDK. Is that correct? Would it be faster compared to the VEX-operater, and if yes, how much faster would it be?

I have some experience with the Maya API and hopefully I can make use of this knowledge in Houdini. Are there any similarities?

Hints, suggestions and examples are greatly appreciated. :ph34r:

Cheers.

Link to comment
Share on other sites

attached is one way.

petz

Wow! Petz Just amazing.

Vector calculated under "Gradient of height" is really cool.

Would you be able to shine some light on how the measure sop calculating scalar value for curvature. Or how would you go about finding in a single slope value for given point on surface ?

-Cheers

p.s. - Sorry thoma for interrupting the thread but i am also interested in learning more on the subject. You might already know about this book http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486/ref=dp_ob_title_bk

I just ordered mine couple of days ago. :)

Link to comment
Share on other sites

@petz: pretty neat as usual!

There's also a FlowFieldSOP in the proto_install tools:

This custom SOP will move a primitive's vertices to follow the direction

of a vector field.

Not even sure if this is related. :ph34r:

  • Like 1
Link to comment
Share on other sites

Hey Petz, nice one! Brings me a major step closer to my ultimate goal. :)

BUUUT another question arises. Maybe it a dump one, though, I´ll ask:

On the sticky note in the file you mention the HDK. I did a search and found out that HDK is the Houdini-equivalent of Maya`s SDK. Is that correct? Would it be faster compared to the VEX-operater, and if yes, how much faster would it be?

I have some experience with the Maya API and hopefully I can make use of this knowledge in Houdini. Are there any similarities?

Hints, suggestions and examples are greatly appreciated. :ph34r:

Cheers.

the hdk isn´t faster in general, its rather quite the opposite since vex is fully multithreaded and you don´t have to care about the threading by yourself. but for this particular example it should be faster.

maya api and hdk are both cpp libraries afaik and so they are basically similar to some degree.

probably the fastest solution is what rdg said! you just need to install the flowfield-sop before you can use it.

@vectorblur

actually its not really the gradient since i didn´t calculate any derivatives. its just named like that in the comments.

hth.

petz

Edited by petz
Link to comment
Share on other sites

p.s. - Sorry thoma for interrupting the thread but i am also interested in learning more on the subject. You might already know about this book http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486/ref=dp_ob_title_bk

I just ordered mine couple of days ago. :)

Ha, ha, I know the book. Honestly, this book is the reason for my huge "Procedural Landscape, NPR-Rendering and Perlin-Noise" passion. ;)

Link to comment
Share on other sites

@petz: pretty neat as usual!

There's also a FlowFieldSOP in the proto_install tools:

Not even sure if this is related. :ph34r:

Hey Rdg, big thanks for the hint but how do I use this magic Sop? I did not find it in the help. Neither I could figure out how to install it.

Cheers!

Thoma.

Link to comment
Share on other sites

the hdk isn´t faster in general, its rather quite the opposite since vex is fully multithreaded and you don´t have to care about the threading by yourself. but for this particular example it should be faster.

maya api and hdk are both cpp libraries afaik and so they are basically similar to some degree.

probably the fastest solution is what rdg said! you just need to install the flowfield-sop before you can use it.

@vectorblur

actually its not really the gradient since i didn´t calculate any derivatives. its just named like that in the comments.

hth.

petz

Hey Petz!

If I understand you correctly then Houdini´s HDK is not multithreaded but VEX is? Why would HDK be faster then and why only in this example?

Would you mind explaining the difference?

Cheers

Link to comment
Share on other sites

the difference is quite simple. with vex you can´t create geometry.

that means you´ll need to generate all points in the first place and then use vex or vops to move them to the final position. since vex code is highly parallelized (simd) and the code runs on every point you are doing a lot of unnecessarily work. at least for generating the flowlines as in the file.

in the attached file you´ll find a quick example for generating the same flowlines in various kinds - vex as done before, hdk using inlinecpp and the flowfield-sop.

the hdk code is sparcely commented and cobbled together very roughly, so don´t take it as a reference.

also the flowfield sop which was mentioned by rdg is used.

IMPORTANT:

the flowfield-sop needs to be installed and for the hdk you need a working compiler.

hth.

petz

mountain_hdk1.hipnc

  • Like 2
Link to comment
Share on other sites

Thanks a million, Dude! Thats way more than expected (and hoped for)! :rolleyes:

I hardly dare to ask but anytime I try to run the HDK-Sop I get some weird command prompt windows popping up and the node indicates an error. I have installed Visual C Express but are there other important things I have to consider?

Cheers

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...