H18.0.566 / Unity 2019.4.0 HeightField Terrain won't cook ?

   1265   10   2
User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
Hi.

I've followed the tutorial on PDG by Kenny Lammers [www.sidefx.com] and i can't get the terrain to cook correctly.


Even if it cook fine in Houdini, it didn't in Unity 2019.4.0
Using H 18.0.566 and HEngine 3.3.14.

Any info on what's going on here ?

Also the Unity PDG Even Message field isn't giving any info on what is broken here. Really not helpful even it is supposed to give error feedback.

I've double checked the Path environment variable and everything looks fine.
The TOP is loading, but right after it's in the scene i got those errors.
The PDG Asset link fail to cook the last node that is as simple as it should.
I've also created a Unity Terrain material in order to feed it by default on terrain, but doesn't solve the issue.
Section 1 on Box Variation SOP HDA is working by the way.


hope you can help me.
best regards, Smoluck

Attachments:
TerrainFailtoCook.jpg (51.6 KB)
HDA_SimpleHF.jpg (42.6 KB)

User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
i was making another type of terrain, regarding the HDA done in the tutorial. So it's hard to say.

what i'm sure about is that my HDA cook well in Houdini
i'm guessing i need to add something to the HF node before the end, like material attribute or something
i can share the main crop terrain HDA, but as you see it's not that complex.
i got the box variation hda to work
any sop hda works.
it's just related to terrain hda
even if i try to load the resulting bgeo from this HF Crop node, i can't see it. So i think it's related to material stuff . Unity can't render it basicly



Tested the files from the tutorial (section 3) in an empty Unity 2019.4.0 HDRP Project
and i can't manage to cook correctly the ip_level_Creation_TOP via the PDG Link.
At least this time i can read info in the PDG Event Messages.


HAPI_PDG_EVENT_COOK_WARNING - project_heightfield: Empty input file attribute when evaluating '/obj/ip_level_creation_top1/topnet1/project_heightfield/customfile2' with work item 'project_heightfield0'
User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
Hi again.

Ok so i investigate a bit more in this topic.

I decided to create a New Unity 2019.4.10 project in (HD Render Pipeline mode).

Then once the Project was ready, i've created the unity_houdini.env file

Write in it HEU_ENVPATH_JOB:/HOU to point at my Houdini project.

Then Imported the Houdini Engine package from 18.0.566 installation directory.
HoudiniEngineUnity.unitypackage

Once the package installed i've run the top menu –> HoudiniEngine –> Session –> Create –> Pipe Session

Then opened the HoudiniEngine –> Plugin Settings, to check the Environment variable to get loaded: unity_houdini.env

Finally i' ve tried to drag and drop the example HDA (TerrainGenerator.hda) included in HoudiniEngine, from Assets\Plugins\HoudiniEngineUnity\HDAs

But from here i can't see the output of it…. it was only visible if i convert it to Mesh via the parameter in HDA (with the missing pink material error).

so what's wrong here ?
Edited by smoluck - Sept. 10, 2020 22:31:47
User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
Hi.

In the same unity Project i tried to load my Terrain TOP PDG,
but i can't get those HeighField visible as terrain in Unity , event if it cook well in unity as well as in Houdini….

The strange thing is that i have the cooked Geo file in the Working Directory as expected. but they seems to be not supported in Unity.
Even if they are about 60 Mb each…

WorkingDirectory/geo/HDAProcess_HF.HDAProcess_HF0.0.bgeo.sc


i really need some support on this.

please, help me.
Edited by smoluck - Sept. 14, 2020 02:00:20

Attachments:
HF_Cooked_NotVisible.jpg (129.7 KB)

User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
now i don't have the terrain anymore but loads of error. one time on 4 i have the terrains.
Bgeo files are there but Unity can't interpret them as Terrains.



Expected HAPI_ATTROWNER_PRIM attribute owner for attribute unity_hf_terrainlayer_file but got HAPI_ATTROWNER_VERTEX!
UnityEngine.Debug:LogWarningFormat(String, Object[])
HoudiniEngineUnity.HEU_GeneralUtility:GetAttributeStringValueSingle(HEU_SessionBase, Int32, Int32, String, HAPI_AttributeOwner) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Utility/HEU_GeneralUtility.cs:1370)
HoudiniEngineUnity.HEU_ThreadedTaskLoadGeo:GenerateTerrainBuffers(HEU_SessionBase, Int32, List`1, List`1, List`1&) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Tasks/HEU_ThreadedTaskLoadGeo.cs:714)
HoudiniEngineUnity.HEU_ThreadedTaskLoadGeo:LoadNodeBuffer(HEU_SessionBase, Int32, HEU_LoadObject) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Tasks/HEU_ThreadedTaskLoadGeo.cs:317)
HoudiniEngineUnity.HEU_ThreadedTaskLoadGeo:LoadObjectBuffers(HEU_SessionBase, HAPI_ObjectInfo&) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Tasks/HEU_ThreadedTaskLoadGeo.cs:268)
HoudiniEngineUnity.HEU_ThreadedTaskLoadGeo:DoWork() (at Assets/Plugins/HoudiniEngineUnity/Scripts/Tasks/HEU_ThreadedTaskLoadGeo.cs:200)
HoudiniEngineUnity.HEU_ThreadedTask:Run() (at Assets/Plugins/HoudiniEngineUnity/Scripts/Tasks/HEU_ThreadedTask.cs:178)
System.Threading.ThreadHelper:ThreadStart()

…..
User Avatar
Member
11 posts
Joined: June 2019
Offline
Not being able to see the terrains in Unity could be that they dont have a material applied to them? and are therefore transparent?
User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
Alex Amos
Not being able to see the terrains in Unity could be that they don't have a material applied to them? and are therefore transparent?

Will get a look. But i'm sure i've set the Default terrain material via the Houdini Engine preferences.

btw. thanks for giving guide line.
Edited by smoluck - Sept. 21, 2020 04:18:33
User Avatar
Member
7 posts
Joined: April 2019
Offline
臭鼬
Alex Amos
Not being able to see the terrains in Unity could be that they don't have a material applied to them? and are therefore transparent?

Will get a look. But i'm sure i've set the Default terrain material via the Houdini Engine preferences.

btw. thanks for giving guide line.
The same problem haunts me:/
User Avatar
Member
15 posts
Joined: April 2020
Offline
Still occurring. I've submitted a bug report but didn't get a confirmation so am posting here for future reference.

Info
Unity: 2019.4.11f1

Plugin was built with:
Houdini: 18.5.351
Houdini Engine: 3.5.0

Current session is using:
Houdini: 18.5.351
Houdini Engine: 3.5.0

Houdini binaries: /Applications/Houdini/Houdini18.5.351/Frameworks/Houdini.framework/Versions/Current/Resources/bin
HEU: 2

License acquired: Houdini Engine Indie

#### Steps to reproduce

Create an HDA containing a heightfield in Houdini.
1. Heightfield. Change Size to 513,513.
2. Heightfield Noise. Use defaults.
3. Heightfield Copy Layer. Set Destination=“ground”.
4. Attribute Create. Set Group=“@name=height”, Name=“unity_material”, Class=Primitive, Type=String, String=“Assets/Materials/TerrainMaterial.mat”.
5. Attribute Create. Set Group=“@name=ground”, Name=“unity_hf_terrainlayer_file”, Class=Primitive, Type=String, String=“Assets/TerrainLayers/RockLayer.terrainlayer”.
6. Null. Set Display/Render.
7. Create HDA “simple_terrain”.
8. Load in Unity after importing the Houdini Engine unity package and creating/adding the expected files at the correct paths.

#### Actual vs expected behavior
Actual: Terrain Layer assigns a Terrain Layer “Assets/HoudiniEngineAssetCache/Working/simple_terrain/OUT_all/Terrain/Tile0/ground.terrainlayer” with Diffuse channel “Assets/Plugins/HoudiniEngineUnity/Resources/Textures/heu_terrain_default_splat.png”.
Expected: Specified Terrain Layer “Assets/TerrainLayers/RockLayer.terrainlayer” is used for the “ground” layer. Note: Reassigning the Diffuse channel to another texture does nothing.

Additional warning in Unity

Expected HAPI_ATTROWNER_PRIM attribute owner for attribute unity_hf_terrainlayer_file but got HAPI_ATTROWNER_VERTEX!
… (see attached terrainlayer-unity-warning.txt)
Edited by quickytools - Oct. 29, 2020 12:14:59

Attachments:
houdini-hf-setup.png (524.5 KB)
unity-hf-import-to-terrain.png (288.5 KB)
terrainlayer-unity-warning.txt (2.3 KB)
Assets.zip (1.0 MB)

User Avatar
Member
15 posts
Joined: April 2020
Offline
Installed houdini-py3-18.5.443-macosx_x86_64_clang10.0_10.14.dmg today and this issue is fixed (likely previously). Terrains from HDA with heightfields have terrain layers configured correctly if set with the unity_hf_terrainlayer_fileattribute. Don't forget to delete the previous HoudiniEngine plugin and import the newest one.
User Avatar
Member
13 posts
Joined: Feb. 2017
Offline
Thanks for the report Quickytools.

I'll give it a go again.
  • Quick Links