我理解不管是否使用MultiTexture shader,纹理数量是一样的,所以显存占用没有变化。
带宽占用和纹理采样次数相关,和active的纹理数量无关。
不过对于这种实现我也有点疑问,虽然在运行效率上DC降了,但是shader的写法是用8个if挨个判断,shader编译后会有两种结果:
一种是编译器优化去掉了分支,即实际上所有分支都走一遍最后合并,相当于一次片元着色器采样8次,而且是采样不同纹理,cache miss问题也会加重,这种是很消耗带宽的。
另一种是产生branching,众所周知shader里产生branching会慢。