Found 23 posts.
Search results Show results as topic list.
Technical Discussion » VDB remove interior
- davidderwin
- 23 posts
- Offline
If your polygons are floating on the inside of the mesh and not connected to the outer shell another thing you can try is to convert VDB to polygons just once then plug that into the first input of a boolean sop. Leave the second input of the boolean empty. If the polys are floating on the inside that should remove them and leave just the outer mesh. Saw that on a tutorial somewhere, you can throw down test geometry rubber toy then plug it into the first input of a boolean and see what it does to the inside of the mesh.
Houdini Indie and Apprentice » VEX : using FOR wihtout errors but doesn't work
- davidderwin
- 23 posts
- Offline
You're very close! Your condition in the for loop is currently i==stop, meaning the loop will run as long as i==stop returns true. When the loop starts, i=0 which is not equal to stop (in your example stop would be equal to 2 and in all cases would be greater than 0). I guess it technically isn't incorrect code is why it doesn't error out but it doesn't run as expected.
If you change your for condition to:
it will work as expected.
Full code only changing that one line:
If you change your for condition to:
for(int i=0; i<stop; i++)
it will work as expected.
Full code only changing that one line:
int stop = @numprim; for(int i=0; i<stop; i++) { vector pos = prim(0, "P", i); push(f[]@zpos, pos.z); }
Edited by davidderwin - 2018年10月22日 15:11:52
Technical Discussion » edges from knife tool
- davidderwin
- 23 posts
- Offline
One way to do this would be:
1. make a group of all points
2. do knife operation
3. do a group combine set to group type “Points” to make a new point group, set to “Equals All But” the point group prior to knife (from step 1) (this will give you a point group with only the new points created from the knife operation).
4. do a group promote from points to edges on the group from step 3 (making sure to turn ON the toggle to “Include Only Elements Entirely Contained in Original Group”).
This will give you an edge group with just the newly created edge from the knife.
If you have a lot of knife operations and need separate groups for each new knife edge this might not be the most elegant solution but you can repeat the process as many times as needed or can insert as many knife operations after step 2 and get a single edge group from all knife operations.
1. make a group of all points
2. do knife operation
3. do a group combine set to group type “Points” to make a new point group, set to “Equals All But” the point group prior to knife (from step 1) (this will give you a point group with only the new points created from the knife operation).
4. do a group promote from points to edges on the group from step 3 (making sure to turn ON the toggle to “Include Only Elements Entirely Contained in Original Group”).
This will give you an edge group with just the newly created edge from the knife.
If you have a lot of knife operations and need separate groups for each new knife edge this might not be the most elegant solution but you can repeat the process as many times as needed or can insert as many knife operations after step 2 and get a single edge group from all knife operations.
Houdini Indie and Apprentice » list of vertices
- davidderwin
- 23 posts
- Offline
Try this in a primitive wrangle:
i@primvtx = primvertices(0, @primnum);
It will return the list of vertices on each primitive as an array attribute.
i@primvtx = primvertices(0, @primnum);
It will return the list of vertices on each primitive as an array attribute.
Houdini Indie and Apprentice » Access from one node the attribute from another node.
- davidderwin
- 23 posts
- Offline
Technical Discussion » How to? Force group of UVs to align horizontally or vertically (all fo them) while having flexibility of changing their dimensions (in a procedural way)
- davidderwin
- 23 posts
- Offline
The uvflatten sop has an Axis-Aligned Vertex Groups section where you can enable axis alignment. The aligned groups expects vertex groups but if you can define an edge group then promote to a vertex group and use that as the aligned group, it will align the UVs parallel to either the U or V axis, whichever you select. It doesn't work across multiple UV islands but you can throw the uvflatten into a for-each loop to process each UV island separately.
Technical Discussion » Resetting Object Rotation
- davidderwin
- 23 posts
- Offline
Using the VEX rotate function on a matrix will work to rotate around a given vector axis. I can't download your file at the moment but if you have a point or object at the origin then run this in a point wrangle:
It will rotate however many degrees (45 degrees in this case) around the vector axis, which in the example above is @side ({0,0,1)}. It sounds like you have calculated the angles that each piece will need to be rotated so by using those angles and changing the vector axis as needed (rotating around x, y or z), this should be able to get your pieces rotated to the desired orientation.
@N = {1,0,0}; v@side = normalize(cross(@N,{0,1,0})); v@up = normalize(cross(@side,@N)); float angle = 45; matrix rot = ident(); rotate(rot, radians(angle), @side); @N *= rot; @up *= rot; @side *= rot; @P *= rot;
It will rotate however many degrees (45 degrees in this case) around the vector axis, which in the example above is @side ({0,0,1)}. It sounds like you have calculated the angles that each piece will need to be rotated so by using those angles and changing the vector axis as needed (rotating around x, y or z), this should be able to get your pieces rotated to the desired orientation.
Technical Discussion » python bounding box display
- davidderwin
- 23 posts
- Offline
I've found two ways you can call your geo into the hou.BoundingBox() class. If you plug your geo node into a python sop, you can call the BoundingBox class like this:
Or specify a sop directly, which wouldn't require having it plugged into the python sop.
I don't see a way for the class to automatically create a bounding box for you in the viewport, but it gives you the information required to do so.
geo.boundingBox() returns a type class ‘hou.BoundingBox’ so you cannot iterate the array directly to create points but you can get that information from minvec() and maxvec(), both of which return vectors. By combing the x, y and z values from min and max vec, you can construct the bounding box corners with points:
If you wanted to, you could then draw quads from the points as well, or create points the same way but from the other BoundingBox() methods, like center().
If your goal is to just create a bounding box for visualization in the viewport, you can plug your geometry into a box sop and it will create the box with the size of the bounding box of the input geometry.
I've attached a hip file which shows these different methods. I threw a transform below the test geo so you can see the bounding box react to changes in translation and rotation. Looks like both methods (python and box sop) don't create bounding boxes oriented to the geometry, which would have to be a different approach if that is your goal.
node = hou.pwd() geo = node.geometry() bbox = geo.boundingBox() print bbox #print information about bounding box: print "bbox minimum and maximum bounds: " + str(bbox) print "bbox minvec: " + str(bbox.minvec()) print "bbox maxvec: " + str(bbox.minvec()) print "bbox size in each x,y,z axes: " + str(bbox.sizevec()) print "bbox center: " + str(bbox.center())
Or specify a sop directly, which wouldn't require having it plugged into the python sop.
bboxnode = hou.node('../OUT') bboxgeo = bboxnode.geometry() bbox = bboxgeo.boundingBox()
I don't see a way for the class to automatically create a bounding box for you in the viewport, but it gives you the information required to do so.
geo.boundingBox() returns a type class ‘hou.BoundingBox’ so you cannot iterate the array directly to create points but you can get that information from minvec() and maxvec(), both of which return vectors. By combing the x, y and z values from min and max vec, you can construct the bounding box corners with points:
# create points at bounding box corners: a = bbox.minvec() b = (bbox.minvec()[0], bbox.maxvec()[1], bbox.minvec()[2]) c = (bbox.maxvec()[0], bbox.maxvec()[1], bbox.minvec()[2]) d = (bbox.maxvec()[0], bbox.minvec()[1], bbox.minvec()[2]) e = bbox.maxvec() f = (bbox.maxvec()[0], bbox.minvec()[1], bbox.maxvec()[2]) g = (bbox.minvec()[0], bbox.minvec()[1], bbox.maxvec()[2]) h = (bbox.minvec()[0], bbox.maxvec()[1], bbox.maxvec()[2]) corners = [a,b,c,d,e,f,g,h] for position in corners: point = geo.createPoint() point.setPosition(position)
If you wanted to, you could then draw quads from the points as well, or create points the same way but from the other BoundingBox() methods, like center().
If your goal is to just create a bounding box for visualization in the viewport, you can plug your geometry into a box sop and it will create the box with the size of the bounding box of the input geometry.
I've attached a hip file which shows these different methods. I threw a transform below the test geo so you can see the bounding box react to changes in translation and rotation. Looks like both methods (python and box sop) don't create bounding boxes oriented to the geometry, which would have to be a different approach if that is your goal.
Edited by davidderwin - 2017年5月12日 14:31:05
Technical Discussion » UVLayout without rotating UVs
- davidderwin
- 23 posts
- Offline
UVLayout is doing an excellent job laying out the UVs according to island area proportions, I'm looking for a way to restrict the UVs from being rotated when being packed, however. Maya has an option under UV Layout -> rotation -> none, which does what I'm after. Is there way to achieve this in Houdini 15.5? I see the Axis-Align Islands option but can't figure out what it does and it is not mentioned in the help document - is there a way to establish an axis direction through an attribute create perhaps? Any thoughts would be much appreciated Thanks!
Technical Discussion » OSX System Requirements update
- davidderwin
- 23 posts
- Offline
Technical Discussion » OSX System Requirements update
- davidderwin
- 23 posts
- Offline
My workstation is a 5K iMac running 10.10.5, AMD Radeon R9 M295X 4096 MB. I know from the supported graphics cards that this is not a supported configuration. Houdini 14 was completely unusable and 15 appears to be too - barely any geometry in the scene and it hangs, crashes, etc.
Is the harsh reality that any Houdini beyond 13 will not be usable on OS X with AMD Radeon R9? Will H15 run smoothly if I run through Windows on Parallels? Or my only other option to run smoothly on a Mac is a MacPro?
If I install Houdini Engine 2.0 will my H13 HDAs benefit from the new Engine for Maya features? I'm hesitant to upgrade anything at this point as I have a working system running H13 and seems like that may be all the further I can get with versioning up Houdini given my system specs.
Is the harsh reality that any Houdini beyond 13 will not be usable on OS X with AMD Radeon R9? Will H15 run smoothly if I run through Windows on Parallels? Or my only other option to run smoothly on a Mac is a MacPro?
If I install Houdini Engine 2.0 will my H13 HDAs benefit from the new Engine for Maya features? I'm hesitant to upgrade anything at this point as I have a working system running H13 and seems like that may be all the further I can get with versioning up Houdini given my system specs.
Houdini Engine for Maya » Material naming by the Houdini engine
- davidderwin
- 23 posts
- Offline
Ah, the digital asset is a SOP type so that may be the issue. I will test this evening, thanks!
Houdini Engine for Maya » Material naming by the Houdini engine
- davidderwin
- 23 posts
- Offline
I have an OBJ level subnet digital asset containing a material named default_clay. This material is assigned to an object in the scene via a material SOP
How specifically are you assigning the material in Houdini so it passes through to Maya as a unique material? I tried replicating your workflow above by adding materials to groups in a material SOP and I can see the material in Houdini but when the otl loads in Maya it assigns initialShadingGroup to all geometry, it seems to not be bringing any materials along.
Are there specific parameters I need to watch out for? Currently my geometry has vertex normals and UVs, does that play a factor? Is there something with using a SHOP network inside the HDA vs the /shop material palette? (I tried both ways with no luck). Essentially I'd like to create material groups that pass from the HDA to Maya so I can easily assign new materials to selected material groups defined by the HDA.
Houdini Engine for Maya » Maya 2015 Crashes cooking basic otl file
- davidderwin
- 23 posts
- Offline
That update worked! Able to use the Mountain SOP without issue now in Maya. Thanks for your help!
Houdini Engine for Maya » Maya 2015 Crashes cooking basic otl file
- davidderwin
- 23 posts
- Offline
Ah, my apologies, I see now the issue on the thread was the OTL itself was crashing Maya. I am able to load the OTL without issue and you are correct, once I connect the plane in Maya to the input of the OTL containing the mountain SOP, it hangs and never cooks. I'm using Maya 2015 SP5 and Houdini Engine 14.0.230 on 10.10.2. When I just tested again to get the error report it did actually crash Maya once I connected the grid to the input of the OTL.
Error report attached.
Error report attached.
Houdini Engine for Maya » Maya 2015 Crashes cooking basic otl file
- davidderwin
- 23 posts
- Offline
Just wanted to give this thread a bump as I am having the same issue, specifically with the Mountain SOP in Maya via Houdini Engine on OS X. To test I made an HDA which takes a grid as an input (to be supplied by Maya) and simply applies a Mountain SOP. When used in Maya I'm not getting a crash but it hangs and will never cook so I'm left with force quitting Maya.
Anything else I can try?
David
Anything else I can try?
David
Houdini Engine for Maya » HDA generates duplicate groups as nParticles in Maya
- davidderwin
- 23 posts
- Offline
UPDATE: The problem was a cookie sop that was generating bad geometry so i cleaned that up and the nParticles were no longer created.
Houdini Engine for Maya » HDA generates duplicate groups as nParticles in Maya
- davidderwin
- 23 posts
- Offline
I have a rather complicated HDA being used in Maya and find almost every time I use it, but not every time, I get duplicated groups as what I created in Houdini - one group is the actual mesh and the other group is an nParticle. This doesn't happen every time I use the HDA in Maya but when it does, it creates a Nucleus in Maya and then doubles up the groups as mentioned above.
In the script editor I get the following error:
#
// Warning: Attempted to create 4550 polygons, but only 4546 polygons were created. //
// Warning: Attempted to create 18272 face-vertices, but only 18184 face-vertices were created. //
// Warning: This likely means that the Houdini Digital Asset is outputting bad geometry that Maya cannot handle. As a result, other attributes (such as UVs and color sets) cannot be transferred. //
// Warning: Attempted to create 52 polygons, but only 36 polygons were created. //
// Warning: Attempted to create 208 face-vertices, but only 144 face-vertices were created. //
// Warning: This likely means that the Houdini Digital Asset is outputting bad geometry that Maya cannot handle. As a result, other attributes (such as UVs and color sets) cannot be transferred. //
// Warning: Attempted to create 52 polygons, but only 36 polygons were created. //
// Warning: Attempted to create 208 face-vertices, but only 144 face-vertices were created. //
// Warning: This likely means that the Houdini Digital Asset is outputting bad geometry that Maya cannot handle. As a result, other attributes (such as UVs and color sets) cannot be transferred. //
Which makes sense, though I can't figure out which primitives it is having an issue with, and it is further complicated by the fact it doesn't happen every time I use the asset in Maya. Also when this occurs, it creates an nParticle group for every primitive group I created in Houdini, not just the problematic group, so I can't figure out which mesh(es) the issue is coming from.
Has anyone else exhibited this? I also found sometimes what “looks” correct in Houdini, and by that I mean normal direction, where all normals are facing the same direction and no primitives are black, is flipped for some primitives once used in Maya. To make the normals face the correct direction in Maya, I end up using a reverse SOP on the primitive groups that are flipped in Maya and this then looks correct in Maya but flipped in Houdini.
Could this be causing an issue? Is there a clean way in Houdini to go to the end of the HDA and conform normal direction? I've been using a clean SOP and selecting “orient polygons” which appears to work for individual primitive groups but doesn't seem to work if I give it my final merged asset.
I'm using Houdini 13.0.621 and Maya 2015 SP5 on a 5K iMac running 10.10.1. Houdini Engine version 14.0.201.13. Not using H14 as it doesn't play well with my 5K iMac's graphics card but should be able to use H13 assets with the H14 engine for Maya all the same? The issue occurred while on the H13 engine for Maya as well but can revert if there are issues there.
In the script editor I get the following error:
#
// Warning: Attempted to create 4550 polygons, but only 4546 polygons were created. //
// Warning: Attempted to create 18272 face-vertices, but only 18184 face-vertices were created. //
// Warning: This likely means that the Houdini Digital Asset is outputting bad geometry that Maya cannot handle. As a result, other attributes (such as UVs and color sets) cannot be transferred. //
// Warning: Attempted to create 52 polygons, but only 36 polygons were created. //
// Warning: Attempted to create 208 face-vertices, but only 144 face-vertices were created. //
// Warning: This likely means that the Houdini Digital Asset is outputting bad geometry that Maya cannot handle. As a result, other attributes (such as UVs and color sets) cannot be transferred. //
// Warning: Attempted to create 52 polygons, but only 36 polygons were created. //
// Warning: Attempted to create 208 face-vertices, but only 144 face-vertices were created. //
// Warning: This likely means that the Houdini Digital Asset is outputting bad geometry that Maya cannot handle. As a result, other attributes (such as UVs and color sets) cannot be transferred. //
Which makes sense, though I can't figure out which primitives it is having an issue with, and it is further complicated by the fact it doesn't happen every time I use the asset in Maya. Also when this occurs, it creates an nParticle group for every primitive group I created in Houdini, not just the problematic group, so I can't figure out which mesh(es) the issue is coming from.
Has anyone else exhibited this? I also found sometimes what “looks” correct in Houdini, and by that I mean normal direction, where all normals are facing the same direction and no primitives are black, is flipped for some primitives once used in Maya. To make the normals face the correct direction in Maya, I end up using a reverse SOP on the primitive groups that are flipped in Maya and this then looks correct in Maya but flipped in Houdini.
Could this be causing an issue? Is there a clean way in Houdini to go to the end of the HDA and conform normal direction? I've been using a clean SOP and selecting “orient polygons” which appears to work for individual primitive groups but doesn't seem to work if I give it my final merged asset.
I'm using Houdini 13.0.621 and Maya 2015 SP5 on a 5K iMac running 10.10.1. Houdini Engine version 14.0.201.13. Not using H14 as it doesn't play well with my 5K iMac's graphics card but should be able to use H13 assets with the H14 engine for Maya all the same? The issue occurred while on the H13 engine for Maya as well but can revert if there are issues there.
Houdini Engine for Maya » Mesh naming - Houdini to Maya
- davidderwin
- 23 posts
- Offline
I've found if I create a group for primitives in Houdini, it comes across to Maya with a group named the same name with an underscore then another number (what appears to be the group number), then “mesh” underneath that.
Is there any more control to not create groups in Maya but simply name the mesh the name of the Houdini group?
I guess it is technically doing a one to one conversion, a group in Houdini comes over as a group in Maya, but can I name just the primitives and not have groups?
Perhaps grouping primitives in Houdini isn't the only way to get names to come across to Maya via Houdini Engine?
Is there any more control to not create groups in Maya but simply name the mesh the name of the Houdini group?
I guess it is technically doing a one to one conversion, a group in Houdini comes over as a group in Maya, but can I name just the primitives and not have groups?
Perhaps grouping primitives in Houdini isn't the only way to get names to come across to Maya via Houdini Engine?
Houdini Indie and Apprentice » Change license server name - Houdini Indie license issue
- davidderwin
- 23 posts
- Offline
I have an email in with sidefx support but given the weekend I may not hear back until Monday and hate to have downtime this weekend so wanted to see if anyone else has had this issue.
I have a Houdini Indie license on my macbook pro and it appears I initially set the license server up to my home network and not as my computer's local host so it worked when at home connected to my network, however I am traveling and now cannot access my Indie license when I switch license server host to “local server”.
I am attempting to return the license and check out to my local host however I receive the following error:
"The specified server list '.local' does not include all hosts serving license xxxxxxx (new-host.home) Please change the server name to include all of them"
Does anyone know how to change the server name to include multiple hosts serving the same license?
I feel if I could return the license I could check it out to my local server host but being away from my home network where the license server was initially checked out to, I cannot return that license unless I can change the server name to include both server names.
It may be a sidefx support issue but thought I'd check if anyone has had this issue before.
Thanks!
I have a Houdini Indie license on my macbook pro and it appears I initially set the license server up to my home network and not as my computer's local host so it worked when at home connected to my network, however I am traveling and now cannot access my Indie license when I switch license server host to “local server”.
I am attempting to return the license and check out to my local host however I receive the following error:
"The specified server list '.local' does not include all hosts serving license xxxxxxx (new-host.home) Please change the server name to include all of them"
Does anyone know how to change the server name to include multiple hosts serving the same license?
I feel if I could return the license I could check it out to my local server host but being away from my home network where the license server was initially checked out to, I cannot return that license unless I can change the server name to include both server names.
It may be a sidefx support issue but thought I'd check if anyone has had this issue before.
Thanks!
-
- Quick Links