Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


DonRomano last won the day on April 28 2021

DonRomano had the most liked content!

Community Reputation

75 Excellent


About DonRomano

  • Rank
  • Birthday 03/06/1998

Personal Information

  • Name
  • Location

Recent Profile Visitors

1,445 profile views
  1. Hello everyone, I'm using hython to run a bunch of files on remote computers and sometimes the network shuts down for a few seconds, causing the "job" to be suspended undefinitely, the only solution being killing the process. Then in the stdout I have this message appearing : Cannot access the OTL source: //Path/To/Some/file.hda for operator type: somehda “Save & Quit” will save the hip file and quit the session “Discard & Quit” will quit the session without saving the hip file “Retry” will attempt again to refresh the OTL definition from the same file location “Embed” will try to use an alternative definition among already loaded OTLs, and if no suitable definition is found, it will create a hollow, embedded fallback OTL which allows you to continue working with the hip file “Refresh OTLs” will reload OTLs found in the search path and try to use them for the operator definition “Load OTL” will present a file chooser to specify an explicit OTL location where the operator definition can be found 0: “Save & Quit” 1: “Discard & Quit” 2: Retry 3: Embed 4: “Refresh OTLs” 5: “Load OTL” Anyone knows if there is a way to force hython to one option ? It's a bit annoying...
  2. Grains orientation is flipping

    Check this out it should help you : Cheers,
  3. In a wrangle : // Get a random float between 0.0 and 1.0, and add a seed to test and randomize per frame, or however you'd like float randomFloat = rand(@primnum + 8439 + chi("seed")); // Create a ramp (that you'll need to edit to rgb ramp in the interface parameters) and map the random float to it // then output the random color mapped on the ramp to the Cd attribute @Cd = chramp("color_ramp", randomFloat);
  4. Hello everyone, Is it possible to add a callback that runs everytime a node is created ? At my studio we have a library of hda (hundreds of nodes) and I'd like to check if the node comes from the general library, or the project library and simply set a color depending on its definition path. I tried scripts/OnCreated.py with a package and appending the path to the Houdini path but nothing is happening. I also thought appending a few lines of code using nodeDefinition.sections()["OnCreated"].setContents("print('Hello')") but doing this for hundreds of hda's, and everytime one is created, requires a bit more work than what I can do for now. Is there a solution ? I've looked at ui event but I haven't found anything interesting. Cheers,
  5. Thin Sheet Fluid

    Very clever ! Thanks for your work, I'm probably going to rewrite it from scratch this year and make something better this time !
  6. Thin Sheet Fluid

    Well, it's been 2 years since I did it, and I've learned so many thing since then, that I'm likely to rewrite everything and improve it, but go ahead and tell me
  7. Vex Pathtracer

    Go a bit of time yesterday and this morning so I rewrote the whole thing from scratch, with fresnel blend for glass (to get both reflection and refraction), and I fixed a few bugs in the gi. I need to fix the animation of the rays now, and it should be good. I might add antialiasing too to get smoother renders (and maybe add a simple photon mapping help to caustics because they are still very noisy). I attached the file though it's not finished (in case you want to also test). I need to add more comments and notes to help understand what's going on, and once everything's fine I'll share the "final" file. You need to include the "raytracer.h" file in a directory defined in the HOUDINI_VEX_PATH in houdini.env. raytracer.hipnc raytracer.h Cheers,
  8. How to python rename node in subnet

    I typed this (the example provided in the link I sent) in the Python Shell and it works fine : def name_changed(node, event_type, **kwargs): print("Geo node is now named %s" % node.name()) hou.node("/obj/geo1").addEventCallback((hou.nodeEventType.NameChanged, ), name_changed) You have to define a function to link to the event callback, and no just copy one line... Note this will work only for the current session, it won't be saved in the file if you close Houdini (as written in the doc link). Cheers,
  9. How to python rename node in subnet

    You might want to have a look at this : https://www.sidefx.com/docs/houdini/hom/hou/Node.html#addEventCallback Cheers,
  10. Trying To Understand Sweep and Vertices

    Polypath -> connect end points, and if your point numbers are still wrong, use a Sort with Vertex Order.
  11. Importing FBX with Python H18.5

    It works fine for me when I use the Python shell (18.5.408). You may want to add the merge_into_scene argument to True to make sure it imports the fbx file into your scene and not create a new file from it. hou.hipFile.importFBX("D:/Path/To/My/FBX/file.fbx", merge_into_scene=True) Cheers,
  12. Vex Pathtracer

    Got time today to add reflection and refraction, I even got caustics with a little trick ! Now time to adjust the animation to capture reflection/refraction rays and I'll call this done. Cheers,
  13. Vex Pathtracer

    Hey guys, I started making a very simple pathtracer with vex in sopland. I'll add basic reflection and refraction, and keep it very simple as it is made as an "educational tool" to help students understand how pathtracing works under the hood. Once I'll have finish I'll share the file here if some of you are interested. I added an "animation" in which we can see the different paths a ray takes : the primary path (in red/blue in the video), the next event estimation path (in black/yellow), and the diffuse bounces (in magenta). I'll also add the next event estimation for the diffuse bounces, and of course when it will be implemented, reflection and refraction paths. Here's a little video of the animation, and a very non-converged render https://streamable.com/37kxua (I think I have a bug in the global illumination I'll fix it tomorrow). Cheers,
  14. How to compile vfl library files to use in wrangles

    Oh okay, I thought the code was compiled each time the wrangle was cooked (in a for loop). I wasn't sure that I already had the max performances on this, but thanks for the precisions ! Cheers,
  15. How to compile vfl library files to use in wrangles

    Yeah I tried to use the cvex context to make it general, but I think pre compiling headers can help with performance when you have large functions. I've already made libraries in header files, but I think that if I can pre compile some functions it could help the wrangles (when sometimes this wrangle is cooked millions of time, I think it can speed up the computation (though vex generated code is cached, we could avoid this step too)). Or maybe there is another way of compiling code ? I don't know if wrangles in hda are compiled at hda creation/modification, or jit compiled like normal wrangles. If nothing changes with manual compilation then it's fine and I already have the maximum performance, but if there is a way of optimizing this I'll be glad to read about it Cheers,