Edward Jaworenko

EJaworenko

About Me

専門知識
Technical Director
業界:
Film/TV

Connect

LOCATION
Calgary, Canada
ウェブサイト

Houdini Engine

ADVANCED
プロシージャルワークフロー  | Environments  | Digital Assets  | Solaris  | VEX
INTERMEDIATE
Hair & Fur  | Cloth  | Mantra  | Karma  | Lighting  | PDG  | Python
BEGINNER
キャラクタ & アニメーション  | Animation  | Fluids  | 説明

Availability

Not Specified

Recent Forum Posts

Mixing USD MaterialX Builder Subnets 2024年8月21日21:39

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? 2024年4月26日17:22

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]

Best Houdini Utility Entries 2024年1月14日21:25

Node Weaver is a toolset that is intended to ease the workflow of Houdini TDs. In time that is what it will do, but not yet.

  • Primary tool to be considered: The package includes a Custom Node Shape Creator that was designed to be as dead-simple as possible to use. It would be great to see more custom node shapes in use but it would help if artists knew how to make them!
  • It also includes a Node Shape File Inspector that allows you to import node shapes and see what went into making them, or modifying them if you'd like.
  • Finally, it includes a Color Palette Configurator that has a bunch of utilities for making adjustments or additions to the 36 node colors you get in a palette by default in Houdini.
Though they're not tools directly, Node Weaver also includes:
  • a shelf with a shelf tool that prints out all of the callback scripts, default value expressions, and menu scripts in a node.
  • A right-click menu item that makes it possible to set node colors with the color wheel window.
Big focus on the aesthetics of actually working in Houdini, but hey, this competition only calls for one tool as-is. Hope you find the tools to be useful!