我理解(至少在xna项目的.fx中使用hlsl)每个技术可以有多个传递,每个传递都关联某个设备状态及其顶点和像素着色器功能。现在我的问题是:假设一个技术中的传递一个接一个地执行,每个传递是否意味着完整通过渲染管道? 对于istance,如果我有两个通过的技术,则以下声明是正确的: 第一个传递获取应用程序的数据(VertexBuffer)并通过管道,而第二个传递获取第一个传递的内容,然后再通过管道传递。
答案 0 :(得分:1)
通常通行证彼此独立。所有传递将使用相同的输入几何(通常由顶点缓冲区定义)。他们对这种几何形状的处理方式可能有所不同。
E.g。你可以有一个两次通过的技术。第一遍以通常的方式绘制对象。第二遍不会画出物体,但是法线就像小线一样。结果是具有法线表示为线的对象。
类似地,多个通道可以用于各种效果,如毛发,发光,晕......请记住,管道的结果通常是一种颜色。如果要将此结果用作另一个着色器的输入,则需要重新连接管道(即设置新的输入对象,着色器......)。