How do we want the multi-pass rendering to happen? A typical example would be the fur. Basically, a technique should be able to generate more than a single pass (which is program + state + parameters).
Possible solutions:
keep it out of the scope. Multi-pass objects can be drawn manually (outside of the technique)
return a vector of passes. We can re-use the vector in order to avoid allocations. The problem is how do we preserve the order when all the batches get sorted.
allow multi-pass through instancing only. The technique could return an instanced vertex buffer (optionally) with a number of instances to draw. The order of passes gets fixed.
I'm leaning towards the instancing solution. If for some reason the user needs more flexibility, one can still draw stuff outside of the technique.
How do we want the multi-pass rendering to happen? A typical example would be the fur. Basically, a technique should be able to generate more than a single pass (which is program + state + parameters).
Possible solutions:
I'm leaning towards the instancing solution. If for some reason the user needs more flexibility, one can still draw stuff outside of the technique.