Jump to content

animatrix

Members
  • Content count

    230
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    15

animatrix last won the day on August 18

animatrix had the most liked content!

Community Reputation

193 Excellent

About animatrix

  • Rank
    Initiate

Contact Methods

  • Website URL
    http://www.pragmatic-vfx.com

Personal Information

  • Name
    Yunus

Recent Profile Visitors

3,416 profile views
  1. Selecting geo elements by polycount

    After the Connectivity SOP and polycount is where you enter the value, you can do > < == !=, etc.
  2. Assigning Hotkeys to Shading Modes

    Hi, You can write some Python code and call these functions inside a shelf tool and assign a hotkey to this shelf tool that can be constrained to SceneViewers only or global depending on how you want to execute them. You can get the viewport under the mouse also. I just get the first available SceneViewer for my workflow. def currentViewportSetToWireframe(): with hou.undos.disabler(): desktop = hou.ui.curDesktop() viewport = desktop.paneTabOfType(hou.paneTabType.SceneViewer) if viewport.isCurrentTab(): view = viewport.curViewport() displaySet = view.settings().displaySet(hou.displaySetType.DisplayModel) displaySet.setShadedMode(hou.glShadingType.WireGhost) def currentViewportSetToHiddenLineInvisible(): with hou.undos.disabler(): desktop = hou.ui.curDesktop() viewport = desktop.paneTabOfType(hou.paneTabType.SceneViewer) if viewport.isCurrentTab(): view = viewport.curViewport() displaySet = view.settings().displaySet(hou.displaySetType.DisplayModel) displaySet.setShadedMode(hou.glShadingType.HiddenLineInvisible) def currentViewportSetToFlatShaded(): with hou.undos.disabler(): desktop = hou.ui.curDesktop() viewport = desktop.paneTabOfType(hou.paneTabType.SceneViewer) if viewport.isCurrentTab(): view = viewport.curViewport() displaySet = view.settings().displaySet(hou.displaySetType.DisplayModel) displaySet.setShadedMode(hou.glShadingType.Flat) def currentViewportSetToFlatWireShaded(): with hou.undos.disabler(): desktop = hou.ui.curDesktop() viewport = desktop.paneTabOfType(hou.paneTabType.SceneViewer) if viewport.isCurrentTab(): view = viewport.curViewport() displaySet = view.settings().displaySet(hou.displaySetType.DisplayModel) displaySet.setShadedMode(hou.glShadingType.FlatWire) def currentViewportSetToSmoothShaded(): with hou.undos.disabler(): desktop = hou.ui.curDesktop() viewport = desktop.paneTabOfType(hou.paneTabType.SceneViewer) if viewport.isCurrentTab(): view = viewport.curViewport() displaySet = view.settings().displaySet(hou.displaySetType.DisplayModel) displaySet.setShadedMode(hou.glShadingType.Smooth) def currentViewportSetToSmoothWireShaded(): with hou.undos.disabler(): desktop = hou.ui.curDesktop() viewport = desktop.paneTabOfType(hou.paneTabType.SceneViewer) if viewport.isCurrentTab(): view = viewport.curViewport() displaySet = view.settings().displaySet(hou.displaySetType.DisplayModel) displaySet.setShadedMode(hou.glShadingType.SmoothWire) For changing the visibility of other objects, you might have to call an Hscript command in Python.
  3. Selecting geo elements by polycount

    Hi, If you create a primitive connectivity attribute using the Connectivity SOP, you can do something like this using a Primitive Wrangle: if ( findattribvalcount ( 0, "primitive", "class", i@class ) < chi("polycount") ) removeprim ( 0, @primnum, 1 );
  4. Pragmatic VEX: Volume 1 [4K] [H18]

    Pragmatic VEX: Volume 1 has been updated to Houdini 18.5 to ensure it shows the most up to date methods available in the latest version of Houdini. Existing users received the updated course as soon as it went live. Enjoy!
  5. networkview over sceneview

    Yes I created 2 videos explaining it in depth
  6. networkview over sceneview

    Hi, I don't know any built-in features but I made one
  7. Pragmatic VEX: Volume 1 [4K] [H18]

    Since the release of my Houdini tutorial, a lot of people have been asking me about the overlay network editor shown in the videos. It's not a video trick, or a feature in Houdini It's part of my Supercharged extension: https://gum.co/fxsup It has a lot more enhancements such as context-sensitive rule-based hotkeys that can invoke hotkeys based on custom rules and even the ability to assign a key sequence (dual keys) for any action or even a custom function call. Apart from this, there are close to 100 other features that are too long to list here but I will make a new video that shows each one in detail.
  8. Selecting primitive based on angle

    Hi, You can first group the edges using a Point Wrangle: float getAngleBetweenVectors ( vector v0; vector v1 ) { vector v0n = normalize ( v0 ); vector v1n = normalize ( v1 ); return atan2 ( length ( cross ( v0n, v1n ) ), dot ( v0n, v1n ) ); } int pts [ ] = neighbours ( 0, @ptnum ); foreach ( int pt; pts ) { if ( @ptnum < pt ) continue; int prs [ ] = { }; int firsthedge = pointhedge ( 0, @ptnum, pt ); int count = hedge_equivcount ( 0, firsthedge ); if ( count == 2 ) { int hedge = firsthedge; do { int pr = hedge_prim ( 0, hedge ); if ( pr != -1 && find ( prs, pr ) < 0 ) append ( prs, pr ); hedge = hedge_nextequiv ( 0, hedge ); } while ( hedge != firsthedge ); vector n0 = primuv ( 0, "N", prs [ 0 ], 0.5 ); vector n1 = primuv ( 0, "N", prs [ 1 ], 0.5 ); float angle = getAngleBetweenVectors ( n0, n1 ); if ( angle >= radians ( ch("minangle") ) ) setedgegroup ( 0, chs("vex_selectiongroup"), @ptnum, pt, 1 ); } } Then convert this edge group into a primitive group using a Primitive Wrangle after setting the Group parameter to the resulting edge group: i@group_newprims = 1;
  9. move selected points with vex

    Hi, You have to set P as a whole by using the original P so something like this: vector origp = point ( 0, "P", pt ); vector pnew = set ( origp.x, height, origp.z ); setpointattrib ( 0, "P", pt, pnew );
  10. nearpoint() loop/exclude group.

    "The road to performance is not always the shortest."
  11. nearpoint() loop/exclude group.

    Yes you need to skip them like in your second post. I posted the opposite operation here also: https://www.sidefx.com/forum/topic/75781/ Just pad the max point count by rough estimation of max_curve_pts_from_any_curve * 2. It might be faster than adhoc group method, but even if it was slower, it wouldn't blow your memory away.
  12. nearpoint() loop/exclude group.

    Hi, adhoc group syntax feels more elegant but it's not always an automatic win in performance. Every unique adhoc group in a pcfind (what nearpoints internally calls) call will construct a new acceleration data structure which is very costly in performance. Depending on your use case, your overhead of constructing new acceleration data structures might surpass the performance cost of skipping the points on the original curve. Best to profile it using your input
  13. Pragmatic VEX: Volume 1 [4K] [H18]

    Korean translation is being generously performed by Seona Hwang for the sake of helping the Korean Houdini community. Huge props to her for her selfless act!
  14. Pragmatic VEX: Volume 1 [4K] [H18]

    Due to popular demand Pragmatic VEX: Volume 1 now comes with subtitles available in the following languages: English, Japanese, Chinese, Korean and Spanish. The subtitles are in srt format. This will greatly increase the reach of the course to a much wider audience.
  15. Hi Katosaori-san, You have to put OnCreated.py under your Houdini user folder: C:\Users\username\Documents\houdini18.0\scripts Something like: print kwargs["node"]
×