Simon
I don't know if it's me being dumb or everyone else missing my point.. ops:
I would never characterize your posts as anywhere even close to “dumb”, and I might have missed your point somewhat (or rather, gone off into a bit of a tangent), so let me see if I can explain myself a little better here.
Simon
At the point you set Cf, no?
All surface shaders eventually eval to Cf.
Yes; and all VOPs evaluate to some output as well. Whether you call it “Cf” or “out1” is just a matter of semantics. In your model, the final assignment to Cf is done by a hypothetical “Shader Blender” OP, and in the VOP world, you'd use the “Mix VOP” (the lerp() function).
Wouldn't you agree that within our current toolset, “shaders” are nothing more than high level VOPs? If we agree on that, then we can just view both shaders and VOPs as parameterized blocks of shading functionality. With the important distinction that the VOP variety *can* be combined (because it represents non-compiled source code), whereas the shader type is, by definition, final – it is “the thing that gets assigned to the geometry” and so can't be refined any further. (also remember that the thing passed to the renderer is op-code, not VEX, that's why it needs to be final – so “shaders” as we know them are really compiled code, not VEX).
Simon
Well the point here is you just do what you do now, since each shader will evaluate to Cf you can just set up each shader individually, once they all work in their own right you move on to compositing them.
Yes; but at the end of the day, if I replaced “shader” with “VOP” and “Cf” with “out1” in that sentense, you'd have the functionality you're looking for, using the current toolset.
Simon
As to whether it works ok in VOPs I'll just repeat myself. 20 VOPs can be combined in infinite ways and I don't want to manage infinite shaders.
And one of those infinite possibilities is the linear combination you describe. Meaning that if you wanted to, you could just enforce the “blend” method (as a “Simon's Combiner” VOP), and thereby collapse the other infinity-minus-one possibilities.
Simon
However potentially having infinite possibilities that can be applied to a object is much more desirable.
More than “desirable”, I would call it “inescapable”, since you still need to be able to define exactly what *kind* of brick, and what *kind* of concrete … and do we want the pattern to be based on parametric coordinates, or rest positions… and is the dirt on the bricks controlled with *this* kind of noise, or *that* kind… and on, and on…
So those 80 parameters would still have to be visited whether you chose to go with a model such as the one you suggest, or just used VOPs directly.
Simon
Perhaps the thing here is that you think it's ok to to take a shader that already exists, convert it into a vop, build a vop network wire it up with all the other vops that are needed and then use that to make your final shader from.
Yes. But more importantly, I'm also suggesting that the idea of a “Shader Blender” OP (and many similar ones I've had of my own), wouldn't really simplify the process of shading beyond what an approach such as VOPs/ShadeTree/Slim already provide – where your blend OP turns into a “Mix” VOP, and where you choose what parameters get exposed to the user.
Simon
I think I'd rather have a library of shops and then just combine those. Personal preference maybe. It's a bit like saying why have the blendshapes sop when you can just make a vop to combine geometry…
I think you're thinking of shaders as constant, static things (like geometry), when they are really not that at all. If you hard-wired a brick shader's parameters in order to make it static, and then wanted the bricks to be slightly redder for the next job, you'd need to create a second brick shader – and this would soon explode into an unmanageable mess of shaders, with close to zero reusability, no? But maybe that's not what you mean.
Try having a library of VOPs and combine those instead. That's the way we ended up setting things up over here and I gotta tell you, the difference between doing that, and tweaking a bunch'o'shaders which you then “comp”, is practically nonexistent.
But yeah; I guess it *is* a matter of taste (or habit) in the end. I know it took me some time to start thinking in terms of VOPs and stop the inertia of 10+ years of thinking in terms of “shaders”.
Cheers!