我试图使用C++ DirectX 11 SDK 一次性渲染到两个纹理,我想让一个纹理包含结果图像每个像素的颜色(通常在渲染3D场景时看到屏幕上的内容),并且另一个纹理包含每个像素的法线和深度(法线用3个浮点数表示,深度用1个浮点数表示)。目前,我能想到的是创建两个渲染目标,第一次渲染输出颜色,第二次渲染输出法线和深度到各自的渲染目标。但是,这似乎很浪费时间,因为我可以在第一次渲染中得到每个像素的颜色、法线和深度信息。所以有没有一种方法可以通过像素着色器输出两个纹理呢?
任何帮助都将不胜感激。
P.S. 我正在考虑类似于像素着色器中的RWTexture2D或RWStructuredBuffer。一些背景信息:我需要进一步处理这两个图像,用于计算着色器。这引出了一个附带问题:由于像素着色器(与计算着色器不同)每次写入一个像素,如何知道像素着色器何时完成,并告诉计算着色器开始图像后处理?
任何帮助都将不胜感激。
P.S. 我正在考虑类似于像素着色器中的RWTexture2D或RWStructuredBuffer。一些背景信息:我需要进一步处理这两个图像,用于计算着色器。这引出了一个附带问题:由于像素着色器(与计算着色器不同)每次写入一个像素,如何知道像素着色器何时完成,并告诉计算着色器开始图像后处理?