It turned HAPI covers all I need from the Houdini Engine, so I am using that exclusively in my project. HEU_SessionHAPI is also a convenient wrapper, though it was missing some methods, like saving geometry to file. Most other parts of the Houdini Unity Engine have hardcoded x-axis flips everywhere, so in the end, I can't use most of that. Some things I noticed that could be improved are:
1. HAPI passes a ref to a session structure everywhere. In C-Sharp, classes are reference types by default, so if you could use a class instead, it would be possible to pass a null session easily, as described in the HAPI documentation. This would be a HUGE improvement for any user of node based coding tools like Bolt, as connecting the session to every single node is making the graphs quite unreadable (I figure many Houdini users are fond of node-based workflows, and might want use node-based coding as well).
2. A Unity wrapper for HAPI would be nice. The wrapper could return strings instead of string handles, wipe away all ref arguments and replace these with proper objects, convert float arrays to Vector3 arrays etc. You have some Vector3 array helpers in other places, but these are mangling the x-axis, and can't be used. A clean pure API, that speaks in C-Sharp/Unity language, but doesn't do any extraneous things like mangling the coordinate system would be very useful.
3. The out of the box curve editing, terrains etc. are all nice for smart-props kind of things, and as a reference on how to use HAPI, though, you are never going to catch up to the need of every developer, or even most developers. I would give top priority to an easily accessible HAPI interface instead. With HAPI, it is already possibly to spawn trees or grass on terrains with full control, and you get full access to any attribute, instead of being limited to predefined attributes for selecting materials etc.
4. Split Geo by Group is normally the default behavior. I tried extending HEU_SessionHAPI to expose this flag, but could not get this to work. The expected behavior is that each of my groups would become one part in the geo, named after the group, is that right? When I set this flag, it appears no parts are created at all in the geo. I definitely want to split by group. Otherwise, I would have to instantiate group nodes, and cook each one individually, or iterate over each point and check their group. But either multiple cooking, or manual iteration over millions of points, would be quite slow, compared to Houdini doing the splitting for me. (Using packed primitives seem to achieve the split, but generates two parts per group, one packed primitive and one mesh, which seems a bit hacky. The part name becomes the geo name with a random number suffix, which is quite useless. With this method, there is no way to identify the parts, without digging into point attributes, which is also more messy than it should be.)
Found 31 posts.
Search results Show results as topic list.
Houdini Engine for Unity » Merging Inputs
- gyltefors
- 31 posts
- Offline
Houdini Engine for Unity » Merging Inputs
- gyltefors
- 31 posts
- Offline
Houdini Engine for Unity » Merging Inputs
- gyltefors
- 31 posts
- Offline
The Houdini application itself is very elegant and clever about giving the user full control, through things like VEX and VOP. I think that is what I am missing on the Unity side. A low level API that allows you to call e.g. addpoint() to add a point. If the API was similar to VEX, it would be very easy to learn. Both C# and VEX are C-like languages, so with the same naming, one could almost copy paste from VEX code. Then I just need to call addpoint(), addpointattrib() etc. when I generate my points in Unity.
(I think my workaround for now will be to write a geo file exporter, write the geometry to a temp file, and then load it in my HDA using a file cache node.)
(I think my workaround for now will be to write a geo file exporter, write the geometry to a temp file, and then load it in my HDA using a file cache node.)
Edited by gyltefors - Sept. 13, 2018 06:02:44
Houdini Engine for Unity » Merging Inputs
- gyltefors
- 31 posts
- Offline
Thank you for the explanation. The target HDA wouldn't know what the curve is (could be a road, a river, a zone if closed etc.) unless it is grouped and id:ed before the merge. Also, for point clouds, each point needs group and parameters. The points would go through the HDA, and be output again, possibly modified. A point could be e.g. an object in a game, that could e.g. be snapped to a terrain, and then, handed back to a instancer in the game. The instancer would need to know things like the id. I know the Houdini Engine can do instancing as well, but in the end, each game is unique, and will likely have to implement their own instancers. As a core feature, I think being able to pass in and pull out point clouds, curves etc. are most important, while out-of-the-box terrains with instancing etc. might be convenient for getting up and running quickly, but will become too limited eventually.
Edited by gyltefors - Sept. 12, 2018 12:11:45
Houdini Engine for Unity » Merging Inputs
- gyltefors
- 31 posts
- Offline
I am generating multiple curves in Unity, and need to merge them together, and input them into my HDA. Before merging, I also need to classify the curves into different groups, as well as assigning an id primitive attribute, to identify each curve. Is this possible with the current API v2? Or would I have to create a custom Y-merge HDA, with two inputs, group and id parameters, and concatenate a string of these to merge all curves together?
In similar manner, I will also need to generate a point cloud in Unity, assign point attributes and group, and pass these into an HDA input.
In similar manner, I will also need to generate a point cloud in Unity, assign point attributes and group, and pass these into an HDA input.
Edited by gyltefors - Sept. 12, 2018 06:36:18
Houdini Engine for Unity » HDA file references
- gyltefors
- 31 posts
- Offline
When building HDA assets, I build them to be usable from different projects, and naturally, store my HDAs outside of Unity's project folders. Loading and HDA from outside a project works fine, but sometimes, it seems like Houdini loses the reference to the correct HDA, and uses some obsolete cached version instead when cooking. In UE4, this problem never seems to occur. Also, the same HDAs are used both in Unity and UE4, so storing the HDAs in Unity project folders would be very awkward.
Houdini Engine for Unity » Position coordinates different in Unity and Houdini.
- gyltefors
- 31 posts
- Offline
Flipping X doesn't make any sense at all if you are working on things like terrains (converted to meshes, as native Unity terrain generation is still not usable). You would likely assume north is upwards in the Houdini top view. When importing into Unity, it ends up upside down, when using the Unity top view. The correct thing is to flip Z. The same problem occurs with the curve tool. It flips the X, so when used as input to my HDA, it does not match the coordinate system. Maybe for props etc., flipping the X would not cause many issues, but for world building, it really messes things up. Where can I change the Unity Engine v2 plugin to so that things are not rotated upside down in Unity? Also, rather than having to re-apply this patch each time I update the plugin, could you please make it configurable instead?
Edited by gyltefors - Sept. 10, 2018 06:53:40
Houdini Indie and Apprentice » Change license server name - Houdini Indie license issue
- gyltefors
- 31 posts
- Offline
Did anyone find a solution to this? I am in the same situation, and can't work on my project because of this issue!
Edited by gyltefors - Aug. 18, 2018 01:08:46
Technical Discussion » Heightfield scatter gives floating and sinked points
- gyltefors
- 31 posts
- Offline
Thanks, I guess it might be related to height fields being implemented as voxels, and each voxel has a thickness, causing the imprecision, or something like that. I'll use some workaround for now then, until the issue has been fixed.
Technical Discussion » Heightfield scatter gives floating and sinked points
- gyltefors
- 31 posts
- Offline
Houdini Indie and Apprentice » how to change zoom ,rotate ,pan mouse buttons ?
- gyltefors
- 31 posts
- Offline
arctor
if you're just learning Houdini I would really recommend not trying to make Houdini behave the same as another app you're more familiar with…
This quote from a Houdini employee is very alerting. Not a very “user centric” attitude, is it? There are hundreds of post from users all complaining that they can't use the Houdini navigation. “A Lamborghini without a steering wheel”. Exactly! This issue has existed for years. Why not just fix the issue in Houdini and be done with it? It is 2017, and many computers ship with a mouse that have no MMB. Many users are using tablets with only two buttons, that have to be mapped to panning, RMB, radial menus etc. Hardcoding navigation to MMB is ridiculous!
-
- Quick Links