A Variety of Karma Triplanar Questions

   1448   9   1
User Avatar
Member
60 posts
Joined: Aug. 2015
Offline
Hello SideFX,

I made a video showcasing a variety of questions I currently have regarding the Mtlx Triplanar node that I am currently facing.

https://vimeo.com/887022712/c16f036f42 [vimeo.com]

The summary of my questions are:

1. How do you rotate the images on a triplanar projection?
2. Does the "model" position space attempt to locate rest coordinates? Or do I need to import via a primvar?
3. What is the file color space trying to define? Is it transforming color like the signature dropdown does? Is it referring to the color primaries which exist in the file?
4. What is "Layer x, y, and z" trying to define?
5. What is the "upaxis" referring to?
6. What is the "blend" parameter referring to?
7. Is the filter type trying to apply some kind of anti-aliasing to the image?
8. What is the frame range, frame offset, and frame endaction trying to do?
9. Should I even teach this stuff right now or is it going to have an overhaul in the near future?

Thank you, and happy holidays,

- Tyler
User Avatar
Member
7770 posts
Joined: Sept. 2011
Online
The answer to most of your questions is that the mtlx triplanar node sucks.

More specifically:

1. yeah, well you don't.
2. I don't think 'model' space is implemented. There's world, object, and named coordsys. For rest position, read a primvar with geompropvalue.
3. Not implemented, but if it were I think it would tag the image as that color space. (same as the regular image node)
4. The name of the image plane to read from the file. This parameter is also on the regular image node. (I've not tried this, it might not be functional)
6. I don't remember it having this parameter before. It probably controls the cosine of angle from the projection axis at which the image is fully transparent, but it could be something else.
7. The filter is how the image is converted from an array of discrete pixel values to an individual pixel value at the current coordinate. It's the same as on the regular image node.
8. I doubt these do anything, but they're also on the image node.
9. Tri-planar mapping is kind of a meh technique and this node is probably the laziest implementation I've seen of it. There's nothing stopping you from rolling your own though, it's just math.
User Avatar
Member
60 posts
Joined: Aug. 2015
Offline
Thanks for the replies Jomaro and jsmack,

It's really unfortunate to see how janky this node currently is. Tri planar projections have been at the heart of my shading workflow - especially as I was working as a shading TD before CG Forge began. Combining that technique with masks, noises, and other signals offers a really quick and powerful shading workflow that out-competes hand painting everything with Substance Painter at times. This is especially true for mid to background assets. Skipping the UVing process can speed up a major bottle-neck in production, and tri-planars also allow the ability to quickly develop a custom library of drop-and-drag shaders that can be utilized during a show.

I get the impression that SideFX just slapped in Material X nodes and called it day... which doesn't bode very well for Karma or for teaching it at the moment. So... I think what I'll do is briefly cover it and tell my beginners to head over to Redshift instead.


Cheers,

- Tyler
User Avatar
Member
7770 posts
Joined: Sept. 2011
Online
tbay312
I get the impression that SideFX just slapped in Material X nodes and called it day... which doesn't bode very well for Karma or for teaching it at the moment. So... I think what I'll do is briefly cover it and tell my beginners to head over to Redshift instead.

That's kind of the point of material X, you either adopt the standard or you don't. Sidefx have included a custom triplanar node in the form of the hextile version. There is also the VEX based one for VEX materials.
User Avatar
Member
60 posts
Joined: Aug. 2015
Offline
jsmack
tbay312
I get the impression that SideFX just slapped in Material X nodes and called it day... which doesn't bode very well for Karma or for teaching it at the moment. So... I think what I'll do is briefly cover it and tell my beginners to head over to Redshift instead.

That's kind of the point of material X, you either adopt the standard or you don't. Sidefx have included a custom triplanar node in the form of the hextile version. There is also the VEX based one for VEX materials.

Yeah, I know, but the Hex tile isn't quite as ideal as triplanar because you still can't control rotation + you have more areas of blending which = blurrier detail. But tbh, it's more of a user experience problem. No documentation + Choosing between a Karma, CVEX, Vex, MaterialX, OSL Generic, and USD Preview Shader builders + ignoring all the old mantra stuff + an array of compatibility issues to keep track of is a mess for any user - especially beginners.

By comparison, with Redshift its... here's your shader builder (or USD Shader builder if you're working with USD)... everything is documented... and you don't need to worry about compatibility stuff because it just works. That's the kind of simplicity I need to help someone make a good render without getting lost in the weeds.

As a side question, when SideFX does their own thing with the hextile version, does that break compatibility with the MaterialX standard? Or is that built with compatibility in mind?


Thanks!

- Tyler
User Avatar
Member
7770 posts
Joined: Sept. 2011
Online
tbay312
As a side question, when SideFX does their own thing with the hextile version, does that break compatibility with the MaterialX standard?

Yes, any custom node will break standard, that's why they're usually prefixed with 'hmtlx' or 'karma'
User Avatar
Member
31 posts
Joined: Aug. 2011
Offline
Sorry to highjack the thread but I'm now really curious.

jsmack
Yes, any custom node will break standard, that's why they're usually prefixed with 'hmtlx' or 'karma'

@Jsmack Does that mean htmlx_ nodes also breaking the compatibility?
Was hoping that they where just some higher level nodes build ontop. Referring to all the nodes in "USD MaterialX Builder".

In the docs it says in: MtlX Color Ramp VOP node -
For Karma use only it is advised to use “Karma Float/Color Ramp” for better performance and experience.

I assumed it would be converted to mtlx when saved as usd?


Hope anyone can clarify,

Thanks in advanced!
User Avatar
Member
7770 posts
Joined: Sept. 2011
Online
MR SMITH
Was hoping that they where just some higher level nodes build ontop. Referring to all the nodes in "USD MaterialX Builder".

If they are available in the USD MaterialX Builder, then I think they are just higher level nodes built from mtlx building block nodes and should be mtlx compatible.

MR SMITH
In the docs it says in: MtlX Color Ramp VOP node -
For Karma use only it is advised to use “Karma Float/Color Ramp” for better performance and experience.

The Karma native node isn't mtlx compatible, but does give better performance than the pure mtlx one, that's why it's suggested to be used if Karma is the only render target.

MR SMITH
I assumed it would be converted to mtlx when saved as usd?

Nothing is converted to mtlx when saving as USD. USD contains usdmtlx nodes which is based on mtlx, but is not mtlx. Native mtlx is a different file format. There is rudimentary mtlx write support from the right click menu in the material library but the resulting mtlx file usually has to be edited by hand to work correctly.
User Avatar
Member
31 posts
Joined: Aug. 2011
Offline
Thanks again for the clarification jsmack!

Yeah sorry I mean once exported to usd, in the usd file there is a a shader description that should work with other delegates that can render mtlx.

So from what I've been gathering.
Working in the "USD MaterialX Builder" and only use those nodes available, it's pretty safe that what ever you do mostlikely will be compatible with other delegates that can render mtlx?
Refering mostly to these nodes:


What about hda's and houdini parameters?
As a test I've create somehwat similair triplanar as the rs one. (those controls are also illogical imo)
But is this still considerd as an compatible mtlx shader for other delegates? Only used mtlx nodes.


Any tips on checking or testing these compatibility stuff for mtlx?
What other delegate in houdini is most complete in mtlx?

Sorry for all these questions
Want to do some higherlevel / quality of life nodes for karma.
But it would be nice if can take mtlx compatibility into account.
Edited by MR SMITH - March 16, 2024 07:43:26

Attachments:
HDA.png (3.8 MB)
RS_TRIPLANAR.hiplc (504.6 KB)
vop_NODE-01.rs_triplanar.1.0.hdalc (20.4 KB)
HOUDINI_MTLX.png (1.7 MB)

  • Quick Links