For the sake of performance, should we be packing lots of functionality into a base shader, or creating more shaders for individual behaviors? For example, if I had two behaviors I wanted in my base material (to be used on many different assets via material instances), one which used UV projection, another Triplaner projection, would it be better to have one material which has both options, or two separate materials. Also, do static switches reduce instruction count by eliminating the unused section?
So you’ve got the right idea, but like clockwork mentioned, it’s often optimal to have simpler master materials handle the really basic materials, and for the complex ones you’d have a different master material, as you don’t want to have more shader work for materials that aren’t utilizing half of the nodes in a massive complex shader.