jsmack
That's cool that binds as primvar readers can be connected to input's of karma shaders
Yeah, that brings Karma's shaders in line with Mantra's. Ie, it's a familiar concept, and it also means that older shader networks (in /mat) have better chances to behave correctly in LOPs.
jsmack
Is there a reason an actual usd primvar reader can't be used for this purpose?
It has to do with legacy code we have for dealing with VEX shader builders, and how they expect VOPs to provide VEX code snippets, and how we have special treatment for Parameter and Bind VOPs. And USD Primvar Reader is none of that. Which means, we would have to complicate existing code just to accommodate it, for marginal benefits.
While you can't use USD Primvar Reader VOP for Karma, you can use Bind VOP for other renderers, because default shader translator translates it to privar shader primitive, just like karma shader translator does.
Just like Parameter VOP is designated as a general way to define Material input, Bind VOP can be thought of as a general way to define a primvar reader. Note, just for completeness, that Bind VOP also authors a Material input, which feeds into USD primvar reader's fallback value. This way you can drive the value either by overriding the material input or by authoring a primvar on geometry primitive.
jsmack
Can we expect other kinds of graphs to work with karma shaders in the future?
That's one area we are exploring and seriously considering. Though I'm not sure what form it will take in the end.