General confusion... I'm not using Effects11 yet.
Regarding the sorting/grouping induced by filenames:
Initially I had them grouped by shader type:
Different parts of one "effect" were separated, so I reorganized:
Regarding whether I need, "need", or even want to use Effects11:
I'm going to have 100's of shader blob files by the end of it; is this the "line in the sand" that defines moving to "effects", rather than using the individual blobs?
It would be 1000X better as:
I'm familiar with XNA Effects and I've, now, mastered manually juggling the blobs, states and buffers in C++ without Effects11. To cure the number-of-files bloating and to make it easier to manage, overall, I think I "need" to use Effects11. XNA let me produce results without understanding, or even knowing, what I was actually doing. Now that I know better, I want to make sure my basics are solid.
I'm using the DX ToolKit helpers which defines some common states:
Where applying DepthDefault fully configures the depth-stencil-state, I conceptualize Effects, in general, doing the same job, except that they fully configure the "shader-state", i.e. applying all of the individual shaders, shader resources, etc, etc, etc, all as a one-shot call to Apply().
- Is that an accurate summation? If so, using Effects is just going to allow me to collect all of the individual state calls into fewer Effect calls.
- The same amount of calls need to be made, regardless of how they're initiated, so I'm assuming an "Effect" doesn't really incur any performance penalties. Is there an increase/decrease in overhead using Effects11?
- Are there any subtle or hidden benefits/caveats?