我将texture2d
设置为设备渲染目标。绘制后,如何直接从渲染目标中读取和写入像素,然后呈现它。
答案 0 :(得分:12)
如果您打算将其用作另一个着色器的输入: - 只需确保使用D3D11_BIND_RENDER_TARGET和D3D11_BIND_SHADER_RESOURCE创建texture2D。
如果您的目的是使用C ++作为像素数组访问CPU上的纹理,那么您必须做一些工作。不幸的是,由于当前的GPU体系结构,不可能直接访问texture2D的像素,因为像素实际上以特殊格式(混合格式)存在于GPU内存中。
正如您所看到的,这肯定不是一组微不足道的操作,而是与今天的GPU架构优化的方式相悖。我当然不会推荐它。
如果您最终沿着这条路走下去,请务必阅读有关GPU内存回读的所有性能问题:http://msdn.microsoft.com/en-us/library/windows/desktop/bb205132(v=vs.85).aspx#Performance_Considerations