Edward Jaworenko

EJaworenko

About Me

EXPERTISE
Technical Director
INDUSTRY
Film/TV

Connect

LOCATION
Calgary, Canada

Houdini Skills

ADVANCED
Procedural Modeling  | Environments  | Digital Assets  | Solaris  | VEX
INTERMEDIATE
Hair & Fur  | Cloth  | Mantra  | Karma  | Lighting  | PDG  | Python
BEGINNER
Character Rigging  | Animation  | Fluids  | Destruction FX

Availability

Not Specified

Recent Forum Posts

Mtlx PBR Texture Set Node - Where is it Supported? Oct. 22, 2024, 8:51 p.m.

Pretty straightforward, but where can I expect this node to be supported? If I needed to use Arnold or Renderman in Houdini and wanted to use materialX, would this work? I imagine that it's a Houdini-specific node but I wanted to see if it's also Karma-specific.
Also, am I right in assuming that it's not doing 4 texture samples to account for 1 UV and 3 triplanar samples? Because if so, that definitely makes it more appealing to use.

Mixing USD MaterialX Builder Subnets Aug. 21, 2024, 9:39 p.m.

I'm familiar with the limit of 2 surface shaders max that you can mix in Materialx, at least with Karma. And I think when people are talking about doing that, they're talking about doing the mixing within a single MaterialX Builder subnet. I wanted to create a single "degradation" material that I could actually mix with several other materials like you can see in the attached screenshot, but it immediately crashes the materialx shader.

Is this possible in any way? The reason I can see for it crashing would actually be a fantastic strength if it worked: It would at least suggest that you could swap the degradation material via referencing in USD. Love the idea of being able to keep it as a stand-in, then maybe replacing via referencing with a shader that has snow or moss or rust in it down the line.

Any help is appreciated!

How to quickly move pivot to object center in LOP? April 26, 2024, 5:22 p.m.

This definitely seems a bit cumbersome, but for the example of a transform node pivot specifically, the following python function placed in the "px" parm will set the pivot to the center of a selected primitive (py and pz too).
Note that I haven't tested it with multiple prims selected, but it at least fits a few use cases.
I may add a variation of it to a right-click menu just for easy setting vs worrying about adding a python script directly to a parm expression.
from pxr import UsdGeom
node = hou.pwd()
# Get the stage of the input node to avoid recursion
stage = node.input(0).stage()
if stage is not None:
        # Other nodes might need "primpath", but you could functionally add any prim path you want here
        focusprim = stage.GetPrimAtPath(node.evalParm("primpattern"))
        if focusprim is not None:
                cache = UsdGeom.BBoxCache(1.0, ['default', 'proxy', 'render', 'guide'])
                bounds = cache.ComputeLocalBound(focusprim).ComputeCentroid()
                # node.parmTuple("p").set(bounds) crashed Houdini via recursion, but this seems to work.
                node.parm("py").set(bounds[1])
                node.parm("pz").set(bounds[2])
                return bounds[0]