2
这是一个愚蠢的问题,但我是着色器编程的新手,所以请和我一起裸照。
我知道(至少在xna项目中使用.fx中的hlsl)每种技术都可以有多次通过,每次通过都会关联某个设备状态及其顶点和像素着色器功能。现在我的问题是:鉴于一个技术中的通行证是一个接一个地执行的,每个通行证是否意味着通过渲染管道的完整通道? 对于遗传,如果我有两次通过的技巧,是否正确如下语句: 第一次通过为应用程序(VertexBuffer)获取数据并通过管道,而第二次通过则是第一次通过的数据,再过一段时间,通过管道。HLSL多通道
感谢您的明确回答,但现在我有一个疑问:使用两遍渲染着色器而不是仅制作两个着色器有什么区别?仅仅是为了保持事物的整齐性并赋予其效果的连接感? – Geoffrey91
是的,这基本上是关键。大多数渲染对象的代码都涉及'对于技巧{apply pass,render object}中的每个传递''。这样做更具可读性,而不是每次都应用不同的着色器。而且,这个功能可以封装在一个方法中。 –