1

有没有办法在 SlimDX 中将渲染目标设置为 GDI 位图,以便在渲染场景后我可以立即将渲染从那里 BitBlt 以便在另一个线程中处理并继续渲染?

是否需要渲染到纹理然后将内容复制到位图?我希望能够做到这一点而无需任何不必要的复制。我将需要我能得到的每一个加速。

4

1 回答 1

3

抱歉,您确实需要渲染到 RenderTarget,然后将该资源复制到 Texture2D 中,然后您可以映射数据并将像素放入您的位图中。

RenderTargets 的内存被显卡标记为特殊用途,不能直接读取

可以标记纹理的内存,以便可以读取它,但只能通过 API 读取,因为它仍然保留在显卡上(有些例外,但 DirectX 必须使用最低公分母)

如果您需要额外的速度,请重新使用相同的位图或准备好一组准备好的位图来填充并保持旋转。

和以往一样,使用分析器测量这些事情消耗了多少时间,以便量化瓶颈。

于 2012-01-18T21:39:54.230 回答