Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


probiner last won the day on May 12 2019

probiner had the most liked content!

Community Reputation

82 Excellent


About probiner

  • Rank

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    {0, 0, 0}

Recent Profile Visitors

2,378 profile views
  1. Packing sorted by an attribute?

    Thanks, but can't use this dart throwing method in my case, since I have a fixed set of islands to pack, so I can't just delete part of them for not fitting. It's a useful method, just not for my case. As mentioned above, deletion method won't do for me. Thanks for the link about LSCM, I'll see if it inspires me to get something functional going. But let's see if some ready made approach surfaces Cheers prb
  2. Packing sorted by an attribute?

    Given weighted (colored red:x, green:y) polygon islands if I use the UV Layout SOP, the colors will have somewhat random distribution: Now, what I'm wondering is if there's an already established way to have the packing respect an attribute (vector2 or 2 floats) to sort the uv islands according to one or both values in the respective axis. Here's a mock-up: Even if I don't use UVs and do some simulation, it's not sure how I would go about to have the, let's say cylinders, fill a space and respect sorting. Scene: PRB_WeightedPacking.hiplc Cheers prb
  3. I've hacked this but submitted an RFE so this may be offered natively, since for me it can make sense to think of work items as points with attributes which are beautifully filtered by Group Syntax. Cheers prb
  4. I'm looking at way to filter lists of strings with a syntax similar to the Houdini's Group Syntax, where defining a range is as simple as 0-100 or stacking parameters as easy as 0-10 ^5 Now, regex provides this and more but its verbose and awful to look at in a parameter and to provide to people without the Regex manual, unlike something as simple as 0-200:4 (select each 4th from 0 to 200) that has some resemblance with Python's string/list slicing syntax. There's re, glob, fnmatch and hou.patternMatch, but none seem to provide this simple interface. Does anyone know of any similar way of going about matching strings? Thanks prb
  5. So most of my issues were solved by switching to "Cook(Out-of-Process)" in the parameter: Evaluate Script During. Now I can run my deeds like Hython on a template scene file, easy peasy. Cheers prb
  6. Here's a video and scene file exemplifying the issue I'm having. While I can change the scene with python and create items, the renders show nothing, but if I manually render, all the items are rendered. And I want to have each item loaded on its work_item to be rendered alone without the others. I'm still not grasping if loading several OBJ networks(scenegraph changes) and render each separately is unfit for PDG or I'm just missing the plot. Cheers prb PRB_OBJ_PDG.hiplc rec_-2021-11-11_17.46.33.mp4
  7. I have a collection of 3D assets and want to setup a PDG network to do a couple of test renders on each, individually, to for quality control purposes. These 3D assets are NOT just bgeo.sc geometry caches but instead are small networks of Houdini OBJ nodes inside a subnet, where there's a simple OBJ hierarchy of multiple geo and null nodes, with material networks inside of the geo nodes. So I need to actually import nodes into the scene to be rendered, not just change the file parameter in a File SOP like seen in many PDG demos. Is this scene network modification something that is fit for PDG or I should just stick to scripting? My overall idea of the routine would be: 1 - Set on template points or primitives an attribute referencing which 3D assets network will be loaded and use them to generate with geometryimport TOP the work items per 3D asset to be processed. 2 - Load the designated 3D asset into /obj network or an OBJ network, using Python; hou.node("/obj").loadItemsFromFile(). 3 - Fit the 4 cameras (Front, Top, Side, Perspective) camera to the 3D asset. This can be done by having the cameras rigged already waiting for a subnet to be referenced so they fit to its contents. 4 - Render the 4 images. (Maybe generating 4 new work items per render?) 5 - Composite those 4 rendered images into a single image contact sheet probably with ImageMagik TOP I suspect I'll find enough material out there for the last two items, but it's the first two and especially step 2 is what I'm asking for some insight. Does it even makes sense to use TOPs for this since I'll be doing changes to the hip scene graph not just changing parameters to load different cached data. I guess I could use a Python TOP to do the loading but will it make any sense in the TOP workflow? Would using LOPs instead of OBJ networks help in this process? Thanks prb
  8. Thank you to @master2045 on Renderman discord for the pointer about the missing library libtinfo5, which is fixed in Fedora by installing the ncurses-compat-libs package. Only I've seen this mentioned around the web, was here: https://www.carlocarfora.co.uk/blog/2019-12-16_Installing-Fedora-Houdini-and-Renderman/2019-12-16_Installing-Fedora-Houdini-and-Renderman.html Finally! I never had this issue before in Pop!_OS, but to fix it there just search the library libtinfo5 in the Synaptic Package Manager. Finally 2.0!
  9. Renderman (23.5, 24.0) has been running fine on the laptop in Pop!_OS!: Recently got a new desktop machine. Installed Houdini (Python2) and Renderman(24.1) on both Pop!_OS and Fedora systems, but whenever attempting to Render Preview in either or use the IPR Tool I always get this error with any version(18.351, 18.596) and don't know how to debug it. "RfH: Could not initialize Renderman" "Failed to save output to file" "AttributeError: 'NoneType' object has no attribute 'warn_if_no_access" I'm wondering if it's an hardware issue or some missing lib, because either environment variable or json package was working on the laptop with the appropriate versions. I've seen threads where people mention non-latin characters in the user name but I've tried with "user_01" and now "admin" and the errors the same. Has anyone faced and fixed this before? It's giving me a hard time. Test scene file I'm using: rmanQA.hiplc Thanks
  10. Hi Doing a vellum coiled cable sim and while I'm happy with the feel of it I've noticed I have some spinning close to pinned points, instead of bending. Is there a way to avoid this? Video shows the sweeped curve and then it shows the group used as pinned. phone_coil_cable_spin.mp4 I've noticed that vellum does not transform the input geo attributes (am I missing something?) so instead I used a point deform to preserve the sweep's orientation. Works well for most of the curve but not great on the tips. All constrains are super stiff so the coil shape can be maintained, so this could be the cause of the geo not bending but twisting. Still I wasn't expecting that twist. The Settings I'm using on Constrain and the Solver are below. Let me know if there's something to consider to avoid this behavior or to have Vellum transform input attributes. Thanks.
  11. An expanded Merge SOP operation. Goes well with H18 "Copy to Points" to boot, but there's a lot of other small things that enables.
  12. One thing that throws me off the road with VEX is issues with operations not being overaloaded/able or not have the ability to drive the type cast of a variable. Kills abstractness and makes for some cumbersome code. I've used in the past a trick to get the variable assignment to be programmatically driven(float, vector...etc) instead of scooped in a sucession of else ifs that lead to duplicated code: if(caracteristic == 0){ float var = attrib(0,class, name, @elemnum) ; < code body> } else if(caracteristic == 1){ vector2 var = attrib(0,class, name, @elemnum) ; < code body> } else if(caracteristic == 2){ vector var = attrib(0,class, name, @elemnum) ; < code body> } .... .... .... Instead just have `chs("type")` var = attrib(0,class, name, @elemnum) ; < code body> Which will result in var being casted based on parameter, and also not being scoped and therefore no code duplication for each case. Now while seems great, I've noticed it takes way more time to cook than the else ifs way.- Therefore I was wondering if there is a way to do this driven variable assignment with preprocessors. The code still might look ugly but at least the execution part will be a single one for all types. #define var 100.0 This for example sets var as a float. But I wonder how I can inform it which variable type it should have. Thanks
  13. Loading Houdini Python modules into Code Issues

    You got this fixed? Adding "python.jediEnabled": false, And removing "python.autoComplete.preloadModules": ["hou"], Seemed to have fixed it for me. Cheers
  14. No, first I'm trying to figure out if there is already a way to mute them. If not then, yes, I shall RFE it.