Szymon Kapeniak


About Me

CG Supervisor


Recent Forum Posts

Ram Bandwidth in Houdini? Jan. 12, 2018, 11:39 p.m.

You can measure it yourself [], except this would be meaningless You get amount of GB/s but you don't know what application was actually doing to make this number big or small.

One needs to know the theoretical throughput of the computation in question and compare it with actual traffic. Something along that [].

Transforming SOPs from Python shell Dec. 14, 2017, 4:53 a.m.

Hey symek,

Thanks for your reply. I left an ambiguity in my description and you misunderstand me.

Well, perhaps I should figure out myself that you must think of second one, more sensible option of applying 26 transformations

Yes, I had considered transferring the transform matrix as an attribute on some carrier geometry, but that seemed like not the most elegant solution. I think it would be really cool to have some kind of python command that can just make a transform sop directly from a given matrix. Its a bit silly that doing something very fundamental in 3D graphics is not so straight forward.

Making such function is 5 lines of code. Not exactly a biggie, isn't it?

You're clearly trying to bend Houdini into programming environment, which is close to, but not exactly the same thing. Houdini tries to balance a couple of values in its design. It enables many nice features - being procedural & safe & interactive & performant at the same time. Pure programming doesn't allow that.

What cwhite proposes it is actually very elegant way in Houdini of dealing with multiply instances of a geometry with own transformation applied. It saves memory and CPU. It allows fast GPU handling of geometry and so on.

So making it more houdinish, you should create a point per geometry copy, create an 4x4 point attribute called transform and use CopyToPoints SOP to apply those you your geometry.

Transforming SOPs from Python shell Dec. 13, 2017, 9:19 p.m.

So I want to just apply the matrix directly to the points of the sop through the shell. I would also be fine if I could create a transform node and then just give the transform node the matrix directly. This seems like something houdini would be able to do. Is there anyway I could do this?

You can't modify geometry outside the node which owns it. Period.

In your case, you could just multiply those 26 matrices by them self first, then create a single TransformSOP, and use hou.Matrix4.explode() [] to apply effective transformation to your geometry.