【发布时间】:2011-02-25 18:26:59
【问题描述】:
我目前有两个着色器,一个处理着色器(顶点和像素)——计算光照和投影变换。然后将其渲染为纹理。然后我有我的第二个着色器,一个后处理着色器,它读取渲染的纹理并将其输出到屏幕(同样是顶点着色器和像素着色器)。
将场景渲染为纹理后,我将即时上下文的顶点和像素着色器与我的后处理着色器交换,但我不确定应该如何管理状态(例如我的纹理参数和我的常量缓冲区)。交换着色器然后每帧手动重置两次常量缓冲区和纹理似乎非常浪费,并且首先破坏了常量缓冲区的点,但据我所知,您无法在着色器对象上设置数据,它必须传递给上下文。
在换入和换出着色器时,其他人对管理变量和纹理的相当简单有效的方法有何建议?
【问题讨论】:
标签: directx rendering buffer state shader