Hi Julien
You can achieve this using the node graph hooks:
https://www.sidefx.com/docs/houdini/hom/network.html [www.sidefx.com]
There are some code samples there, particularly the last code sample might be useful for you
Found 1559 posts.
Search results Show results as topic list.
Technical Discussion » Double click on a node callback
- animatrix_
- 4528 posts
- Offline
Houdini Indie and Apprentice » How to do this in Houdini (2d lattice deform)
- animatrix_
- 4528 posts
- Offline
Technical Discussion » Blend shapes along curve?
- animatrix_
- 4528 posts
- Offline
OdFotan
That's a good method with good benefits. It's nice that you can decide there also where the cross sections appear via the Animation editor:Image Not Found
@OdFotan: Glad you find it useful
OdFotan
but wow
How did you get the nodes to display in the viewport?
Reminds me of TouchDesigner.
A lot of custom Python Qt coding
You can see it in action here:
If you like to see this in Houdini, please submit an RFE to SESI so they might consider adding it (RFE ID is 101685). More people would need to express interest to SESI to normalize some of my “out-there” ideas
Technical Discussion » Blend shapes along curve?
- animatrix_
- 4528 posts
- Offline
Houdini Lounge » How to show HDA's parameter in Scene Viewer?
- animatrix_
- 4528 posts
- Offline
Technical Discussion » Is it possible to make stuff like this in Houdini?
- animatrix_
- 4528 posts
- Offline
Technical Discussion » Anyone has a split face VEX function?
- animatrix_
- 4528 posts
- Offline
Work in Progress » Multithreaded VEX Catmull-Clark Subdivide SOP
- animatrix_
- 4528 posts
- Offline
patreon.com/posts/38913618
Subdivision surfaces are piecewise parametric surfaces defined over meshes of arbitrary topology.
It's an algorithm that maps from a surface to another more refined surface, where the surface is described as a set of points and a set of polygons with vertices at those points. The resulting surface will always consist of a mesh of quadrilaterals.
The most iconic example is to start with a cube and converge to a spherical surface, but not a sphere. The limit Catmull-Clark surface of a cube can never approach an actual sphere, as it's bicubic interpolation and a sphere would be quadric.
Catmull-Clark subdivision rules are based on OpenSubdiv with some improvements. It supports closed surfaces, open surfaces, boundaries by open edges or via sub-geometry, open polygons, open polygonal curves, mixed topology and non-manifold geometry.
It can handle edge cases where OpenSubdiv fails, or produces undesirable results, i.e. creating gaps between the sub-geometry and the rest of the geometry.
One of the biggest improvement over OpenSubdiv is, it preserves all boundaries of sub-geometry, so it doesn't introduce new holes into the input geometry, whereas OpenSubdiv will just break up the geometry, like blasting the sub-geometry, subdividing it and merging both geometries as is.
Houdini Catmull-Clark also produces undesirable results in some cases, i.e. mixed topology, where it will either have some points misplaced or just crash Houdini due to the use of sub-geometry (bug pending).
Another major improvement is for open polygonal curves, where it will produce a smoother curve, because the default Subdivide SOP will fix the points of the previous iteration in subsequent iterations which produces different results if you subdivide an open polygonal curve 2 times in a single node vs 1 time in 2 nodes, one after the other. This is not the case for polygonal surfaces. VEX Subdivide SOP will apply the same operation at each iteration regardless of topology.
All numerical point attributes are interpolated using Catmull-Clark interpolation.
Vertex attributes are interpolated using bilinear interpolation like OpenSubdiv. Houdini Catmull-Clark implicitly fuses vertex attributes to be interpolated just like point attributes.
Primitive attributes are copied.
All groups are preserved except edge groups for performance reasons.
Combined VEX code is ~500 lines of code.
Technical Discussion » 3D Straight Skeleton via CGAL
- animatrix_
- 4528 posts
- Offline
That's a very good idea actually. Would make the whole thing a lot easier, and allow artists to expand their capabilities inside Houdini to new levels.
Technical Discussion » 3D Straight Skeleton via CGAL
- animatrix_
- 4528 posts
- Offline
I agree it's definitely a hurdle if you don't have Visual Studio installed on Windows which I always have. So that makes it much easier for me to set it up.
Not sure if SESI can ship with the necessary compilers for Windows
Not sure if SESI can ship with the necessary compilers for Windows
Technical Discussion » 3D Straight Skeleton via CGAL
- animatrix_
- 4528 posts
- Offline
Nice one Kelvin Did you experiment with CGAL point clouds? I wonder if they are comparable to native point clouds in Houdini in terms of performance, particularly because CGAL also have incremental neighbor searching.
That's also why I always ask SESI at each beta to add a C++ Wrangle to Houdini out of the box, so we can do these kinds of things much easier. Maybe 18.5
That's also why I always ask SESI at each beta to add a C++ Wrangle to Houdini out of the box, so we can do these kinds of things much easier. Maybe 18.5
Edited by animatrix_ - 2020年6月28日 08:37:49
Houdini Indie and Apprentice » Q about creating color (not Cd!) attribute via wrangle
- animatrix_
- 4528 posts
- Offline
Hi,
You can do this by using the setattribtypeinfo function:
You can do this by using the setattribtypeinfo function:
v@clr = 0; setattribtypeinfo ( 0, "point", "clr", "color" );
Technical Discussion » How to group by name
- animatrix_
- 4528 posts
- Offline
Houdini Indie and Apprentice » Select edges whether horizontal or vertical
- animatrix_
- 4528 posts
- Offline
Hi,
You can write something like this in a Point Wrangle:
N is the direction you want to select edges from, and tolerance allows you to include only edges that are parallel to N (0) or perpendicular to N (1), or anything in between.
You can write something like this in a Point Wrangle:
vector n = normalize ( chv("v") ); float tolerance = ch("tolerance"); int pts [ ] = neighbours ( 0, @ptnum ); foreach ( int pt; pts ) { if ( @ptnum < pt ) { vector p = point ( 0, "P", pt ); vector dir = normalize ( @P - p ); if ( abs ( abs ( dot ( dir, n ) ) - 1 ) <= tolerance ) setedgegroup ( 0, "edges", @ptnum, pt, 1 ); } }
N is the direction you want to select edges from, and tolerance allows you to include only edges that are parallel to N (0) or perpendicular to N (1), or anything in between.
Houdini Lounge » Using python code to set color parameter with expression
- animatrix_
- 4528 posts
- Offline
Hi, You can't break the execution of Color SOP like that per point using an expression but you can do this using the Attribute Wrangle SOP.
Houdini Indie and Apprentice » Vex help
- animatrix_
- 4528 posts
- Offline
Hi,
You can just use this and pass @vtxnum to prim_num and -1 to vertex_num:
https://www.sidefx.com/docs/houdini/vex/functions/setvertexattrib.html [www.sidefx.com]
You can just use this and pass @vtxnum to prim_num and -1 to vertex_num:
https://www.sidefx.com/docs/houdini/vex/functions/setvertexattrib.html [www.sidefx.com]
setvertexattrib(0, "Cd", @vtxnum, -1, set(0, 1, 1));
Houdini Lounge » Houdini Full Screen still shows Win10 taskbar?
- animatrix_
- 4528 posts
- Offline
jsmack
Houdini can't go fullscreen, that I know of.
No it can go full screen using Qt hiding everything, even the taskbar, and even Nvidia thinks it's a “game” after going full screen.
window = hou.ui.mainQtWindow() hou.ui.setHideAllMinimizedStowbars(not window.isFullScreen()) if window.isFullScreen(): window.showMaximized() else: window.showFullScreen()
I submitted this to SESI to add to Houdini so people can go in and out of full screen mode easily. All modern apps have this feature to allow fully immersive experience.
Houdini Indie and Apprentice » Point deform in a for each loop
- animatrix_
- 4528 posts
- Offline
Hi,
You can just loop over each piece and use Point Deform on that piece for Capture and Deform.
If you want the fastest performance, you have to capture once in a time independent branch and then deform every frame. To set this up you need to write some VEX code to look up the capture indices across the entire geometry as the Point Deform capture indices will be based on isolated individual pieces.
There is a pending RFE for Point Deform to support IDs, to solve this exact problem.
You can just loop over each piece and use Point Deform on that piece for Capture and Deform.
If you want the fastest performance, you have to capture once in a time independent branch and then deform every frame. To set this up you need to write some VEX code to look up the capture indices across the entire geometry as the Point Deform capture indices will be based on isolated individual pieces.
There is a pending RFE for Point Deform to support IDs, to solve this exact problem.
Houdini Indie and Apprentice » Problem with Point deformer
- animatrix_
- 4528 posts
- Offline
Houdini Indie and Apprentice » UI Question: Parameter Editor in Network View
- animatrix_
- 4528 posts
- Offline
-
- Quick Links