源码下载:http://myshaders.googlecode.com/files/ShaderSimpler_05192007.rar
今天抽空是试验了一下使用MRT进行deferred shading。基本是在上个例子的基础上修改的,主要有一下几个地方:
- 使用SetRenderTarget分别将各个render target设置好;
- 在pixel shader中使用“COLOR[n]”来写入各个render target;
- 有一点需要注意的是,MRT的各个surface的bits必须是一致的,所以这个例子使用了两个G16R16的float texture来保存position。
OK,就是这样简单。渲染效果与上个例子一样。这个例子程序在geforce 7600GT上测试通过,其他显卡没测过。