在XNA(和一般AFAIK中为Direct3D)中,您可能没有创建单独的顶点和片段着色器,而是将许多相关的着色器捆绑到“效果”中。当您开始使用效果时,请选择“技术”(或遍历所有技术),然后每个“技术”都有许多“通过”。您遍历每遍,选择相关的顶点和片段着色器,然后绘制几何图形。
我很好奇的是,您需要多次通过吗?我知道在3d的早期,您只有一个纹理单位,然后只有2个纹理单位,但是如果您还想进行环境映射,那么通常仍然不够用。但是在现代设备上,即使在移动类中,您也可以在单个着色器中采样8个或更多纹理,并执行所需的任意多个光照计算。
这里经验丰富的人能否提供一些仍需要多遍渲染的实际示例,或者这只是XNA / Direct3d的过度设计?