Jump to content

Houdini 19 Wishlist


LaidlawFX

Recommended Posts

  • more toggle's for group nodes (like the group combine SOP) to interpret missing groups as an empty group

(so you can choose for it to return a warning, instead of an error.
While I know there are workarounds, its quite annoying if your delete node cleans a group on empty geometry and then the group combine returns an error :P)

  • for the "Convert line" SOP to be able to maintain vertex ordering (instead of basing the new vertex ordering, on the input point numbering)

(sorting by vertex number does not work in cases where you have closed primitives, resulting in the "last" edge of an original primitive to have a reversed direction)

Edit:

 

  • Update the find shortest path, so it can output the start point attribute even when you are not outputting paths (this way you could use this reference attribute to transfer attributes to the flood-filled network from the closest start point: 

image.png.238edb54b371dd9c1c9e8f35084dd7eb.png
(right now its possible to work around this by setting the output paths to "from EAch start to any end" and then write some vex to find the lowest value in the cost array, that is not -1, and use that to link the points,
but its a bit clunky :P)

  • Some heavy nodes (in particular the remesh node) could make more use of multithreading, right now, cooking times can be massively decreased by splitting the mesh (using some kind of internal connectivity logic) and using a for loop, even without compiling sometimes as is the case here:
    image.png.55ab635da0af298666018c95e495d172.png

and because of how the remesh works it keep those isolated pieces isolated anyways, so "free" perf yay!
 

Edited by acey195
  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Btw for people who are interested I simplified the locked viewport indicator code that I posted earlier:

class ViewportOutlineWidget(QtWidgets.QWidget):

    thickness = 0
    def __init__(self, thicknessValue=2):
        QtWidgets.QWidget.__init__(self, hou.qt.mainWindow(), QtGui.Qt.WindowStaysOnTopHint)
        

        self.thickness = thicknessValue
        self.setParent(hou.qt.floatingPanelWindow(None), QtGui.Qt.Window)
        self.update()

        p = self.palette()
        p.setColor(QtGui.QPalette.Window, QtGui.Qt.red)
        self.setPalette(p)


    def update(self):
        viewport = getSessionVariable("viewportWidget")
        s = viewport.size()
        p = viewport.mapToGlobal(QtCore.QPoint(0, 0))
        w = s.width()
        h = s.height()

        self.setGeometry(p.x(), p.y(), w, h)

        all = QtGui.QRegion(0, 0, w, h)
        inside = QtGui.QRegion(self.thickness, self.thickness, w - 2 * self.thickness, h - 2 * self.thickness)
        self.setMask(all.subtracted(inside))

 

So instead of using 4 lines, I am just creating a mask to hollow out the inside of the rectangle, which is much easier to handle.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...
  • Marc locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...