Matching Heightfield maps and geometry

   689   10   2
User Avatar
Member
163 posts
Joined: Dec. 2008
Offline
Hi,

I m trying to find a propper workflow to import terrains into Unreal. When import my 16b fixed png (autoremapped 0/1) into unreal the height does not match the geo in Houdini. Further it would be good to know how i can export import fbx data without Houdini engine to match my landscape (Houdini terrain to UE Landscape).

Help is very much appreciated,

Best,
Lucas
User Avatar
Staff
222 posts
Joined: Sept. 2016
Offline
Hi,

The best and easiest way to get landscapes from Houdini is via the Houdini Engine plugin.
This way, you'll be sure that the created landscape size and position will match that of Houdini's heightfield, as all the positioning and scaling will be done by the plugin.

If you'd rather do it manually with images files and FBX, then you'll have to calculate the proper position/scale yourself, see this guide for example [wiki.unrealengine.com].

When matching the landscape and the exported geometry, you'll also have to take into account the fact that Heightfields have a centered origin, but landscapes dont (so you'll have to compensate that with an XY offset), and also offset the Z position of the created landscape, so that its “zero” height value matches Houdini's, or you'll end up with floating geometry.
User Avatar
Member
163 posts
Joined: Dec. 2008
Offline
Hi,

Many thanks for the info. Is there a tutorial or example file with some further workflow suggestions.(Houdini Terrain - H-Engine - UE) What parameters should get exposed in the hda. Tips for terrain resolution aso.

Cheers,
Lucas
User Avatar
Member
7 posts
Joined: March 2018
Offline
I'm stuck on this too.

It seems that if you use Houdini Engine to send the landscape over - its very difficult to use any other color maps, or erosion maps etc, that you have baked out as they come in at a different scale, and it is unclear how to match the scale up.


This would point to another solution:
https://www.sidefx.com/docs/unreal/_attributes.html#AttributesStandard [www.sidefx.com]

Suggesting that you can store data in uvs/Cd point attributes and have them passed over into unreal- which could solve the problem! However, I cannot find any information about how to access this dataon the unreal side of things.

Ready to give up.
Edited by sam_hains - July 11, 2018 10:11:38
User Avatar
Staff
222 posts
Joined: Sept. 2016
Offline
If you bring over the heightfield via HEngine, you shouldn't have to rely on baked out erosion maps as heightfield masks are automatically converted to heightfield layers.

You'll probably get better results by attaching that data to the HF itself by converting it to masks, as it will match the resulting landscape.

If you insist on bringing the geometry and maps separately, you have to make sure your HF matches one of the expected Unreal size for landscape (see HERE [www.sidefx.com] )

If your HF has a different size, the plugin will have to pad or resample the data so that it matches unreal's expectation.
User Avatar
Member
4 posts
Joined: Dec. 2013
Offline
dpernuit
If you'd rather do it manually with images files and FBX, then you'll have to calculate the proper position/scale yourself, see this guide for example .
thanks man! that's helped a lot
User Avatar
Member
3 posts
Joined: Feb. 2018
Offline
"Hi, The best and easiest way to get landscapes from Houdini is via the Houdini Engine plugin. This way, you'll be sure that the created landscape size and position will match that of Houdini's heightfield, as all the positioning and scaling will be done by the plugin."
heard this a lot but found no resource on how to do this or a similar workflow where i get an asset out of unreal into houdini without manual exporting work. Even in the plugin help there is no straight way that explains how to do inputs properly(which would probably help extremely). Or my English is not good enough to understand what to do. Either way i'm very frustrated.
User Avatar
Staff
222 posts
Joined: Sept. 2016
Offline
Hi,

The plugin docs has a whole section describing how to create asset inputs.
https://www.sidefx.com/docs/unreal/_inputs.html [www.sidefx.com]

But if you're really new to Houdini, I suggest you have a look at the Houdini Foundations book, it covers all the basic Houdini notions, and has a large part describing how to create Houdini Digital Assets, and bring them in UE4.
The last part of it describes exactly how to bring a Heightfield from Houdini to Unreal.

The pdf is a free download on our website:
https://www.sidefx.com/tutorials/houdini-foundations-book/ [www.sidefx.com]
User Avatar
Member
3 posts
Joined: Feb. 2018
Offline
dpernuit
Hi,

The plugin docs has a whole section describing how to create asset inputs.
https://www.sidefx.com/docs/unreal/_inputs.html [www.sidefx.com]

But if you're really new to Houdini, I suggest you have a look at the Houdini Foundations book, it covers all the basic Houdini notions, and has a large part describing how to create Houdini Digital Assets, and bring them in UE4.
The last part of it describes exactly how to bring a Heightfield from Houdini to Unreal.

The pdf is a free download on our website:
https://www.sidefx.com/tutorials/houdini-foundations-book/ [www.sidefx.com]

i have been through the foundations book and i am perfectly able to make a terrain and get it into unreal (in multiple different ways) the issue is the other way around.
I can manually export everything but the dimensions dont match up.
And everybody says that we should do it with the Houdini Engine plugin (seriously i read this thing on 5-6 separate occasions) but no one really tries to explain how its done.

Also as i explained i really don't get how it describes to do inputs. I really don't get it. Maybe it makes sense when you know what to do already. But as a beginner this help file doesn't tell me anything. A simple picture that shows the correct node network would help.

PS: I also got an input to somehow work but when i input the landscape and click “send it to houdini” an empty scene comes up with a bunch of nodes that throw errors.
Edited by NukklearHB - Aug. 14, 2018 08:12:32

Attachments:
fqzi1het.png (37.1 KB)
gh13bzvs.png (30.8 KB)
lt0lxk4l.png (16.7 KB)
wbub0n4x.png (21.1 KB)

User Avatar
Staff
222 posts
Joined: Sept. 2016
Offline
Hi

Sorry about that, I should probably mention that bug in the docs:
There is a currently a bug when saving the debug hip file, that causes the HF Merge and VolumeVisualization node to be disconnected.
It happens only in the debug hip file, in the internal unreal scene, those nodes are actually connected properly.

Seems to me like you got that input setup properly.

Here's how input should be created:

Assuming you want to make a very simple HDA, that just puts noise on a HF.
Your network would look like this:
Heightfield -> Heightfield_Noise.

To create a SOP input, select the HF Noise and create a subnetwork for it (the box icon).
If you dive inside the subnet, you'll see that the HF Noise node is connected to an input that was added when creating the subnet.
Those are the SOP inputs mentioned in the docs.
You can then create an HDA by right clicking on the subnet, and choosing Create Digital Asset.

When importing this HDA in Unreal, you should have an input in the details panel.

To create an object merge input, assuming you have the original setup (HF > HF_Noise)
Delete the HF node and replace it by an object_merge node.
Create the HDA on the geometry node.
In the parameters of the HDA, you can mark all the preexisting params as invisible.
Then drag the Object1 (objpath) parameter of the object merge in the parameter list, exposing it at the HDA level.

Save the HDA, and when importing that HDA in Unreal, you should also have an input in the details panel.

Let me know if you need more info on that.
Edited by dpernuit - Aug. 14, 2018 14:21:53
User Avatar
Member
3 posts
Joined: Feb. 2018
Offline
oh ok so knowing about the bug helps of course. Thank you for the answer i will try to go through this.
  • Quick Links