Hello everyone, I have released this Digital Asset for layout in Solaris. (Disclaimer: I haven’t used it extensively in production yet.) https://www.youtube.com/watch?v=zdEJcyOmgTg
Category: hou-usd
Archived post by lwwwwwws
I found if you sop import packed disk VDBs it happily does the right thing and you get instances referencing the original .vdb files, no extra caching required… so if you’ve got packed (non-disk) VDBs as .bgeo you should be able to turn that into a packed disk equivalent: – unpack 1 prim with Apply Transform disabled to get the original VDB – save it as a .vdb, load it back in as a packed disk with a File SOP – use Pack Inject to turn the packed VDB setup into packed disk VDBs – change or delete the path attrib, because packed disks have the file path in there and LOPs will use it to create a transform hierarchy from your on-disk folder structure which is just insanely confusing the first time you see it lmao
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264106/10/26/Screenshot_2026-06-10_at_11.41.14.png
Archived post by mikael00794
Hehe yep. This is the painful part of working with the Sdf API. Sdf only works on individual layers, not the composed stage. Since you referenced in the .usd file to the /ROOT prim, technically the only defined primitive in the active layer is the /ROOT prim. The child primitives lives in the referenced usd file. So the steps to get the child prims is roughly: Get the /ROOT prim. Check the reference list for the primitive. Compute the absolute path to the reference usd file. Open the reference usd layer. Get the primitive from this layer instead. Something like this ish:
“`python from pxr import Sdf, Usd
node = hou.pwd()
layer = node.editableLayer() print(‘Editable Layer’, layer)
# This prim is defined on the active editable layer root_sdf_path = Sdf.Path(‘/ROOT’) root_prim = layer.GetPrimAtPath(root_sdf_path) print(‘Root Prim’, root_prim)
# Get reference list from prim on active layer root_prim_ref = root_prim.referenceList.GetAddedOrExplicitItems()[0] ref_layer_path = layer.ComputeAbsolutePath(root_prim_ref.assetPath) print(‘Reference Layer Path’, ref_layer_path) # Open reference ref_layer = Sdf.Layer.FindOrOpen(ref_layer_path)
# Get prim from reference usd. This will use the Sdf.Path from the reference usd layer ctrl_prim = ref_layer.GetPrimAtPath(‘/RIG_Main/carBody_CTRL’) print(‘ctrl_prim’, ctrl_prim) “` Fun times
Archived post by beatreichenbach
IF you send me your theme, this repo makes it very easy to create themes: github.com/beatreichenbach/houdini-themes
Archived post by ogvfx
Here’s an example of how you can build it within the component builder and create an asset that’s handoff friendly to another department.
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265104/08/26/image.png
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265104/08/26/og_fx_component_builder.hiplc
Archived post by kiran_irugalbandara
load your bgeo with this arg
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264104/08/26/image.png
Archived post by pixel_bender
Does anyone have a good approach to (in USD) – 1) Culling by object volume or 2) using %bound %closerthan over a shot range?
In SOPs I’d always trail and timeshift a camera frustum to the end frame – generating a shotlength frustum volume and cull objects based on it – in USD, as far as I can tell, this isn’t possible in any meaninfgul way – which is incredibly problematic
If I could cull by object volume, I could do the heavy lifting in SOPs by generating the frustum there
alternatively, if I could do a ‘cumulative closerthan / bound(cam)’, I’d get the same benefit
Oh shit.. maybe this is accounted for
well shit, this works amazingly
canera path and its prims
no time dependency introduced
`%bound(path/to/cam, bound = 20, t = ($FSTART, $FEND)) & %type:Mesh`
on a prune node seet to prune unselected
this is so great- beats even the sops workflow of frustum/trail/timeshift/group/delete
Here it is culling outside bounds, then using %closerthan in another prune to remove points getting to close to camera
seriously, beyond useful, and fast
Im just not sure if it works with instances…
Now the problem is with payloads and instances…
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265503/24/26/image.png
Archived post by coskuturhan
for those who were helping, you can import a bgeo pointcloud in the kma_pcread node and read an attribute as a mask in a karma shader. Super handy!
And if you use world space position, you can do this on instances, super heavy geo etc….
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265902/24/26/image.png
Archived post by toadstorm
am i stupid? why is `gl_wireframe` somehow nowhere visible in the render properties shown in an Edit Properties LOP?
i’ve seen it done this way, i know i’ve done it myself in the past, but it’s like impossible to find in this mess of parameters. also, *why is it so fucking hard to show curves in the viewport without thickness*? why do i have to dig through this insane menu to do this?
i even tried adding the property as-is myself having memorized the name and it doesn’t fuckin work!
okay so after some digging, apparently this property has *never* been exposed by any menu and can’t be assigned at all unless you do it manually. so if you want guide curves in solaris, and you don’t want them rendered as big obnoxious ribbons, you have to use an Edit Properties LOP, manually drag an integer property from the USD Proprties list, and name it `primvars:houdini:gl_wireframe`, OR you have to do it via a wrangle: “` usd_addprimvar(0, s@primpath, “houdini:gl_wireframe”, “bool”); usd_setprimvar(0, s@primpath, “houdini:gl_wireframe”, 1); “`
brilliant UX
i find it really hard to believe this hasn’t been an issue for any other solaris users before. are guide curves really not used by anyone?
Archived post by pixel_bender
Why would my LOPimport camera have a 100x multiplier on FL and aperture?
No scaling
This is it (thanks @.grahama )
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264701/21/26/image.png