It seems that the templated Visualizer SOP node needs to be at the same network level as the node with the display flag checked in order for the visualizer to show up.
Therefore, you can't use this trick in HDAs where you want to show a visualizer SOP from within the HDA itself.
I suppose I need to dynamically create a visualizer in Python using the hou.viewportVisualizers module, right?
Found 900 posts.
Search results Show results as topic list.
Technical Discussion » Visualize attribs from PCloud on Pieces?
- Andr
- 900 posts
- Offline
Technical Discussion » Is the KineFx shelf empty?
- Andr
- 900 posts
- Offline
Technical Discussion » Visualize attribs from PCloud on Pieces?
- Andr
- 900 posts
- Offline
Technical Discussion » Visualize attribs from PCloud on Pieces?
- Andr
- 900 posts
- Offline
I have have a point cloud of millions of points with attributes storing information about corresponding pieces.
I need to display the points and the information on the pieces, without merging the 2 streams of geometry.
My idea, which I don't like:
use python to create a new geometry node at /obj level to merge there the point cloud with a Visualizer Sop to display the attributes info.
Issues I see: the need to dynamically deal with python with the viewport settings and the rules for displaying objects in the viewport. Also, what to do with the new point cloud object(s) that are littering the /obj level? And when to delete them? All rules that are very hard to establish and make into code.
Note:
1) I can't transfer the info-attribs on the geometry pieces and display the infos directly from the pieces. The info attribs must be read from the point cloud.
2) I can use python, but I would love NOT be forced to learn Python States for this project.
Also, I need to display possibly dozen of millions of values in the viewport. The "visualize sop" works just well for that, not sure about python states?
Any idea?
thanks!
I need to display the points and the information on the pieces, without merging the 2 streams of geometry.
My idea, which I don't like:
use python to create a new geometry node at /obj level to merge there the point cloud with a Visualizer Sop to display the attributes info.
Issues I see: the need to dynamically deal with python with the viewport settings and the rules for displaying objects in the viewport. Also, what to do with the new point cloud object(s) that are littering the /obj level? And when to delete them? All rules that are very hard to establish and make into code.
Note:
1) I can't transfer the info-attribs on the geometry pieces and display the infos directly from the pieces. The info attribs must be read from the point cloud.
2) I can use python, but I would love NOT be forced to learn Python States for this project.
Also, I need to display possibly dozen of millions of values in the viewport. The "visualize sop" works just well for that, not sure about python states?
Any idea?
thanks!
Edited by Andr - April 4, 2023 02:31:13
Technical Discussion » Move all points such that a specific one is at world center
- Andr
- 900 posts
- Offline
You should get the position of point 0 and subtract it from every point position.
v@P -= point(0, "P", 0);
Edited by Andr - March 29, 2023 14:19:23
Technical Discussion » find points thats belongs to more than N primitives
- Andr
- 900 posts
- Offline
Probably better and safer to use the pointprims() function, that returns an array of the primitives associated with the iterating point.
Then you can check the len() of the array to get the number of prims.
I think neighbourcount can lead you to some issue, but this is just guess because I don't know what kind of geometry you are checking
Then you can check the len() of the array to get the number of prims.
I think neighbourcount can lead you to some issue, but this is just guess because I don't know what kind of geometry you are checking
Houdini Lounge » Houdini 20 Rumors
- Andr
- 900 posts
- Offline
Hatchery
I really like the UI. I think the UX is great once once you get used to it...
I think many complaints about the UI and UX are from people using Houdini for many years, who are already accustomed to Houdini.
Edited by Andr - March 24, 2023 11:25:59
Houdini Lounge » Option to save posts as draft ?
- Andr
- 900 posts
- Offline
Don't know if I have to properly RFE to the Support (there is no category for forum RFEs) or I can just ask it here.
Anyway, it would be very helpful to have possibility to save posts (and topics) as draft.
Cheers
Anyway, it would be very helpful to have possibility to save posts (and topics) as draft.
Cheers
Edited by Andr - March 20, 2023 15:25:06
Technical Discussion » (Un)evenly distributed subdivision
- Andr
- 900 posts
- Offline
pietjaakko
Remesh of course does this but it becomes easily very slow the random triangular mesh it produces is often not ideal to model human made objects with (more or less) even surfaces and edges. Or should I try to build my own by combining for instance the Labs polyslice and subdivide sops?
best,
Jaakko
you could try Labs Fast Remesh (maybe in adaptive mode?) and see if it speeds up your workflow.
Technical Discussion » How do you display a point attribute in an HDA's parameters?
- Andr
- 900 posts
- Offline
I've attached an example file, see if it can help.
The idea is to use a Python Sop inside your HDA, so every time the HDA cooks, the pythons sop would write the attrib values to parameters of the HDA.
NOTE:
It works for one point only.
For more points, the setup would be more complicated.
The idea is to use a Python Sop inside your HDA, so every time the HDA cooks, the pythons sop would write the attrib values to parameters of the HDA.
node = hou.pwd() geo = node.geometry() hda = node.parent() # get attrib values scaleXY = geo.iterPoints()[0].floatAttribValue('scaleXY') scaleZ = geo.iterPoints()[0].floatAttribValue('scaleZ') # write to parms hda.parm('scaleXY').set(str(scaleXY)) hda.parm('scaleZ').set(str(scaleZ))
NOTE:
It works for one point only.
For more points, the setup would be more complicated.
Houdini Lounge » Quality of life for Houdini users
- Andr
- 900 posts
- Offline
Soothsayer
A few simple, random, and silly things I do a lot of every day:
- Dealing with large strings in the Geometry Spreadsheet. Asset names can be very long and parsing/checking them is tedious and common. Have them right-aligned, abbreviated, or something along those lines. Same with expressions in parms.
Same with the status bar, so that you know on what node the network is stuck on cooking.
Houdini Lounge » Quality of life for Houdini users
- Andr
- 900 posts
- Offline
animatrix_
Multi-threaded GUI like Nuke would be the highest productivity booster IMO. So as you are working, creating/editing the network of nodes, the viewport would process the queue of operations in the background without locking the entire app.
I submitted this as an RFE but don't have the ID handy.
I've read somewhere that they are reworking the viewport for vulkan, which would prevent the UI to freeze while cooking.
Is this what you mean?
Technical Discussion » RGB values scale of 0-255 in Houdini?
- Andr
- 900 posts
- Offline
or you can create a new spare vector parameter, name it `pscolor`, set it to range 0-255 and then apply the following expression to the color parameter:
that remaps the 0-255 values from your input into the 0-1 range used by Houdini
check the example file
fit(ch("pscolorx"), 0, 255, 0, 1)
that remaps the 0-255 values from your input into the 0-1 range used by Houdini
check the example file
Edited by Andr - Feb. 9, 2023 07:38:48
Technical Discussion » How to properly merge geo with different attributes?
- Andr
- 900 posts
- Offline
Hi, it would help if we know what are you trying to do and what should be the end geometry look like?
Also, do you understand why you end up with some points with an empty 'unreal_instance' attribute?
To avoid attribute missmatch after a merge, be sure to merge geometries that have the same attributes, so points in branch B should be already assigned with an 'unreal_instance' attribute before merging.
Also, do you understand why you end up with some points with an empty 'unreal_instance' attribute?
To avoid attribute missmatch after a merge, be sure to merge geometries that have the same attributes, so points in branch B should be already assigned with an 'unreal_instance' attribute before merging.
Edited by Andr - Feb. 9, 2023 09:29:04
Technical Discussion » RGB values scale of 0-255 in Houdini?
- Andr
- 900 posts
- Offline
If you click on the parameter to open the colour editor, you can copy/paste a hex color code like CCABDF
Edited by Andr - Feb. 9, 2023 07:15:49
SideFX Labs Tech Art Challenge 2021 » WIP - Fast Remesh - [ need help with betatesting b4 submitting]
- Andr
- 900 posts
- Offline
ps. in your scene, I noticed that you use Labs Fast Remesh in `target length` mode and so computation time increases at each solver step as the total area of your mesh progressively increases.
You could consider to explore other options, like a target polycount maybe.
You could consider to explore other options, like a target polycount maybe.
Edited by Andr - Feb. 1, 2023 07:14:04
SideFX Labs Tech Art Challenge 2021 » WIP - Fast Remesh - [ need help with betatesting b4 submitting]
- Andr
- 900 posts
- Offline
coccosoidsAndr
Thanks, I can reproduce the crash.
A temporary workaround is to append a Clean Sop node just after Fast Remesh so to remove the degenerate primitives that seem to be causing the issue.
Also, be aware that you are producing self-intersecting geometry (have a look inside the geometry)
Thank you! I will have a look at how the Clean Sop can help. To be honest I've seen those intersections, and was wondering how to remove them -however I think anything that could help remove them would also maybe negate the speed gains?
You made me rmb that I should really finalize and release a new version of `Auto-Fix Self-Intersections Sop`, which could help in your case. As you guessed, it adds computation time (even if the detection of the intersections uses a similar parallelization approach as Fast Remesh).
You can try the 1.1 version and see if it works for you, but it's a little bit clunky.
https://www.sidefx.com/forum/topic/82432/#post-373294 [www.sidefx.com]
Technical Discussion » Python Parameter Expression in string parameters
- Andr
- 900 posts
- Offline
Try to force set a keyframe with alt+lmb on the parameter and then write the python expression.
See if this helps
See if this helps
SideFX Labs Tech Art Challenge 2021 » WIP - Fast Remesh - [ need help with betatesting b4 submitting]
- Andr
- 900 posts
- Offline
Thanks, I can reproduce the crash.
A temporary workaround is to append a Clean Sop node just after Fast Remesh so to remove the degenerate primitives that seem to be causing the issue.
Also, be aware that you are producing self-intersecting geometry (have a look inside the geometry)
A temporary workaround is to append a Clean Sop node just after Fast Remesh so to remove the degenerate primitives that seem to be causing the issue.
Also, be aware that you are producing self-intersecting geometry (have a look inside the geometry)
Houdini Lounge » How to log bugs and rfe's for Houdini - READ THIS FIRST!
- Andr
- 900 posts
- Offline
On this page there's a `submit idea` button.
https://portal.productboard.com/sidefx/1-sidefx-labs-public-roadmap/tabs/1-recently-released [portal.productboard.com]
https://portal.productboard.com/sidefx/1-sidefx-labs-public-roadmap/tabs/1-recently-released [portal.productboard.com]
-
- Quick Links