Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

MrScienceOfficer

Members
  • Content count

    169
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by MrScienceOfficer

  1. Adding a PolyFill before the second input geometry on the TopoBuild, so you have something to draw on, makes for a fantastic quick fix topology tool.
  2. I didn't get the ceatevarmap warning when I opened the file. Adding bones slows the simulation down substantially for a few reasons. One is that the static solver is now being used and there is one more then object in the simulation so collision detection is happening. Two is that the bones are using a deforming geometry being recreated for each substep(worst case scenario) for collision detection, if you go to tissue_solver/dopnet1/BONES and uncheck "Use Deforming Geometry" things speed up a bit, and if you change "Collision Detection" to Use Surface Collisions it really speeds up, however if you were using a full skeleton and muscle system this would likely be much slower to solve.
  3. import toolutils scene_viewer = toolutils.sceneViewer() viewport_settings = scene_viewer.curViewport().settings() toggle = not viewport_settings.guideEnabled( hou.viewportGuide.NodeGuides ) viewport_settings.enableGuide( hou.viewportGuide.NodeGuides, toggle ) This should work.
  4. I would recommend "Game Engine Architecture" by Jason Gregory isbn: 978-1466560017 There's only a like a single chapter directly related to math, but it goes over every major concept, vectors, quaternions, matrices. It's very well done, and it's not focused on proofs like most math books ( like we weren't going to believe them ). It's by far the best book I've read for learning how to work with 3D graphics applications, it goes over all the underlying concepts of computer graphics which is extremely useful for understanding and working with Houdini.
  5. -DMAKING_DSO isn't written out when you call "hcustom --clflags". The plugin won't load without that defined.
  6. Has anyone manged to get H16 to compile through the MSVC IDE. I can get it to compile using the sdl- flag(disabling security development life cycle something like that), but Houdini wont load the plug in. It throws the "UT_DSOVersion missing" error on startup. I'm just compiling the star sop sample, which does compile with hcustom. There must be some default flag MSVC sets the project by default that Houdini doesn't like, but I can't figure it out. Thanks
  7. Send SESI that file, if you haven't already. That's really messed up.
  8. uvunwrap(@OpInput1,u, v, time, pos, nml) That should solve it, you should file a bug report for that. I'm pretty using @OpInput1 has been depreciated.
  9. Inspired work, well executed. Very cool.
  10. Funny, I was thinking much the same thing. I really want some nicely printed books of the documentation, one for the high level stuff and a reference books for all the nodes, VEX etc.. I would pay good money for that. There's so much information in the docs and it's simple impossible to read through it all when it's a tree of links, we really need it linearized, with pretty color pictures and a hard cover Though I would bet there's s some program out there that could convert the local documentation folders to a PDF... Apparently Adobe Acrobat can convert HTML to PDF.
  11. The sample for python wrappers is in the HOM folder. ../toolkit/samples/HOM/ObjNode_setSelectable.C It's very well commented and should walk you through the process. Any type prefixed with "PY_Py" is (in most cases) a wrapper to the CPython API. So if you need to look up documentation you need to remove the "PY_" and look up the type here https://docs.python.org/2/c-api/
  12. I've never seen anything. If you need to call into C++ on time change events outside of a node, it's probably best to just create a python wrapper into your plug in.
  13. # Get the selected nodes in a list nodes = hou.selectedNodes() # Loop over the selected nodes list for node in nodes : node.parm("px").setExpression("$CEX") node.parm("py").setExpression("$CEY") node.parm("pz").setExpression("$CEZ") In the second sample you were trying to index ( i[0] ) a node. Whereas, in the first code example, you were indexing the node list ( sel[0] ). A good way to learn python is printing things out for example, print type(i) would have told you that 'i' was an ObjNode and not a Parm like in the first example.
  14. That's beyond cool... Thank you so much for sharing, petz.
  15. That's a chapter from the book https://www.amazon.com/Multithreading-Visual-Effects-Martin-Watt/dp/1482243563 It's written Jeff Lait the Senior Mathematician at SESI. It's a good book, it's definitely worth reading... and it is definitely still relevant, a lot of it is the theory behind how Houdini works and how multi threading works in Houdini and the challenges thereof. However will it really help you with VEX? Probably not.
  16. So you need to remove all the points from the point group except for one? I can't run Houdini on my laptop but I would say off hand the easiest way to do that would be something like this in a point wrangle if (@ptnum % NumberOfPointsOnARing > 0) i@group_topedges = 0; That should isolate the first point on the ring. Basically this uses the modulo operator to find the point number that divides without a remainder into the number of points in the ring. Under most circumstances it should work, however a sort sop for example would break it.
  17. Drag and Drop nodes onto shelf tools, to call the tool with that node in the kwargs dict.
  18. You need to use 2015. Definitely use the latest production build, if possible. Try that combination and see if it helps.
  19. Callbacks. Callbacks. No Polling for changes. Callbacks. I don't want to so much as breath without Houdini notifying me about it, in advance. Default State setting for HDAs to work for all states and dynamically generated radial menu for HDAs with multiple states. Event handling for customizable HDA states with override-able methods through the hdaModule(). Make Autodesk even more distraught over the complete annihilation of their "industry leading" rigging and animation tools!
  20. The visualers for attributes. Making those readable at any resolution can be tough. More visualers would be awesome. Custom selection visualers, like say you have a copy sop set as the guide geometry for an hda and the user can select points, this way you can show the user the end result of the selection instead of just the points. Or maybe just a call back for selections, since selecting doesn't cook the network. And callbacks for parameter changes caused by handles would be incredibly useful too.
  21. Has anyone tried getting Mixed Mode debugging with Python Tools for Visual Studios to work? Houdini ships with 2.7.5 but it's compiled with msvc 14, which I must assume means SideFX compiles the binaries with likely significant source modifications. It seems like the only way Mixed Mode debugging between Python and C++ can work is if Houdini ships with the python symbols? Or am, as per usual, wrong?
  22. That should work.... Are you by chance trying to use a relative path to the dso? I did that, and it doesn't work, I don't think it's actually called from there, though I could be full of shit . The only other thing I can think of is that you didn't change the include guard and it's being ignored? I don't think anything needs to be added to HOUDINI_PATH for it to be found.
  23. I may be misunderstanding you, but I think what your looking for is floor(). https://www.sidefx.com/docs/houdini15.5/vex/functions/floor
  24. import inlinecpp inlinecpp.extendClass(hou.Geometry, "geo_merge_HOM_ext", "", [""" void mergePrimGroup(GU_Detail* gdp, const GU_Detail* src, const char* prim_grp) { gdp->merge(*src, src->findPrimitiveGroup(prim_grp)); } """]) "AttributeError: function ?mergePrimGroupy...yadadada not found" This error only occurs when "src" is const, or gdp isn't const. Basically if the const-ness of the GU_Detail args are mismatched the function "can't be found". Does anyone know anything about this? Thanks
  25. I updated my bug report to mention yours. 4 years is a long time, Microsoft must be doing something weird. And here I was thinking inlinecpp was gonna be all fun and games... Thanks for finding that, I appreciate it