Procedural Terrain in Houdini 17.5

   2677   6   1
User Avatar
Member
30 posts
Joined: Feb. 2017
Online
I'm relatively new to Houdini, but not so new to 3D. That said, this would probably be a pretty easy problem for an intermediate user to solve. However, I've hit a bit of a roadblock with my knowledge at the moment.

For a current project, I needed to create a moonscape and I found what looked like a decent tutorial for creating procedural terrain by Andreas Vrhovsek on Pluralsight [app.pluralsight.com]. The only problem is this tutorial is 5 years old and a lot of the nodes have been updated or replaced by newer nodes that alter the workflow.

I figured out how to access legacy nodes via commands in the textport, but I ran into an issue in chapter 4 when using the softdots node to create moon craters. It appears the softdots node was simply changed and the S & T inputs were removed. I'm sure there's a good reason for this, but as far as I understand, these inputs allow for a vector to float node to control the x and z pos of the dots making them into nice circles:





Unfortunately, the only way I could figure out how to achieve a similar result in Houdini 17.5 was to create two softdots nodes and wire the different outputs of the vector to float into their respective UV inputs. However, this creates squarish dots that don't look at all like craters:





I'm sure there's a simple way around this, but unfortunately my limited Houdini knowledge is holding me back. I also imagine the newer methods for creating procedural terrain with the actual terrain nodes might be a better option for doing this and I'm totally down to try them out as well, I just figured it might be good for me to try and troubleshoot through some of the old school methods first. Although, all the troubleshooting is fairly time consuming and I didn't think that a 5 year old tutorial would be that vastly different.

Finally, I used the legacy for loop node in the surface displacement Attribute VOP because I couldn't figure out how to set up the new for loop node with the in and out blocks. I've attached a .hiplc file, and if anyone wants to take a look, I'd love some help optimizing both of these networks.

Thanks

Attachments:
1.PNG (1.6 MB)
2.PNG (1.2 MB)
3.PNG (230.3 KB)
4.PNG (512.6 KB)
Surface_Interaction_v001.hiplc (275.9 KB)

User Avatar
Member
248 posts
Joined: May 2017
Offline
not sure if that's what you are looking for. the overall look can be controlled by Noise parameters and Ramp tweaking.

Attachments:
Untitled.jpg (127.8 KB)

https://twitter.com/oossoonngg [twitter.com]
User Avatar
Member
248 posts
Joined: May 2017
Offline
personal additions: avoiding softdots would free you from a need to have UVs inbefore, and you could just operate using adding/subtracting noises. Unless that was your intention to have UVs ofc.


edit 2: you can use that geo in the Heightfield. Useful to understand both ways. You could project any arbitrary geo to heightfields if you wish, to add the erosion and what you want. Going about one thing in many ways might sound counter-intuitive and/or superfluous, but better understanding how you can operate your geo never hurts.
Edited by osong - Oct. 9, 2019 07:07:33
https://twitter.com/oossoonngg [twitter.com]
User Avatar
Member
30 posts
Joined: Feb. 2017
Online
Thanks a bunch Glitch! The image you posted doesn’t look much like craters, but perhaps that’s just cause you didn’t finish tweaking the settings.

What I don’t understand is shouldn’t a primitive Houdini grid automatically have UVs? And yes, I think the whole point of going about this procedurally is to avoid having to deal with UVs.

In Andreas’ tutorial he uses the softdots S & T parameters on the exact same primitive grid, although I’m not sure if they correspond to the UVs. They might be for the direction of the frequency. Either way, I couldn’t get anything to show up wiring different node setups to the frequency input on the new softdots node. The other inputs also didn't seem to be getting me what I wanted.

All that aside, I’m definitely gonna experiment with height fields next and the rest of Houdini’s terrain building tools. As you said, I think there’s value to understanding the different methods.

Do you have any thoughts on the new for loop setup for that other attribute VOP?
User Avatar
Member
248 posts
Joined: May 2017
Offline
BenjaminMarkus
What I don’t understand is shouldn’t a primitive Houdini grid automatically have UVs?
Nothing has anything unless specified. Houdini does not assume you need things unless you need them, which you just add on your own.

BenjaminMarkus
doesn’t look much like craters
ah i see, i didn't get what was your goal. just lower the intensity of the noise to a minimum to get a small distortion, should do the trick.

BenjaminMarkus
Do you have any thoughts on the new for loop setup for that other attribute VOP?
you have to specify this a bit more, i am not exactly sure what we are talking about.


here's a quick breakdown:

first VOP runs on Vertex to read UVs to make those soft spots work
then we promote Cd attribute from vertex to point (since it was created in vertex VOP, gotta convert it by hand)
finally, a VOP that would displace our points, which runs on points, we get the colour info and displace by it's value
Edited by osong - Oct. 10, 2019 06:26:02

Attachments:
vop1.jpg (142.7 KB)
vop2.jpg (77.2 KB)
vop3.jpg (46.3 KB)
vop4.jpg (99.6 KB)

https://twitter.com/oossoonngg [twitter.com]
User Avatar
Member
30 posts
Joined: Feb. 2017
Online
Wow you really went out of your way to explain that! Thanks a lot!

I should’ve written you back yesterday because I totally figured out what I was after using a variation of your node setup and I have some basic terrain built that’s looking pretty good. I’ll post the network today.

I probably should’ve known that Houdini doesn’t provide anything with anything, but I guess I’m just so used to working with other DCCs like C4D and Maya that I assumed a primitive would have UVs, but of course that’s what the UV node adds.

As far as the for loop question goes, you’d probably have to take a look in that hip file I sent for clarification as the setup was for the base terrain texture on a second attribute vop. I got it working with the legacy for loop node, but I was just curious how to update the network using the newer node with the start and end blocks.

The whole point of this tutorial was to procedurally build a moonscape and drive a rigged lunar rover HDA across it, so it interacted with the ground and emitted smoke and dust. I was hoping to take an astronaut I’d already rigged and animated in C4D and have him walk across the surface emitting similar particles from his steps.

Yesterday, after your feedback, I finally felt like I was getting into the rhythm of that tutorial, but unfortunately I believe the lunar rover asset that was supplied with the tut is too old and the rig no longer works even in Houdini 15, which I also installed to test it. The rover shows up sideways on the curve on the creation plane instead of on all four wheels on the surface, which according to the tutorial is a behavior built into the rig. The point is I wouldn’t even know where to begin to update the asset.

That said, I don’t necessarily need the rover to work as I’m essentially trying to replace it with an astronaut, but I was hoping that running through the steps would give some ideas. However, I’m not quite sure how to get my astronaut to follow the same curve and stay on the surface. I imagine I’ll probably have to send that geo into C4D and update his walk to match the ground and then go back into Houdini to add the FX.

If you have any thoughts on this pipeline they’d be much appreciated.

Thanks,
User Avatar
Member
248 posts
Joined: May 2017
Offline
I don't necessarily have much thoughts on pipeline or anything, since only DCC i use apart from Houdini is blender (just to work on some sculpted meshes and stuff). There are old~ish and cheap~ish tutorials on car rigs from 3dbuzz, could start there? It's not super easy mind you.
For an astronaut … look for crowd tutorials I guess.
Edited by osong - Oct. 13, 2019 10:32:55
https://twitter.com/oossoonngg [twitter.com]
  • Quick Links