Hi all,
I'm writing a custom importer for Houdini to be able to load .igmesh files Houdini. However Houdini throws an error “Unable to read file Cinput.igmesh”.
So far I've been registering the importer in geoio.json and it's properly recognized by Houdini. When I use a file node and select an .igmesh file my importer .exe is invoked correctly with “Cinput.igmesh” and “stdout.geo” as arguments (I'm writing out a log file so I know what's going on).
For debug purposes I'm not parsing the input geometry, instead the .geo geometry I'm creating is always a simple cube. I can load the generated cube to Houdini, so the .geo file that I generate is valid.
So most probably Houdini does not find the file I'm generating, does that make sense??
My importer stores the output geometry in the current working directory - I compared this behaviour to the gwavefront.exe importer and they do exactly the same in terms of output directory and file names…
Did anyone here already write an importer?
Found 10 posts.
Search results Show results as topic list.
Technical Discussion » Custom importer issues
- Daniel2203
- 10 posts
- Offline
Houdini Engine API » How to access multiple asset output in Engine 3.0
- Daniel2203
- 10 posts
- Offline
Hi dpernuit,
thanks a lot for your reply. Here are three images of my file (the .hip file has been generated by the engine):
- one showing the Object level with my two input objects and the obj containing the asset.
- another image shows the insinde of the asset obj node that merges the two input nodes and pipes them into the asset node itself.
- the last images shows the out nodes inside my asset
As you can see my asset node has two inputs and two outputs, I would now like to access specifically one of these outputs without knowing what's happening within the asset.
I managed to read out the asset nodes geometry, which is basically what you would see in Houdini if you activate the node, in other words the node within the Asset that has the Display flag set.
Your method of using HAPI_ComposeChildNodeList() with HAPI_NODEFLAGS_TEMPLATED works in the sense that I get references to the two template nodes. But this is not really save, since from having references to these nodes I don't know which one is linkes to output 1 and which one stands for output 2. I can filter these nodes by their names, but since these nodes live inside my asset and can potentially change in a new version that would be a very bad style.
Isn't there a way of saying “here's a node ID (of my asset), give me the geo behind output #2” ?
Imagine what you would do if you were working in the Houdini GUI: in order to see the second output, you would probably create a NULL node, set the Display flag here and attach it to output 2. I could do the same in the engine and then just read out whatever geo i have on this NULL node - BUT I can't seem to be able to connect a node to a certain output, the function only lets me decide to which input I want to connect…. see my problem?
thanks a lot for your reply. Here are three images of my file (the .hip file has been generated by the engine):
- one showing the Object level with my two input objects and the obj containing the asset.
- another image shows the insinde of the asset obj node that merges the two input nodes and pipes them into the asset node itself.
- the last images shows the out nodes inside my asset
As you can see my asset node has two inputs and two outputs, I would now like to access specifically one of these outputs without knowing what's happening within the asset.
I managed to read out the asset nodes geometry, which is basically what you would see in Houdini if you activate the node, in other words the node within the Asset that has the Display flag set.
Your method of using HAPI_ComposeChildNodeList() with HAPI_NODEFLAGS_TEMPLATED works in the sense that I get references to the two template nodes. But this is not really save, since from having references to these nodes I don't know which one is linkes to output 1 and which one stands for output 2. I can filter these nodes by their names, but since these nodes live inside my asset and can potentially change in a new version that would be a very bad style.
Isn't there a way of saying “here's a node ID (of my asset), give me the geo behind output #2” ?
Imagine what you would do if you were working in the Houdini GUI: in order to see the second output, you would probably create a NULL node, set the Display flag here and attach it to output 2. I could do the same in the engine and then just read out whatever geo i have on this NULL node - BUT I can't seem to be able to connect a node to a certain output, the function only lets me decide to which input I want to connect…. see my problem?
Houdini Engine API » License tiers / tainting - how does it work?
- Daniel2203
- 10 posts
- Offline
Hi guys,
I read about tainting in the licensing chapter of the engine documentation, like you cannot instantiate / use an asset that has been created under a lower tier license than the engine which is trying to load it.
From my understanding we have
- non-commercial license (Apprentice, .hdanc)
- limited-commercial license (Indie, .hdalc)
- commercial license (.hda)
Then again on the licensing page there's a list of licenses, are these the actual tiers that ethey refer to?
- Houdini Engine
- Houdini
- Houdini FX
- Houdini Engine Indie
- Houdini Indie
So basically my question is, if engine and interactive licenses are always different licensing tiers.
The background behind the question is that I don't manage to load an asset that has been created under Indie license (interactive) even though I have an Indie engine license. The weird thing is that it throws an undocumented error code (HAPI_RESULT_DISALLOWED_HENGINEINDIE_W_3PARTY_PLUGIN), so I need to sort out first if what I'm trying to do should work at all in theory.
Any help appreciated, thanks
I read about tainting in the licensing chapter of the engine documentation, like you cannot instantiate / use an asset that has been created under a lower tier license than the engine which is trying to load it.
From my understanding we have
- non-commercial license (Apprentice, .hdanc)
- limited-commercial license (Indie, .hdalc)
- commercial license (.hda)
Then again on the licensing page there's a list of licenses, are these the actual tiers that ethey refer to?
- Houdini Engine
- Houdini
- Houdini FX
- Houdini Engine Indie
- Houdini Indie
So basically my question is, if engine and interactive licenses are always different licensing tiers.
The background behind the question is that I don't manage to load an asset that has been created under Indie license (interactive) even though I have an Indie engine license. The weird thing is that it throws an undocumented error code (HAPI_RESULT_DISALLOWED_HENGINEINDIE_W_3PARTY_PLUGIN), so I need to sort out first if what I'm trying to do should work at all in theory.
Any help appreciated, thanks
Houdini Engine API » How to access multiple asset output in Engine 3.0
- Daniel2203
- 10 posts
- Offline
Hi everybody,
what is the common way in C++ to access multiple outputs of an asset that has been loaded into the houdini engine?
I created an asset that has 8 outputs with different geometries, these exists as OUT-nodes within the asset that are all marked as template. This was the way to do in Engine 2.0, now it seems that things have changed… in the end I need to save each output as an .obj file.
This is what I found in the documentation but the object list is zero. Node-id refers to the asset node (which as multiple outputs) that sits below a geo-node in the network.
I also found different approaches by accessing child nodes, this way I can filter the child nodes down to the 8 outputs (using HAPI_NODEFLAGS_TEMPLATED) but I don't know how to get a geometry I can save from here.
Also I tried to connect Null-nodes to the outputs, here I found that HAPI_ConnectNodeInput doesn't even provide a way to select a specific output, it's like multiple outputs have disappeared in Engine 3.0, if so what's the new way?
Any help is appreciated
what is the common way in C++ to access multiple outputs of an asset that has been loaded into the houdini engine?
I created an asset that has 8 outputs with different geometries, these exists as OUT-nodes within the asset that are all marked as template. This was the way to do in Engine 2.0, now it seems that things have changed… in the end I need to save each output as an .obj file.
This is what I found in the documentation but the object list is zero. Node-id refers to the asset node (which as multiple outputs) that sits below a geo-node in the network.
int object_count; HAPI_ComposeObjectList(NULL, node_id, nullptr, &object_count); std::vector<HAPI_ObjectInfo> object_infos(object_count); HAPI_GetComposedObjectList(NULL, node_id, object_infos.data(), 0, object_count);
I also found different approaches by accessing child nodes, this way I can filter the child nodes down to the 8 outputs (using HAPI_NODEFLAGS_TEMPLATED) but I don't know how to get a geometry I can save from here.
Also I tried to connect Null-nodes to the outputs, here I found that HAPI_ConnectNodeInput doesn't even provide a way to select a specific output, it's like multiple outputs have disappeared in Engine 3.0, if so what's the new way?
Any help is appreciated
Technical Discussion » Failed to use Indie Assets within Indie Engine 3.0
- Daniel2203
- 10 posts
- Offline
Hi everybody,
already posted this one in the Indie / Apprentice board, but maybe that was the wrong place:
I just switched from Houdini Engine 2.0 to 3.0 and got a licensing problem. I didn't have this problem before, so either there was a change between 2.0 and 3.0 or I made a mistake in the transition:
When I try to instantiate an asset with HAPI_LoadAssetLibraryFromFile() I receive an Error HAPI_Result::HAPI_RESULT_DISALLOWED_HENGINEINDIE_W_3PARTY_PLUGIN. The error message says ‘Houdini Engine Indie license found but it can only be used with approved Houdini Engine plugins’.
I'm using…
- Houdini Engine 3.0.60 that came with Houdini 16.0.671
- Houdini Engine Indie 16.0 license
- The asset was created under interactive Indie license with version 15.5
In the licensing descriptions I read about ‘tainting’, is this already the case when using the Engine Indie to load an asset from an interactive Indie license? Or is it an issue to load 15.5 assets in 16.0? Or do I need to approve an asset somehow before using it in the engine?
Any help appreciated, thanks
already posted this one in the Indie / Apprentice board, but maybe that was the wrong place:
I just switched from Houdini Engine 2.0 to 3.0 and got a licensing problem. I didn't have this problem before, so either there was a change between 2.0 and 3.0 or I made a mistake in the transition:
When I try to instantiate an asset with HAPI_LoadAssetLibraryFromFile() I receive an Error HAPI_Result::HAPI_RESULT_DISALLOWED_HENGINEINDIE_W_3PARTY_PLUGIN. The error message says ‘Houdini Engine Indie license found but it can only be used with approved Houdini Engine plugins’.
I'm using…
- Houdini Engine 3.0.60 that came with Houdini 16.0.671
- Houdini Engine Indie 16.0 license
- The asset was created under interactive Indie license with version 15.5
In the licensing descriptions I read about ‘tainting’, is this already the case when using the Engine Indie to load an asset from an interactive Indie license? Or is it an issue to load 15.5 assets in 16.0? Or do I need to approve an asset somehow before using it in the engine?
Any help appreciated, thanks
Houdini Indie and Apprentice » Houdini Engine 3.0 fails to load '3rd party assets'
- Daniel2203
- 10 posts
- Offline
…no ideas?
Does someone know how the license tiers regarding tainting are defined? From my understanding it's non-commercial >> limited-commercial (Indie) >> commercial, no matter if it's interactive or engine - is that correct?
Does someone know how the license tiers regarding tainting are defined? From my understanding it's non-commercial >> limited-commercial (Indie) >> commercial, no matter if it's interactive or engine - is that correct?
Houdini Indie and Apprentice » Fluid Problem! not filling object
- Daniel2203
- 10 posts
- Offline
Can't open your file right now, but some things to check in the AutoDopNetwork:
Fliptank > Properties: Check ‘Closed boundaries’, they should all be checked except +Y where your glass opening points to.
Flipsolver > Particle Motion > Behaviour: uncheck ‘Kill outside volume limits’
Flipxolver > Volume Motion > Volume Limits: use ‘Visualize limits’ to double-check your fluid volume.
Fliptank > Properties: Check ‘Closed boundaries’, they should all be checked except +Y where your glass opening points to.
Flipsolver > Particle Motion > Behaviour: uncheck ‘Kill outside volume limits’
Flipxolver > Volume Motion > Volume Limits: use ‘Visualize limits’ to double-check your fluid volume.
Houdini Indie and Apprentice » vex question
- Daniel2203
- 10 posts
- Offline
Hi, I haven't seen the tutorial but from the Code it seems she's looking up a different point each time depending on @primnum.
pts is not always looking at the first point of the mesh, instead it looks at the first entry in the pts array created one line above that contains the points of the current primitive (@primnum). Probably this code is contained in a wrangle-SOP, what these do is to iterate through an entity (primitives in this case) and execute the code for each primitive / point / whatever. So pts contains different points each time the code is executed, thus iterating through the whole mesh.
The code itself if you would execute it only once does indeed look at a single point only.
pts is not always looking at the first point of the mesh, instead it looks at the first entry in the pts array created one line above that contains the points of the current primitive (@primnum). Probably this code is contained in a wrangle-SOP, what these do is to iterate through an entity (primitives in this case) and execute the code for each primitive / point / whatever. So pts contains different points each time the code is executed, thus iterating through the whole mesh.
The code itself if you would execute it only once does indeed look at a single point only.
Houdini Indie and Apprentice » Houdini Engine 3.0 fails to load '3rd party assets'
- Daniel2203
- 10 posts
- Offline
Hi everybody,
I just switched from Houdini Engine 2.0 to 3.0 and got a licensing problem. I didn't have this problem before, so either there was a change between 2.0 and 3.0 or I made a mistake in the transition:
When I try to instantiate an asset with HAPI_LoadAssetLibraryFromFile() I receive an Error HAPI_Result::HAPI_RESULT_DISALLOWED_HENGINEINDIE_W_3PARTY_PLUGIN. The error message says ‘Houdini Engine Indie license found but it can only be used with approved Houdini Engine plugins’.
I'm using…
- Houdini Engine 3.0.60 that came with Houdini 16.0.671
- Houdini Engine Indie 16.0 license
- The asset was created under interactive Indie license with version 15.5
In the licensing descriptions I read about ‘tainting’, is this already the case when using the Engine Indie to load an asset from an interactive Indie license? Or is it an issue to load 15.5 assets in 16.0? Or do I need to approve an asset somehow before using it in the engine?
Any help appreciated, thanks
I just switched from Houdini Engine 2.0 to 3.0 and got a licensing problem. I didn't have this problem before, so either there was a change between 2.0 and 3.0 or I made a mistake in the transition:
When I try to instantiate an asset with HAPI_LoadAssetLibraryFromFile() I receive an Error HAPI_Result::HAPI_RESULT_DISALLOWED_HENGINEINDIE_W_3PARTY_PLUGIN. The error message says ‘Houdini Engine Indie license found but it can only be used with approved Houdini Engine plugins’.
I'm using…
- Houdini Engine 3.0.60 that came with Houdini 16.0.671
- Houdini Engine Indie 16.0 license
- The asset was created under interactive Indie license with version 15.5
In the licensing descriptions I read about ‘tainting’, is this already the case when using the Engine Indie to load an asset from an interactive Indie license? Or is it an issue to load 15.5 assets in 16.0? Or do I need to approve an asset somehow before using it in the engine?
Any help appreciated, thanks
Technical Discussion » Handle bottom side of FLIP sims (beach scene)
- Daniel2203
- 10 posts
- Offline
Hey everybody,
my goal is to create a FLIP simulation of ocean waves on a beach. I tweaked the default beach tank setup which works pretty well. What confuses me is the bottom side of the FLIP fluid, here's what's happening using the default approach that I find everywhere:
- the fluid mesher creates a mesh around the FLIP simulation. The result is a mesh that is pretty bumpy on the bottom side or at least never follows exactly the shape of the ocean bottom (unless you increase the resolution ridiculously high I guess). In the rendering I can see ‘bubble’ like shapes through the transparent ocean which result from the refraction between the bottom side of the mesh and the actual ocean bottom geometry. I solved this by deleting all of the mesh except the real upper surface, but I'm surprised that keeping the complete mesh seems to be the standard way…
- the Whitewater Source generates source particles potentially everywhere within the FLIP fluid. Since particles collide with the ocean bottom and accelerate, a lot of particles are generated near the ground. Since these particles are near the mesh surface (not really the ocean surface since it's at the bottom of the mesh) they are treated as foam from what I see (bubbles are deactivated). Moreover these particles are created in big clumps that move through the water and look weird…
Is there a basic mistake that I make, something I don't see? There are many ways of filtering these unwanted points, but since I've seen amazing beach sims and never read anything about handling the bottom particles I wonder if there's something wrong with my approach…
Cheers, Dan
my goal is to create a FLIP simulation of ocean waves on a beach. I tweaked the default beach tank setup which works pretty well. What confuses me is the bottom side of the FLIP fluid, here's what's happening using the default approach that I find everywhere:
- the fluid mesher creates a mesh around the FLIP simulation. The result is a mesh that is pretty bumpy on the bottom side or at least never follows exactly the shape of the ocean bottom (unless you increase the resolution ridiculously high I guess). In the rendering I can see ‘bubble’ like shapes through the transparent ocean which result from the refraction between the bottom side of the mesh and the actual ocean bottom geometry. I solved this by deleting all of the mesh except the real upper surface, but I'm surprised that keeping the complete mesh seems to be the standard way…
- the Whitewater Source generates source particles potentially everywhere within the FLIP fluid. Since particles collide with the ocean bottom and accelerate, a lot of particles are generated near the ground. Since these particles are near the mesh surface (not really the ocean surface since it's at the bottom of the mesh) they are treated as foam from what I see (bubbles are deactivated). Moreover these particles are created in big clumps that move through the water and look weird…
Is there a basic mistake that I make, something I don't see? There are many ways of filtering these unwanted points, but since I've seen amazing beach sims and never read anything about handling the bottom particles I wonder if there's something wrong with my approach…
Cheers, Dan
-
- Quick Links