Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


DonRomano last won the day on April 28

DonRomano had the most liked content!

Community Reputation

71 Excellent

1 Follower

About DonRomano

  • Rank
  • Birthday 03/06/1998

Personal Information

  • Name
  • Location

Recent Profile Visitors

1,176 profile views
  1. 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,
  2. 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,
  3. 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,
  4. Trying To Understand Sweep and Vertices

    Polypath -> connect end points, and if your point numbers are still wrong, use a Sort with Vertex Order.
  5. 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,
  6. 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,
  7. 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,
  8. 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,
  9. 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,
  10. Hey, I've asked this question a on SideFX forum but I didn't have any answer, so I try here. I've been struggling on this lately and didn't found how to do it properly. I've made a few .vfl files with functions definitions, and I'd like to compile them and then call them in attribute wrangles (to gain some performance and avoid compilation each time the code is run (especially with heavy functions)). The way I tested was : test.vfl : #ifndef TEST #define TEST cvex print(string message="") { printf(message); } #endif vcc test.vfl -> outputs a print.vex file I define HOUDINI_VEX_PATH to include the directory where print.vex isin Houdini, in an attr wrangle : #include "print.vex" print("test message"); And I have a warning : "Errors or warnings encountered during VEX compile: /obj/geo1/pointwrangle1/attribvop1: No context function defined.. " though I've defined the context if the function (cvex). If anyone knows the proper way to do this (if it's possible), let me know.. Cheers,
  11. UT_NetPacket::read: Not enough space

    I'm pretty sure this means that you don't have enough ram to fit all the rendered images into ram, and this is pretty obvious because 135 8k images is a huge amount of data. What you can do is render to disk and open your images in a new instance of mplay to see it. I'm not sure this comes from this but it could come from something like this. Cheers, Romain
  12. You can also use a geometry wrangle and output an attribute, instead of using a sop solver which can be slower sometimes
  13. Next Constraint Glue to Hard

    I changed a few things but it's working : I use Bullet Soft Constraints, I find it much better than the hard constraint for metal, I also made two wrangles with a switch attribute which changes the constraint name based on your timer attribute. Cheers, next_cons_Glue.hiplc
  14. You should use pcfind(), nearpoints() works only on geometry I think. Just like this : int count = chi("count"); float radius = ch("radius"); int pts[] = pcfind(0, "P" , @P, radius, count); if(len(pts) < chi("threshold")) amp *= 0;
  15. Drop down menu in VEX

    Create an integer channel, and then convert it to an Ordered menu via "Edit Parameter Interface". Then, you can add items using Python menu attributes like so : menuitems = ["0", "item1", "1", "item2", "3", "item3"] return menuitems